The History of Programming Languages
Dozix007 writes "For 50 years, computer programmers have been writing code. New
technologies continue to emerge, develop, and mature at a rapid pace.
Now there are more than 2,500
documented programming languages and O'Reilly
has produced
a poster called History
of Programming Languages, which plots over 50 programming languages
on a multi-layered, color-coded timeline."
Now I need to go buy a 40" monitor to view the whole thing at once...
They forgot Steve++, the crappy C++ rip-off I wrote for an independant study project back in high school.
Somehow I think they missed the boat on that one. Delphi is Borland's Object Pascal in a GUI driven environment.
What we really need is a meta programming language of which all the other programming languages are special cases.
----
Your Boss Might Be A Muppet
You may want to "right-click, Save As" that puppy . . .
I'm not tense. I'm just terribly, terribly, alert.
The same program, written in 621 of the 2,500+ is here.
He was referring to Assembler.
===== Murphy's Law is recursive. =====
I'm happy to see turtle-based graphics languages on there, but they appear to have missed a branch on the Logo tree. On their chart, they jump from Logo to Object Logo, but miss LogoWriter and LegoLogo.
Ok, so maybe LegoLogo is a little iffy, but LogoWriter included some pretty significant changes to Logo as a whole.
That green slime had it coming.
The Tao gave birth to machine language. Machine language gave birth to the assembler.
The assembler gave birth to the compiler. Now their are ten thousand languages.
Each language has its purpose, however humble. Each language expresses the Yin and Yang of software. Each language has its place within the Tao.
But do not program in COBOL if you can avoid it.
Technoli
The Forth, Logo and Smalltalk lines all start in the late Sixties.
That being said, the lighter connecting arrows between languages (Lisp to Logo, Algol to almost everything else) makes the chart easy to follow and interesting to look at.
...and you run and you run and you can't stop what's been done...
So which couple dozen will we continue to use?
Enjoy!
/ob
An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
ActionScript 2.0 is the newest language according to this chart. And if my manager gets ahold of this, I'll end up having to program in it by the month's end!
After all, to managers, "newer, and therefore better." *sigh*
There is another programming language family tree on that page aswell. This was mentioned in a previous story.
People do not typically "flame" about VB's functionality, but rather the breed of programmers and the vendor,IDE and API lock-in which accompany it.
I want to delete my account but Slashdot doesn't allow it.
One thing that has always bothered me is the lack of standards for basic syntax. Why not just have a standard for basic operators? For example does anyone really lose flexibility if we say statements are delimited by ';'? Or a standard syntax for if-then-else? e.g. perl's syntax is a pointless departure that adds no value.
Whoa.
It seems that Lisp holds the record for
"Longest Lived Language That Is Still Relevant Yet Underappreciated"
It just amazes me that something concieved that long ago is still going strong. I guess it makes sense, as it was concieved initially as a language for describing algorithms, then later implemented. With abstraction on the rise as it seems to be, this quality of being much closer to theory than practice is quite a useful one.
cool programming challenge: figure out the optimal vertical order for the languages so as to minimize the length of relationship indicators
Did anyone spot HyperTalk on there? If nothing else, it should be there as the ancestor or influence of AppleScript.
Media that can be recorded and distributed can be recorded and distributed.
-kfg
For 49.5 years, computer programmers have been saying "but it worked on *my* computer"!
Height: 38U, Weight: 0 Newtons, Eyes: #0000FF, OS: Gray Matter 1.0 (Alpha)
What we really need is a meta programming language of which all the other programming languages are special cases.
;-). Common Lisp certainly isn't.
Lisp is it.
Other "modern" (higher level than C) languages are special cases of primordial Lisp, optimized for various niches and programmer mentalities.
This does not imply that Lisp is the best programming language (Python is
Save your wrists today - switch to Dvorak
Aaah, the nostalgia!
Anyway, I didn't see any programming language versions for functional languages (the ones I recognize are Haskell, ML and Miranda) after some time in -99.
Does that mean that they are dying out?
I've heard rumors of F# from Microsoft but I don't know if that is true.
It would be a pity if functional languages would die at this point in time since proponents of functional languages always used the argument that "they may be slow now but they scale really well on massively parallell computer systems" (because of no side effects) and we are at the brink of seeing multi-processor systems starting to go mainstream.
On a separate note, XSLT, which isn't a programming language in the traditional sense, is functional in its design. I think the designers of XSLT really put some thought into it. In any event, XSLT doesn't have any side effects, making it a functional language in a sense, and this means that it also should scale really well on massively parallell systems.
So, I guess the theory behind functional languages live on in one of the hottest technologies around today.
Also, the last version of Prolog was in -97. Pity, you can really do some magic in that language.
The Internet is full. Go Away!!!
The most important programming language of the 20th century seems to be missing from this diagram. Those wankers at O'Reilly don't know anything! Everything that I program here at work over the past seven years has been in Intercal.
I'm guessing it would be an offshoot of BASIC.
TDz.
Fortran 2060!
RTA:
FORTRAN I begot ALGOL 58 begot ALGOL 60 begot CPL begot BCPL begot B begot C begot C++
And it was good.
Beating the averages
Both are amazingly good.
O'Reilly's favorite/bestselling books are the ones with the arrows extended furthest to the right.
http://www.welton.it/davidw/
It's quite impressive how it has evolved, and is still one of the most entertaining software environments around.
How could you not like a language whose syntax is > < + - . , [ ]
Its also the smallest compiler ever written.
Ardente veritate incendite tenebras mundi
They also missed out Autocode, which was a little higher level than asembler and still predated FORTRAN.
The font is too bold and too small for the size of the graphic.
If only they would make it poster sized and ready for print!
Why do they have to make it hard to order a copy of the poster? What if I don't want two extra o'reilly books, and just want the poster? Penny Arcade does this with some of their stuff... the only way to get some of their posters is to fly across the US to visit their conference of choice. Why do they do this?
Looks like they colorized the one found here: http://www.levenez.com/lang/
"It is better to die on one's feet than to live on one's knees." - Albert Camus
or after a point does this just look like the history of when O'Reilly put out books?
Just before seeing this poster, I was feeling quite confident with my programming skills. O'Reilly just reminded me how ignorant I really am, and how many languages I haven't even heard of. They must have some smart kid working there in the marketing dept., 'couse I'm going right now to buy a few books on some of these mysterious languages... :)
Way to go O'Reilly!
(Shame about the small font though)
ECMAScript is the standardised name for JavaScript.
For a start, they left out the S programming language (started in 1976), for which John Chambers won the ACM Software Systems Award. This, and its Libre dialect R (thanks to Robert Gentleman and Ross Ihaka at University of Aukland), are in daily use by folks who have to write programs to use data.
See what I've been reading.
They also forgot Atlas Autocode (the first programming language I was exposed to, back in 1965).
-wb-
Unlimited growth == Cancer.
My friends and I still, to this day, argue about which came first: Pascal or C. Every single one of my friends insist that C came first. I maintain that Pascal came first, but by a small margin. I had my years wrong, thinking it was 68 that Pascal (1970) came out and 69 that C (1971) came out, but I was still right about order of generation.
I still don't understand why people have such a burning hatred for Pascal. Is it because they were forced to learn it in school? It's a very complete language and has nice structure. It can be extremely powerful if used correctly and defines a large chunk of how the modern programming languages operate, just as Algol and Fortran have.
I should break out my installation CD and convert some of my recent programs to Delphi, just for kicks. Man, I miss Borland.
Éric Lévénez did this already.
We have had his poster on our wall since last year.
Because they want you to by more books. They are not in the poster business, they are in the book business.
Lahey has a Fortan for .NET Compiler
I think this is what you meant by F#, right? Fortrant.NET wasn't written by microsoft, they just used the specs to write to IL (or so I think).
If you blog it...
Didn't Ada Lovelace write "code" for Babbages machine in 1899? I thought she invented the subroutine?
https://www.accountkiller.com/removal-requested
They should tree it out, showing how C+ came from C, etc, instead of just showing the languages "appearing".
excitingthingstodo.blogspot.com
They didn't define what they consider a programming language (Turing complete? General purpose?). Powerbuilder and m4 are general purpose languages but I didn't see them on the diagram.
If domain-specific languages are allowed, I think these were overlooked:
BTW, you can download a more printer-friendly version here: Eric Levenez's Computer Languages History
Also, a German version is available here: German PDF
The only date they list for Ocaml is 97 which is presumably when it was created. The latest major version of Ocaml is from 2000, and the latest minor update is from 2003.
I bet that's not the only example. They list Java 1.4.1_2002, but don't list minor releases of more obscure languages.
It's been tried - see Dylan. As near as I can tell, Dylan didn't take off because:
The Lisp people saw no major advantages to it other than the syntax, and they'd already gotten past that barrier
The non-Lisp people apparently didn't understand that it really was better than C++/Java
Like the one growing here?
Now I'm really confused. Multiple implementations with a common specification hurt Lisp, but Jython and stackless python are not drawbacks for Python?
To a Lisp hacker, XML is S-expressions in drag.
MUMPS is in the top quarter of the chart in dark purple. ISO M ["M ISO" on the chart] pops up at '99. Frankly, I'm surprised it's lasted this long.
"You might as well get your son a ticket to hell as give him a five string banjo." -unknown minister
The use of ',' and ';'. Generally, you use ',' to indicate a list. Therefore it makes perfect sense it is used to create parameter lists, and when used as an operator, "returns" the expression to the right.
The semicolon is often used at the end of a clause or list, therefore it does not defer to the right and thus is a suitable indicator for a logical break.
I would think language programmers at some point flirted with the idea of using the period for an end-of-statement marker, but perhaps because it is also used as a decimal point in the ASCII character set, they might have been worried about determining whether a trailing decimal point after a numeric expression indicated end-of-statement or a decimal point missing the rest of it's significand.
THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
You sir are sick. Beloved RPG, an oxymoron of the highest order.
It looks like assembler but works like COBOL. The red headed step child of programming languages.
With each subsequent release it becomes easier and harder at the same time. Dysfunctional personified.
I use it on a daily basis and not once have I found anything to like about it.
And yet...there's something so right about being so wrong. It's survived for decades on a single platform. It does the job. It's easy to learn. It pays the bills.
Now if only some fool would relase an AS/400 - ISereis - I5 emulator my world would be complete.
I think this is what you meant by F#, right?
Certainly not. It's a Caml for .NET thing. Here's a link.
I think not sir. I think they might have been influenced by the very chart that they ripped off.
Don't tell me no one here has ever seen this. I can get my own copy there and print it. O'Reilly merely remade it, and gave a small credit to Eric Levenez.
--<Mike>--
Delphi from VBasic?
Which happens to "feel" exactly the same as VB. It's not simply the language syntax but also the structure, and programming in Delphi is practically the same as VB
This is backwards. VB and Delphi both came from Pascal, although Delphi was an improvement and VB was a translation.
In the late 80s, Pascal was the language being taught at most colleges, although C was starting to gain some marketshare. Microsoft needed to replace BASIC with a functional language. They took Pascal, changed the keywords to the ones from BASIC, added line numbers, and called it VisualBasic. This had the effect of killing the market for Pascal programmers. The good ones upgraded to Delphi; the rest moved to MS VB.
VB 1.0 had much more in common with Pascal than it did with BASIC. "Pascal format function calls" are still used by VB, in contrast to "C format function calls". Pascal and VB have "procedures" (or "subroutines") which allow the values of parameters to be overwritten in calling routine. C requires that one and only one value can be returned, which must be explicitly assigned in the calling routine (although fun with pointers can cause many other effects.) BASIC did not have procedures, and subroutines overwrote the global variables, because BASIC was also missing local variables.
I spend my life entertaining my brain.
I don't see functional programming languages as dying at all. Caml has already been pointed out as a modern and viable language, and although F# is pointed to as an example of a functional language for .NET, I think Nemerle is every bit as cool.
Also, although purely or almost-purely functional languages aren't that common or popular with the coding masses, the ideas and principles of the paradigm are slowly trickling down to the common languages. Things like algebraic datatype construction/deconstruction, as well as functions as first-class citizens aren't that uncommon any more.
"Oppression and harassment is a small price to pay to live in the land of the free." -- Montgomery Burns.
OCCAM isn't mentioned (nor CSP from which it was derived). OCCAM was the parallel programming language of choice for the transputer back in the late 80s. While it was a little too PASCAL like it had some nice concepts borrowed from CSP. I'm surprised it didn't get a mention because at one time the transputer was the most advanced and innovative parallel processor around. But there again, both the transputer and OCCAM were British. Enough said.
Of course it was called Oak back then. I guess I should update my resume to show 13 years Java experience instead of the lackluster 9 I lied about on my current one. Take that all you Java coders trying to find a job!
Unfortunately there are a few glaring errors with the O'Reilly chart regarding Rexx. :-)
First is the roots of Rexx on the O'Reilly chart are from csh and awk (these languages have nothing to do with Rexx), but on the original chart from Éric Lévénez, it correctly states the roots of Rexx from PL/1.
The second item missing is the 1996 ANSI Standard. Other languages have ANSI standard milestones, but not Rexx? It IS the only ANSI standard scripting language.
Why the arrow for Rexx doesn't continue is also odd; I just released 3.3 of the ANSI standard Regina Rexx Interpreter in May 2004.
Apart from these errors its good to see Rexx where it should be; ON TOP!!!
This has been around for awhile: http://www.levenez.com/lang/
-tom
Perl's history starts with nawk and sh at version 1.0 and there are no further influences listed. At least that's what's in the picture.
A more accurate history would be:
Perl 1.0: awk, sh, C, BASIC
Perl 5.0: C++, LISP
Listed as a seperate line:
Perl6 A1-12: Perl 5.0, LISP, C#, C++, Ruby, Java, Python, SNOBOL
To be more specific, Perl 1.0 had heavy influences from C. The most obvious influecnes were in the operator precedence, ternary operator and behavior of parens.
In 5.0, the influence of C++ was felt strongly on the establishment of Perl 5's non-object-model object model (AKA the object model construction kit) and from LISP can the idea of closures.
Come Perl6, of course, it's a different language which borrows most of all from Perl 5, but also heavily from the other languages listed. Adding LISP currying, Ruby mix-ins, a Java and/or C#-like VM, python-like exceptions and a number of features from C++ including templated proto-classes and iterators as well as dozens of unique features. But, ultimately I think the most world-view altering change will be the SNOBOL-like inline grammar construction.
Well, there are lots of Delphi / VB comparisons and observations here so I thought I would throw in my two cents as Delphi is the environment I program in the most.
While there are similarities between VB and Delphi there were (and I say were because VB.net is a whole new animal) some important differences. For instance:
1. Delphi can link statically - I can hand a person a floppy disc with a program I wrote in Delphi and I know that they will be able to run it without distributing VB Runtime Libraries
2. Object Pascal in Delphi is a strongly typed language and a true object oriented language.
3. While Delphi applications may not be quite as fast as C++ apps the performance is certainly better than VB.
4. One can write Assembly blocks in a Delphi unit.
There are more but I am at work so I'll stop.
It's fashionable to slag VB, but, really, it's done a lot. A lot of people that would never have gotten into programming were able to make apps to suit some small purpose because of VB.
It's just too bad that most of those people did not know about Delphi and latch on to that because it really is the best RAD environment for Windows. Delphi really should have been the VB killer.
"BASIC (standing for Beginner's All Purpose Symbolic Instruction Code) was written (invented) in 1963, at Dartmouth College, by mathematicians John George Kemeny and Tom Kurtzas[sic] as a teaching tool for undergraduates. BASIC has been one of the most commonly used computer programming languages, a simple computer language considered an easy step for students to learn before more powerful languages such as FORTRAN" (Kurtz is the correct spelling)
s ic.htm
n guage#History (has a big list of dialects)
o ftI
http://inventors.about.com/library/inventors/blba
So the first version of BASIC that was ever written was Dartmouth BASIC and it ran on a GE-265 mainframe (created by General Electric). A bit of trivia: The first BASIC program ran on May 1, 1964 at 4:00 am.
http://www.columbia.edu/~jrh29/kemeny.html
http://en.wikipedia.org/wiki/BASIC_programming_la
Bill Gates, Paul Allen, and Monte Davidoff wrote a version of the BASIC programming language for the Altair in 1975, which, incidentally, was Microsoft's first product--he went on to produce BASIC interpreters for many different processors.
Apple and Microsoft: The first BASIC for Apple, called Integer BASIC was written by Steve Wozniak. Microsoft offered to sell them their BASIC but Steve Jobs told them they already had one, and if needed, they "could write a better one in a weekend". Apple later needed a floating-point version of BASIC, and since Wozniak was too busy with other projects, they bought Microsoft's floating-point BASIC--it was called Applesoft. As is the standard with Microsoft products, there were initially some bugs, instability, and memory hogging that had to be worked out. Some speculate that if Apple hadn't bought Microsoft's version, Microsoft would have gone under--Apple was able to buy it for a flat fee of $10,500 (and no royalties).
http://apple2history.org/history/ah16.html#Apples
The HOPL is an "Interactive historical roster of computer languages". It has more languages, but also contain non-programming languages (like query-languages).
The editor of the site has made two color-coded posters: Version 1 and Version 2.
Other lists are here, here and here.
Ulrik
Database engine for analyzed or annotated text
There are also a lot of languages that can be included, like Carl Hewitt's PLANNER (MIT's precursor to Prolog) and ACTORS (a purely message-passing object-oriented formalism that predated Smalltalk, and had several implementations and a lot of influence on other object-oriented languages).
All in all, I think both charts are pretty lame. O'Reilly should have at least solicited public comments before producing such a factually erroneous telling of history. This is altogether more surprising considering that O'Reilly is not a general publisher but instead specializes (in what they claim are) accurate technical manuscripts.
In the great CONS chain of life, you can either be the CAR or be in the CDR.