POV-Ray : Newsgroups : povray.off-topic : Programming langauges Server Time
5 Sep 2024 13:09:48 EDT (-0400)
  Programming langauges (Message 1 to 10 of 114)  
Goto Latest 10 Messages Next 10 Messages >>>
From: Invisible
Subject: Programming langauges
Date: 21 Oct 2009 08:30:16
Message: <4adefed8@news.povray.org>
Cast your mind way, way back, to the Dark Ages of personal computing. 
Children like me sat at home playing with a Sinclare Spectrum or a 
Commodore 64 - great chunks of grey plastic which load files from audio 
cassette (remember those?), and produce blocky 16-colour graphics. All 
of these machines are powered by low-end 8-bit microprocessors clokced 
at around 1MHz, they have a few KB of RAM, and they each have a ROM 
containing a BASIC interpretter of varying sophistication which also 
doubles as a kind of Disk Operating System. (Not that anybody *has* 
disks yet...)

It is a sobering thought to realise that as children like me sat at 
home, glibly typing in the source code listings from computer magazines 
(remember those?), PostScript had just been released, SQL was 5 years 
old, C was 10 years old, Smalltalk was almost 15 years old, and BASIC 
itself was already 20 years old. The mighty Lisp was over 25 years old 
already. And just a few years later, C++ was invented.

When the C64 was designed, extremely powerful languages such as List, 
Prolog, Smalltalk and even Pascal were already decades old. And yet, the 
C64 came with... BASIC?

Even as Borland released TurboPascal 5.5 for DOS [that's the one with 
the object-oriented extensions which aren't actually object-oriented], 
Eiffel, Erlang and Miranda already existed. (Miranda is the [proprietry] 
language which eventually gave rise to Haskell.) And Haskell 1.0 itself 
was formalised only a year or two after TP 5.5 came out. For MS-DOS. (!)

Have a look at the attached chart. (Excel was less than helpful in 
producing this, BTW.) There are several interesting anomolies:

- C and Prolog appeared at the same time. This doesn't make a lot of 
sense. C is a crude, simplistic low-level bit-twiddling langauge, while 
Prolog is a powerful high-level logic manipulation language. If there 
were computers capable of running Prolog, why did C need to exist?

- Pascal predates C, and yet C fails to incorporate almost any of the 
good ideas from Pascal.

- Smalltalk was doing OOP before home computers were even *invented*, 
and yet it wasn't until 20 _years_ later that commercial products like 
TP 5.5 and Delphi started to take the idea mainstream.

- SQL existed 15 years before high-capacity storage devices appeared. 
(This is worse than it appears. You wouldn't even realise that a 
language like SQL was *necessary* unless databases themselves had 
already existed for some considerable length of time. And after that 
there would obviously be a rash of incompatible proprietry languages 
until people decided to design a standardised one.)

- PostScript was invented 10 years before laser printers existed. (It 
was apparently designed specifically with laser printers in mind, as I 
had always believed.)

- That splodge next to it is C++ and Ada. They were apparently invented 
at the same time. And yet, 10 years later, nobody had heard of C++ yet.

- Haskell was invented back when people were still using green screens 
and MS-DOS. It brings a slight chill to my spine to know that way back 
when I was still coding with AMOS Professional, minds immeasurably 
superior to ours had already constructed the most powerful programming 
language known.

- Perl predates the Internet by half a decade. (WTF?) I can only imagine 
it began life as a Unixy text-munging system in the style of awk, sed, etc.

- JavaScript predates Java. (WTF?!)

- Visual Basic is significantly older than Delphi.

- Ruby, PHP and JavaScript were all around at the same time as Delphi. 
This is puzzling because when Delphi was new, the Internet didn't really 
"exist" yet.

- C# (by which I denote the entire zoo of .NET languages) is the only 
thing in the chart to have been invented this millennium.


Post a reply to this message


Attachments:
Download 'programming languages.png' (26 KB)

Preview of image 'programming languages.png'
programming languages.png


 

From: scott
Subject: Re: Programming langauges
Date: 21 Oct 2009 09:19:36
Message: <4adf0a68@news.povray.org>
> - C and Prolog appeared at the same time. This doesn't make a lot of 
> sense. C is a crude, simplistic low-level bit-twiddling langauge, while 
> Prolog is a powerful high-level logic manipulation language. If there 
> were computers capable of running Prolog, why did C need to exist?

Speed?


Post a reply to this message

From: Aydan
Subject: Re: Programming langauges
Date: 21 Oct 2009 09:35:01
Message: <web.4adf0d7688a08cec1ccf29180@news.povray.org>
"scott" <sco### [at] scottcom> wrote:
> > - C and Prolog appeared at the same time. This doesn't make a lot of
> > sense. C is a crude, simplistic low-level bit-twiddling langauge, while
> > Prolog is a powerful high-level logic manipulation language. If there
> > were computers capable of running Prolog, why did C need to exist?
>
> Speed?

How'd you imagine writing libraries for said high level logic manipulation
language to interface hardware? Assembler? I'd think C is your best bet there
since it's low level enough to do the bit twiddling to control hardware and high
level enough to not be a PITA.

Just my 2 cents


Post a reply to this message

From: Captain Jack
Subject: Re: Programming langauges
Date: 21 Oct 2009 09:41:43
Message: <4adf0f97$1@news.povray.org>
----- Original Message ----- 
From: "Invisible" <voi### [at] devnull>
Newsgroups: povray.off-topic
Sent: Wednesday, October 21, 2009 8:30 AM
Subject: Programming langauges


> Cast your mind way, way back, to the Dark Ages [...]

Wow... so many thoughts, and the coffee is only beginning to swirl in my 
brain...

Bear in mind that the world wasn't as connected then as it is now. 
Advancement in technology was slower, people used books and published papers 
to share technical ideas, not the Internet. Even now, people use different 
programming languages because, for the most part, programmers are 
provincialists who tend to think the first language they learned is the best 
one.

Pascal was never intended to be efficient on the inside, and was often 
rejected by people working to create real-world software for that reason. 
Wirth invented Pascal specifically as a teaching tool to educate students in 
the concepts of nested, structured programming with a hierarchy of 
visibility of token names. He himself never intended for it to be used in 
the real world. OTOH, Ritchie (and Kernighan, but mostly Ritchie) 
implemented C as a way to take a step back from machine code and assemblers 
to make it easier to port system software across radically different 
hardware architectures.

BASIC was also developed as a teaching tool, but it was also considered the 
best choice by many for popular use (the name itself may have lead that 
charge, based on the power of suggestion). More importantly, BASIC is 
interpreted, so you can ship it without a compiler, linker, or memory for 
large symbol tables. Slap it in a ROM, stick it in your gray box, and start 
selling.

Myself, I was programming a PDP 11 (and a VAX 11/780 shortly thereafter) 
using both C and Pascal at about the same time you were loading your 
cassette tapes. I did have a Vic 20 about then, which I tried to program a 
duplicate of Q*bert on. Good times, that. :D


Post a reply to this message

From: Invisible
Subject: Re: Programming langauges
Date: 21 Oct 2009 09:56:12
Message: <4adf12fc$1@news.povray.org>
Captain Jack wrote:

> Wow... so many thoughts, and the coffee is only beginning to swirl in my 
> brain...

Y'aarrr! ;-)

> Bear in mind that the world wasn't as connected then as it is now. 
> Advancement in technology was slower, people used books and published papers 
> to share technical ideas, not the Internet.

Sure. Back then, if you wanted better graphics, you had to wait for the 
next home computer to be released. Today, more powerful graphics cards 
come out almost weekly. (Although we have long since reached the point 
where the graphical quality is as high as anybody needs, and you're only 
arguing about 3D rendering power.)

Look at the C64 with it's 16-colour graphics. 5 years later the A500 has 
12-bit colour and up to 64 colours on-screen at once. Another 5 years 
and the A1200 gives you 24-bit colour and 256 colours at once. That's a 
while to wait. ;-)

> Even now, people use different 
> programming languages because, for the most part, programmers are 
> provincialists who tend to think the first language they learned is the best 
> one.

That must make me rare then. I can program in BASIC [I MEAN OLD SKOOL 
BASIC WITH ALL-CAPS AND LINE NUMBERS INSTEAD OF A TEXT EDITOR], Pascal 
(which is structured), PostScript (which is weird), JavaScript, Java, 
Smalltalk, Eiffel (which are all OOP), Haskell (which is functional), 
SQL (which is relational), and I have a vague grasp of Lisp and Prolog. 
I've also written in machine code. (No, I don't mean assembly. I *mean* 
machine code. I couldn't afford an assembler, so I assembled the program 
by hand with a big book of op-code tables...)

Did I mention POV-Ray SDL in there?

The first langauge I learned was BASIC, and it sux. Even fancy AMOS sux.

[For anybody that doesn't know: AMOS is BASIC with bells on. Sort of 
vaguely like Visual Basic, in that AMOS gives you an IDE and powerful 
multimedia features, but the actual language itself has a billion syntax 
features but still isn't all that powerful. AMOS Professional comes with 
a 2,000-page user guide and has over 800 commands. It arrives on 14 DD 
floppies - most of which are bitmaps, music, sprites and demo programs.]

> Pascal was never intended to be efficient on the inside, and was often 
> rejected by people working to create real-world software for that reason. 
> Wirth invented Pascal specifically as a teaching tool to educate students in 
> the concepts of nested, structured programming with a hierarchy of 
> visibility of token names.

I've heard this before. I never really understood why Pascal couldn't be 
a useful real-world language. (Aside from a few obvious flaws which 
should have been easy to fix.)

> BASIC was also developed as a teaching tool, but it was also considered the 
> best choice by many for popular use (the name itself may have lead that 
> charge, based on the power of suggestion). More importantly, BASIC is 
> interpreted, so you can ship it without a compiler, linker, or memory for 
> large symbol tables. Slap it in a ROM, stick it in your gray box, and start 
> selling.

Lisp isn't too hard to interpret either. (But arguably too hard for 
8-year-olds to program with.) Smalltalk is pretty easy to interpret, and 
easy on the brain too. Prolog would also not be hard to interpret, but 
probably not especially useful for home users.


Post a reply to this message

From: Captain Jack
Subject: Re: Programming langauges
Date: 21 Oct 2009 10:14:43
Message: <4adf1753@news.povray.org>
"Invisible" <voi### [at] devnull> wrote in message 
news:4adf12fc$1@news.povray.org...
>
> That must make me rare then. I can program in BASIC [I MEAN OLD SKOOL 
> BASIC WITH ALL-CAPS AND LINE NUMBERS INSTEAD OF A TEXT EDITOR], Pascal 
> (which is structured), PostScript (which is weird), JavaScript, Java, 
> Smalltalk, Eiffel (which are all OOP), Haskell (which is functional), SQL 
> (which is relational), and I have a vague grasp of Lisp and Prolog. I've 
> also written in machine code. (No, I don't mean assembly. I *mean* machine 
> code. I couldn't afford an assembler, so I assembled the program by hand 
> with a big book of op-code tables...)
>
> Did I mention POV-Ray SDL in there?
>
> The first langauge I learned was BASIC, and it sux. Even fancy AMOS sux.

Hmmm... lessee... Coursewriter, Fortran, COBOL, Pascal, Lisp, BASIC 
(Dartmouth, A-BASIC, GWBASIC, VB et cetera on and on), C, C++, C#, Providex, 
BBx, ZPL, Psion AXL, Forth, Prolog, APL (not much), Erlang, x86 Assembler, 
System 36 Assembler--

There's more but that's enough urinating off the port bow. :)

>
> I've heard this before. I never really understood why Pascal couldn't be a 
> useful real-world language. (Aside from a few obvious flaws which should 
> have been easy to fix.)

As originally designed, Pascal didn't support source code modules or 
including files, which made it difficult to write large programs with, and 
made it almost impossible for a team to work on an application. You couldn't 
make libraries to link to later, or use any kind of dynamic linking with it.

It can be (and has been) extended, but then you're getting into a gray area: 
"My language is the best, so I'm going to add in bits of your language to 
prove it." (Not saying that you're saying that, put down the flamethrower, 
please. <g> However, I have heard that statement used in actual 
conversation, in its essence)

Binary, digital computers can only do three things. They do them really 
fast, and can create some amazing things from those three functions, but 
still... when you get right down to it, the language we use doesn't really 
matter. :D

> Lisp isn't too hard to interpret either. (But arguably too hard for 
> 8-year-olds to program with.) Smalltalk is pretty easy to interpret, and 
> easy on the brain too. Prolog would also not be hard to interpret, but 
> probably not especially useful for home users.

What's great for that is Forth... you can fit the rules engine in about 4Kb 
and include the most commonly defined symbols. All the rest of your RAM, 
which doesn't have to be much, is available for code. Like Lisp, though, 
it's a stack oriented language, and I think that confuses a lot of the 
masses.


Post a reply to this message

From: Invisible
Subject: Re: Programming langauges
Date: 21 Oct 2009 10:42:55
Message: <4adf1def$1@news.povray.org>
>> That must make me rare then. I can program in BASIC [I MEAN OLD SKOOL 
>> BASIC WITH ALL-CAPS AND LINE NUMBERS INSTEAD OF A TEXT EDITOR], Pascal 
>> (which is structured), PostScript (which is weird), JavaScript, Java, 
>> Smalltalk, Eiffel (which are all OOP), Haskell (which is functional), SQL 
>> (which is relational), and I have a vague grasp of Lisp and Prolog. I've 
>> also written in machine code. (No, I don't mean assembly. I *mean* machine 
>> code. I couldn't afford an assembler, so I assembled the program by hand 
>> with a big book of op-code tables...)
>>
>> Did I mention POV-Ray SDL in there?
> 
> Hmmm... lessee... Coursewriter, Fortran, COBOL, Pascal, Lisp, BASIC 
> (Dartmouth, A-BASIC, GWBASIC, VB et cetera on and on), C, C++, C#, Providex, 
> BBx, ZPL, Psion AXL, Forth, Prolog, APL (not much), Erlang, x86 Assembler, 
> System 36 Assembler--

I might also throw in Mathematica, TeX, Tcl, MS-DOS scripting, and the 
various other languages which aren't "programming languages" such as 
HTML, CSS, XSLT, AmigaGuide, ARexx, Automake, the lambda calculus...

> There's more but that's enough urinating off the port bow. :)

;-)

>> I've heard this before. I never really understood why Pascal couldn't be a 
>> useful real-world language. (Aside from a few obvious flaws which should 
>> have been easy to fix.)
> 
> As originally designed, Pascal didn't support source code modules or 
> including files, which made it difficult to write large programs with, and 
> made it almost impossible for a team to work on an application. You couldn't 
> make libraries to link to later, or use any kind of dynamic linking with it.

When I first encountered it, Pascal already had modules and sane I/O. (I 
gather that at one time this was not the case.) It still had that silly 
restriction where array sizes had to be known at compile-time for no 
apparent reason...

Anyway, it's irrelevant now. Pascal is a monomorphic language. It would 
get laughed at today.

> What's great for that is Forth... you can fit the rules engine in about 4Kb 
> and include the most commonly defined symbols. All the rest of your RAM, 
> which doesn't have to be much, is available for code. Like Lisp, though, 
> it's a stack oriented language, and I think that confuses a lot of the 
> masses.

Heh, yeah, I can't see that one taking off really...

(You can also interpret Haskell fairly easily, but it probably requires 
too many resouces.)


Post a reply to this message

From: Captain Jack
Subject: Re: Programming langauges
Date: 21 Oct 2009 10:58:49
Message: <4adf21a9$1@news.povray.org>
"Invisible" <voi### [at] devnull> wrote in message 
news:4adf1def$1@news.povray.org...
> When I first encountered it, Pascal already had modules and sane I/O. (I 
> gather that at one time this was not the case.) It still had that silly 
> restriction where array sizes had to be known at compile-time for no 
> apparent reason...
>
> Anyway, it's irrelevant now. Pascal is a monomorphic language. It would 
> get laughed at today.

I had a friend who was working on a master's in Comp Sci in oh, about 1982. 
His professor gave him this thesis project:

Write a Pascal compiler.

In Pascal.

I can still hear in my mind the screams coming from late at night from 
friend's apartment. He was NOT a happy camper for those two years. :D


Post a reply to this message

From: Invisible
Subject: Re: Programming langauges
Date: 21 Oct 2009 11:05:17
Message: <4adf232d$1@news.povray.org>
> I had a friend who was working on a master's in Comp Sci in oh, about 1982. 
> His professor gave him this thesis project:
> 
> Write a Pascal compiler.
> 
> In Pascal.
> 
> I can still hear in my mind the screams coming from late at night from 
> friend's apartment. He was NOT a happy camper for those two years. :D

Wee... I should have just grabbed a copy of Borland TurboPascal. It was 
written in TurboPascal! ;-)

I once had a go at writing a Pascal interpretter in BASIC. (Because I 
didn't have access to any computer that actually had a Pascal compiler 
or interpretter.) Of course, not knowing anything about computer science 
[because I was 11], I attempted to construct a program to edit, 
tokenise, parse, type-check and execute the Pascal source code all at 
once. This inevitably resulted in rapid and complete failure.

Today I understand that the correct thing to do would be to build a text 
editor, *then* try to make a compiler/interpretter. And have this thing 
process the souce code in several seperate stages, not all at once.

Basically I was trying to tackle a problem having no idea where to start 
or how to structure it.

I was only 11, after all...


Post a reply to this message

From: Captain Jack
Subject: Re: Programming langauges
Date: 21 Oct 2009 11:14:10
Message: <4adf2542$1@news.povray.org>
"Invisible" <voi### [at] devnull> wrote in message 
news:4adf232d$1@news.povray.org...
> Basically I was trying to tackle a problem having no idea where to start 
> or how to structure it.
>
> I was only 11, after all...

Let me think... 11, for me, would have been 1972-3, which would have been 
the sixth grade... I didn't have access to any kind of computer anywhere 
(that would come about four years later, when my shool got a remote terminal 
attached to an IBM system 34). I *was* into electronics at that point, and a 
rigged a kind of programmable light board out of some scrap wood, parts from 
about a dozen flashlights and some resistors. You could patch jumper wires 
into clips on the board to make little puzzles to solve by flipping numbered 
switches. A couple of years after that, I spent some time building TTL 
circuits, which was really cool, but not as flexible as I would have liked.

But, man oh man, when I did get started programming, I new I'd come home. :D


Post a reply to this message

Goto Latest 10 Messages Next 10 Messages >>>

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.