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.
A pure object oriented language along the lines of Smalltalk - expected to see it down there near Smalltalk.
He was referring to Assembler.
===== Murphy's Law is recursive. =====
the horrid diagram charting the evelution of *nixes. It was featured along with Sata^H^H^H^H McBride on the cover of a recent Fortune. This one seems to be slightly easier to understand, though. And it IS interesting to see where languages come from. (I imagine not everyone knows that C came from a language called B).
The text should be smaller so that the target market of older geeks looking for something nostalgic need to squint more.
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.
It's a little hard to understand this chart w/o understanding the systems that propagated these language shifts. Plus, it really sucks that all the versions are on the same line... it is really hard to read that information and glean any kind of useful stuff, except for the off-shoots from the other languages to form new ones. That part is cool!
stuff |
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
Dont use such silly concept as programming language. They manually set content of memory chips through arrays of switches :)
:).
Think, what Mozilla could be with this adventurous programming technique
The Forth, Logo and Smalltalk lines all start in the late Sixties.
Of course, "chartjunk" as defined Edward Tufte. Apparently, the deriviations and timeframes of the various languages wasn't interesting enough by themselves.
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.
That "map" is .. uhm well .. great.
WTF does it mean to non programmers?
I really do know KungFu
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.
Hooray for smalltalk. I really miss using that old language, it was so diverse. Im glad to see some of the effects are still trickling into new langauges like C#. Cool site.
GroupShares.com A free and interactive stock market community. It is just getting started so check it out!
-------
artlu.net
... and existing for a while now. The same exists for Open Systems (UNIX) and Closed Systems (Windows) history on the same site.
Most languages refuse to die even when they are of no further use or I should say other languages are much more useful and efficient at doing the same job. If this were the case in "real life" we'd be speaking Celtic2004 or LatinIso3
It might have plenty of omissions but I
still want to print it out...
How the heck do I print it? The print
dialog will only let me print either
the part right in the middle taking up
a page, or squeeze the thing on to one
page...
Be nice if they would let us order
a free (real) poster...
I don't see BrainFuck anywhere on that graph. Is this the "PG" version? And when is the movie coming out?
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.
Interesting. I didn't know that ActionScript had derived from ECMAScript - I always thought it derived from JavaScript. And before you flame me, see my journal where I've already refuted anything you're about to say about Flash.
Drill baby drill - on Mars
They forgot ksh which had control structures based upon Algol68.
Also ECMASCRIPT was derived from JavaScript which isn't shown that way on this.
Publising these sorts of diagrams id fine, so long as they get it right. When its wrong/incomplete, it probably does more harm than good.
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)
If for no other reason than the "long" type modifier and the cast notion (if not the syntax).
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
Wow, I came a long and F4.0 was realy cool... if then else.
But this was realy cool to read. I am sure most tick of the languages they have used.
Come the revolution, the Bourgeois, Capitalistic, "A PARKING STICKER HOLDERS", will be first against the wall!
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!!!
Dupe
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!
But where's *nix????
/pathetic attempt at humor
oh wait, wrong response for the thread....
I see that Lisp gets a mention there but AutoLisp doesn't. Does anyone know if AutoLisp counts as a programming language per se?
Drill baby drill - on Mars
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/
How could you not like a language whose syntax is > < + - . , [ ]
Its also the smallest compiler ever written.
Ardente veritate incendite tenebras mundi
Definitely is much more Pascal than Basic.
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!
Need to get a project done in Cobol in a hurry?
Step 1) Find a Russian that can program in Cobol.
Step 2) Lock in a room with 30 PCs and 29 other (can even be previously non-computer using) Russians. Allow 48 hours, with generous room services.
Step 3) Profit!
Note: The Russian in step 1 must also speak your language! If not, and you speak no Russian, the project may grow or shrink in direct proportion to quality of room services in step 2!
-Markvs
46. The Hobo smiles, his eyes glaze over, and he burps. "Beware the man who has lived longer than the Wasteland."
Does the length of each line signify anything, or is it an arbitrary design element?
Actionscript is way over to the right, Fortran stops around 2003, but C and C++ seem to have died around 2001. Sup wit dat?
obviously no deficiencies vs. no obvious deficiencies
I printed it out on a 1200*1200 dpi laser. It printed alright and I think it is readable. I just need a microscope to do so. I am 99% sure it is actually clear enough to read, I just need to borrow someone's microscope! :)
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?
Thank god for this poster which is so obviously written by those completely in touch with modern-day programming language use. It confirms to us all what most of us already knew, that C and C++ use died somewhere in 2001 and that we should thank M$ for the modern VB.NET and C# languages which will carry our collective programming-language torch into the future.
Unix History also following the links you might get to windows hostory as well!! somewhere in there you will find programmign languages history too!
How dare they! Of all the nerve to not put my favorite on the map. ;)
-
6F 9E A9 1E 96 9F 74 27 ED B8 81 6D 0C 4E 1E 78
My other Sig is a 229.
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
Whth an oversight like that, I'm guessing the rest isn't very accurate.
No, but what I did notice: All the books have some exotic animal on the front perhaps projecting something about the language, and Applescript has a small yappy lap-dog.... ROTFLMAO!
Some languages have changed drastically in the different versions. In some cases those changes have included concepts adopted from other languages, even ones that did not serve as the initial basis of the language.
I would have liked to see additional diagonal arrows pointing to from the new language influences to the versions of the language where the new semantics were integrated.
While they're at it they can add an arrow to Borland Pascal from whatever language served as the inspiration for the OOP semantic model, as it certainly wasn't Visual Basic.
or after a point does this just look like the history of when O'Reilly put out books?
Obviously there is plenty of room to make the font larger. If they increased the font size it would have the same effect as bold and make it more readable at the same time.
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)
http://www.colorforth.com/HOPL.html
What about my beloved RPG?
The Tools Of Ignorance wanna be a tool?
The map has no link (not even faded) between C/C++ and PHP, but does have one from Perl. Granted, PHP was orginally a wrapper for Perl scripts and it does use some Perl type syntax for regular expressions, but it's overall syntax and "look & feel" is much more C-ish than Perl-ish.
I remember I saw such a slogan in sevral books, and here again.
There is a spark in every single flame bait point.
And the reason that they didn't say that the first half year was because there was only one computer!
The Internet is full. Go Away!!!
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.
Look for Caml and OCaml. Ocaml is going strong and is a remarkable language: concise, safe, and about as fast as C. And, of course, there's always Lisp.
I see actionScript on here, but not Lingo (for Macromedia Director). I think there are others missing, too. I guess O'Reilly hasn't published a Lingo book.
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.
where can i buy the poster?
Because they want you to by more books. They are not in the poster business, they are in the book business.
Look out, Kevin Bacon.
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...
I wonder why they billed it as a new OS when it went to market if it wasn't anything new, oh wait, win 95, ME, win2k pro,
I just did a search for Java on The Language List and here is the result:
Result of search for "Java":
No matching entries found.
No, Vern. They just let him in.
I remember the Miranda days. Programmed in for just about year. I think that I was the only one to get anything to work in it. Still not really productive but it was time well wasted.
Ahhh the good old days. Now I just spend time reading Slashot articles.
Oh man, how could I be so ignorant as to not know that OCaml was a functional language. God knows I've heard it thrown around in forums enough.
The shame!
Anyway, thanks!
The Internet is full. Go Away!!!
Didn't Ada Lovelace write "code" for Babbages machine in 1899? I thought she invented the subroutine?
https://www.accountkiller.com/removal-requested
QuickBasic arround 1985 On MsDos 4 !
UCSD Pascal arround 1982 On apple II
Ceci n'est pas une Signature !
I should point out that I'm only reiterating a rumour, but F# is supposedly a functional language that Microsoft Research is working on.
It may not be true, and even if it is, it might never amount to a real product.
If anyone can confirm or refute this I'd be happy to hear about it.
The Internet is full. Go Away!!!
They should tree it out, showing how C+ came from C, etc, instead of just showing the languages "appearing".
excitingthingstodo.blogspot.com
It's similar to Delphi and has been around for a while. Take a look here : http://www.progress.com/index.ssp
That family tree doesn' branch..
I mean, M...?
(I use IS ObjectScript myself, real hard-core M gives me the chills)
I've heard a number of candidates claiming the title of "4th generation", but nothing definitive. The earlier generations include:
:-) :-) :-)
-Machine language; panel switch or re-wiring programming; (gen 0?)
-Assembly language and assemblers; (gen 1?)
-Early compiled languages; (gen 2?)
-Structured programming; (gen 2.5?)
-Object-oriented programming; (gen 3?)
Each generation makes the claim: "programs that practically write themelves!"
Some next-gen candidates I've heard include:
-Flexible applications like spreadsheets and databases;
-More abstraction, such as when Patterns and Aspects become integrated into OOPS;
-Interactive development environments such as integrated compilers-editors-developers;
-Visual generators from icons, flowcharts, UML diagrams;
-Scripting languages;
-Auto-learning programs from examples (neural net, A.I., google sets);
-Natural human language; domain-languages like mathematics;
-Your_favourite_pet_idea_here.
They did a crappy (Microsoft-centric) job of the Basic language time-line.
Just because there havn't been any new standards for functional languages doesn't mean that they are dying out. When you see that the last version of Haskell was 98, that means the last Standard Definition of the language was established then. Haskell environments like Hugs, ghc, etc... continue producing new versions, and providing extensions to the 98 standard. The same holds true for most other functional languages. Also F# isn't simply a rumor, you can use it if you want. It is based on Objective Caml, so if you know OCaml syntax, you should have little problem with F#. It can be found at: http://research.microsoft.com/projects/ilx/fsharp. aspx
they are missing IPL which predated LISP? am i right?
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
If everyone is done whining about the historical accuracy and omissions, Kinkos charges $10/sqft to print this and FedEx shipping will be about $10 -- that's about $56. I suspect it's a better deal to buy two books from O'Reilly's.
I believe that it has been demonstrated that not all functional languages are slow.
Come on! I mean they even have O'reilly books on it.
-_-
I work for a publishing company with a wide format printer and I can get you cheap printouts of this if you like at full size. Call (780) 425-9303 the company is PageMaster ask for Noah (that's me) It should be around $20 plus postage to get to you, the printing will only take 1 day
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.
I don't get it. The arrows for C and C++ stop before 2002. Does that mean those languages are dead? News to me.
The history of basic is worng -- typical to attribute it to MS. Digital Equipment was the first corporation to use BASIC as a system level programming language (on PDP-11's -- RSTS), and then the first compiler version (BP2).
BASIC -> DEC BASIC-PLUS -> DEC BASIC-PLUS2 -> VAX BASIC -> then around here is when it appeared in MS Windows.
<cfloop>Well, what about it??</cfloop>
And the program was without form, and void, and darkness was on the face of the monitor. And the spirit of God was moving over the bits of the data.
And God said "Let there be FORTRAN" and there was FORTRAN. And God saw that the language was good; and God separated the text from the binaries. God called the text ASCII, and the binaries he called compiled. And there was evening and there was morning on the first day.
It's no rumor: find it here.
Wouter van Oortmerssen has created several programming languages...
Some of them were plain beauty, others had a quite small compiler, others were a proof of concept of his PhD-thesis.
Granted, none of them ever became famous, but I still miss the ease and power of AmigaE on my Gentoo box.
It's missing oodles of history, including two revisions of ANSI-standard FORTH, on the FORTH branch, mention of APL/SV on the APL branch, and Cthulu knows what else.
Nice shot. Probably impractical for a full-blown history chart.
"You might as well get your son a ticket to hell as give him a five string banjo." -unknown minister
Their liniage sources blow.
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.
Funny. I always thought of it as less of a language and as more of a lifestyle. Things get pretty rough when you've been coding for the last 20 hours.
They say the first thing to go is your penis. Well, it's either that or your brain. I forget which...
from the in-the-beginning-was-the-command-line dept.
uh?
No Jovial or PLUS, it's like half my life disappeared in the blink of a PDF.
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
so, BASIC has been around for 40 years, but it has neither recieved influence from, nor influenced any other language?
Well, I don't think they're dying - it's just that well-designed languages don't need that many revisions.
Besides, even if the language itself isn't evolving, the implementations and the libraries are. Common Lisp may not have too modern string mess-up tools, but it didn't take too long for me to find a cool regex library that does everything I could ever desire. (Look hard enough, and you can find libraries doing *everything*, for *everything*. Let's see, a quick google search for "cobol cgi library"... 22800 hits. damn.)
Food not Bombs is a nice platitude but it breaks down when you notice that the Bombees are usually well fed
why they added the extra x to Rexx in 1984, which happens to be the year I learned it in. You'd think that the Rexx programmers at the time would have be notified of such a fundamental change.
Here's a more size friendly version. of the diagram
So, which programming languages does SCO own?
Less free, but produces some of the most easily readable functional code Ive seen (name says it all).
DEC's verison of Fortran/COBOL mix.
I think this is what you meant by F#, right?
Certainly not. It's a Caml for .NET thing. Here's a link.
sounds like you want ruby.
http://www.rubycentral.com/
I program in RPG, you insensitive clods!
Proverbs 21:19
I've heard rumors of F# from Microsoft but I don't know if that is true.
It is true. Microsoft is F###ed up beyond all recognition...
Don't blame me, I didn't vote for either of them!
but you can really get some shit accomplished with it.
Name one.
I already saw this somewhere ...
http://www.levenez.com/lang/
And there is the same thing for the Unixes
http://www.levenez.com/unix/
And the Windows
http://www.levenez.com/windows/
Now you know what you can put on your sad white walls ...
If the names of the authors had been on there it would have been fun? frightening? to see how many of them one actually knew.
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?
The latest version of the ANSI C standard is C99. Does that mean that C is dying out?
Objective Caml has an arrow stretching from 1996 to 2002. The arrow for bash is very short (1989 to 1990). Why this difference? Is the chart saying that O'Caml has been more popular or more successful than bash? Is it saying that the development of O'Caml ended in 2002, or that it stopped being important in 2002?
The last new version for Basic listed on the chart is VB.NET (2000), but the arrow keeps going until 2003. The arrow for Javascript stops immediately after the latest version (1.5, 2000). Does it mean anything that the arrow for Basic goes past the arrow for Javascript?
My guess is that the chart's creator(s) chose the lengths of the arrows for purely aesthetic reasons: if all the arrows for currently used languages went to the right edge of the chart, it would have been a less attractive diagram. But designing the chart this way is very misleading.
Definitely a quirky list. How NetRexx gets in but PL/I is left out is puzzling.
That confused us a little at first as well - don't think of the end of an arrow as the end of a language. Rather, the end of an arrow is the last time that language saw a major update in specification. So as soon as a new spec came out the arrow would extend to meet it.
I'll bet there are is still active development going on in just about every language on the chart.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
APL - Now there's a language that had a lot of influence on todays languages. You'll note that today's languages are pretty much the exact opposite of this one.
How many of you out there are familiar with the one line programs of APL, complete with the cryptic runes?
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>--
Since they did include other web based scripting languages like JavaScript, PHP and VBScript they should have included ColdFusion, which came about in 1994. ColdFusion was the first commercially available Web Application Development language and is still used in very large numbers today.
My .02..
I like Rebol one of those 'personal' ideas from Carl Sassenrath (the maker of Amiga OS).
In Rebol, code is data, data is code, and usually its only text. Beautifull, refreshing language, try-it for a change.
What's in a sig?
What about lambda-calculi and recursive functions? The lambda-calculus was a language for describing algorithms, it had a formal syntax and semantics... so why is it not listed? Does a programming language require a compiler or an interpreter on a physical machine to be considered a programming language?
If all physical computers were somehow destroyed tomorrow, would programming languages cease to exist?
Aren't they really two seperate languages? They are similar on the surface. I just don't think they should be on the same line.
The sentence was:
Heh, I still haven't seen "COBOL" and "happily" in the same sentence.
// It's not a C++-style comment, it's an Algol-style comment.
Show me on the doll where his noodly appendage touched you.
What about Zuse's Plankalkul? Although it doesn't have any descendants (because of the scientist's isolation), it can be considered the first high-level language, which already had a lot of features only added much later in other languages.
You can learn a lot about programming languages history and family tree from this slides from a conference by Larry Wall.
Sincerely,
Pan Tarhei Hosé, PhD.
"Homo sum et cogito ergo odi profanum vulgus et libido."
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.
documented programming languages. It is based on an original diagram created by Eric Levenez (http://www.levenez.com)
If you read the lower left-hand side of the poster you'll see this statement plus more.
Functional languages, once created, don't change except by replacing the implementation with an equivalent one, obviously.
The thing about functional languages is that they frequently don't act like programming languages are expected to. A Turing machine is a poor description of a functional programming environment, for example. This means that most of the influence that functional languages have is on things that aren't generally considered programming languages. They're great for the formal specification of things that process information, while allowing you to completely ignore the question of how they could possibly be implemented.
Interestingly, as computer-generated code improves, it becomes increasingly possible to just let the compiler figure out how to write the (imperative) program, while just writing a functional specification for it. How does it work? Who cares, so long as it does what it's supposed to?
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.
And I think some mods here need to get laid more often. OK, I know, this is
Information: "I want to be anthropomorphized"
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!
With 'C' and the supporting libraries you had interprocess communication, serial I/O, and better control of file I/O. Remember also back in those days that you could not link 'C' and Pascal modules together.
When managers made plans to use Pascal on projects and the projects encountered major problems because of the limitations of the language, you can bet people were upset and bitter at those who had hawked the language as the best thing since sliced bread.
Certainly Delphi doesn't have those problems. I think Delphi is a great programming environment, but alas, like you, it's pretty much relegated for stuff I do for fun.
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
I remember seeing this before. It's easier to read than O'Reilly's copy as well.
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.
Also, a similar and more complete language chart is available here.
Of course, I haven't publicised it, but I've been working on Cube for a while--a programming language for project management...it has basic concepts of cubes, cube farms, resources, tasks, schedules, etc..
I thought it was rather obvious that BASIC was derived from Fortran. But it is not on the chart that way.
(419 bytes; if you see < and > it should be < and >, of course.)
I also made an optimising version of the compiler (not so obscured, though, and a lot bigger).
Lets See IBM employees invented Fortran the worlds first programming language.
;-)
IBM invented the PC as we know it.
Now IBM is fighting to save linux from SCO.
this almost makes up for the PCjr
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.
Yet it doesn't get a mention.
True, Arc is currently vapor, but GOO, a project in the same vein, is already functional (pardon the pun).
They developed the first the first commercial programming language for a personal microcomputer by:
...
1. taking a non-commercial programming language for a personal microcomputer
2. commercializing it
3
bah... I'm not even going to bother saying it...
Why is this important?
People are dying, starving, killing one another, put in prisons, tortured - huge injustices being perpetrated as we read and write here - and you want to talk about a freaking poster?
Slashdot has the power to be relevant. All it is right now is silly.
A very nice chart. In many ways, Algol 60 is the Latin of programming languages. It's effectively a dead language (how much new programming is done in Algol 60?), and but it's concepts, structures and syntax are the underpinnings of many of the major modern languages.
woooo! At first I hated Lingo, but I got used to it eventually. The also don't have Hypertalk (for Hypercard) in there either :/.
....or maybe Lingo is a "liberally biased" programming language?
I see actionScript on here, but not Lingo (for Macromedia Director). I think there are others missing, too. I guess O'Reilly hasn't published a Lingo book.
"A real shame. If something like Arc had the kind of corporate drive behind it that Java has had (Sun, IBM, Oracle, etc.), it could be spectacular, but it would be a language for smart, expensive developers, not one for masses of cheap, interchangeable coding drones, and the big companies seem to feel more need for the latter"
So is there any project to bring LISP to ECLIPSE? A good IDE with a strong CPAN repository would help.
BTW Were's RPG?
I've heard rumors of F# from Microsoft but I don't know if that is true.
"There are no current plans to commercialize F#, and the source code for the F# compiler is due to be published in June 2004."
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.
XSLT has some nasty problems, aside from the obviously ugly syntax. Unfortunatly I've forgotten most of them, but I do remember that you need a deeper stack than most implementations provide to do anything complex. (I was trying to output plain text with word wrapping.)
I find it amusing that they have an arrow on COBOL's line, implying that it's still advancing.
Karma: It's all a bunch of tree-huggin' hippy crap!
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.
I think you will see vistages of functional languages implemented in a lot of derivative languages even if they are inherently declarative. For example, aspects of anonymous functions, curried functions, etc. can be utilized in languages generally thought to be non-functional. Case in point, Python.
Additionally, I wouldn't classify Prolog as really a functional programming language like Erlang, ML, etc. Although Erlang was developed utilizing Prolog, you cannot make bona fide function declarations in Prolog. Prolog really deserves its own classification: a logic programming language.
See The Wiki for more details.
There's a pallid yellow line jumping up from Borland Pascal Object to Delphi, which you can just barely make out crossing the snake in the background.
The missing piece that gets me is Borland Pascal Object starting from scratch in 1989 from Pascal AFNOR.
That's news to me who was working at the time, and TP 5.5 with the new object extensions came out, giving me an Object-Oriented Programming manual to pore through. It was a relatively natural extension of TP 5.0 syntax, which was already miles away (especially with its strings and units) from old UCSD Pascal.
That line should extend back to 1983 for Turbo Pascal 1.0.
IMHO-tep :)
Binary geeks can count to 1,023 on their fingers
With RPG II, we had conditional loops and CASE statements, but no pointers. Still, some large business systems were written in RPG. One wouldn't expect a G/L, A/P, and A/R system to be written in assembler. They *could* be, but using a language built around records and the cycle of output, input, calculate makes more sense than trying it in assembler.
Today, RPG/400 is still going, installed on every IBM AS/400 sold. Of course, the language now has strong ties to the built in AS/400 database....
I wouldn't be surprised if today IBM has added 4GL components to the language. ;-)
"The most sensible request of government we make is not, "Do something!" But "Quit it!"
you insensitive clod!
-Vendal Thornheart
I think it's F$%@ from Microsoft...
They list every stupid iteration of Cobal, SmallTalk and every other Berkinstock loving language, but under Basic we have "Basic", "MS Basic" and "Visual Basic"!?! WTFIUWT, how about Interger Basic, Applesoft Basic, GW Basic, Real Basic, Basic under VMS, etc...? I was coding in a Basic language in 1980-82 at the least on an Apple //+! Just to pick on the Basic line for starts.
This looks more like a mostly Mainframe/X86 centric chart. I call b*llsh*t. This is almost as lame as the new season of Last Comic^H^H^H^H^HReality Contestant Standing.
as we all know, much of bsd is written in c. therefore c is dying.
"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
what about the Stunt Island programming language, that counts doesn't it? :D
There was a guy working on Lisp for Eclipse, and he got a lot of people so interested that he sort of ended up saying, "Never mind. It's nothing really, just a little experiment. Go away and leave me alone!" So, who knows....
"Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
While it was a little too PASCAL
As a professional OCCAM programmer for 3 years I would have said they should have made it more like Pascal (or C)
Occam "convenienty" featured:
1) No decent data structures (i.e. records/structs). You had the choice of an array or an array.
2) Had no recursion. I guess this saved them having to do dynamic memory management and helped the "provability" of the language, but it was a pain to do my ray tracing code.
3) Only had pre-tested loops.
4) No pointers/dynamic memory (but there were ways of hacking around that).
Some features, OTOH, were nice, such as array slices and automatic array bounds checking, and the ease of doing multi-threading was wonderful.
Simon
Wasn't the first programming language invented by Al Gore ?
-- "It's not stalking if you're married!" My Wife.
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
I agree - I've gotten used to Lingo, but it's not my favortie. The new director allows for JavaScript, which is kinda neat.
On my Laptop LCD I can barely see it even if I am oriented exactly at a right angle to the screen. It's only a hair's shade different than the background color. I too thought it odd that Delphi said it came from VB, now it makes more sense when I see there are two arrows.
FORTH didn't die spectacularly after OO Forth; Chuck Moore is even working on a follow-on. Moreover, NEON was an OO Forth that was in use by at least 1986, 'cause I was using it then as a summer programmer.
Grr.
I am the Lorvax, I speak for the machines.
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.
Ruby isn't that language, but it's close enough that you ought to look at it. Code blocks allow an amount of syntactic extensibility that's much smaller than Lisp, but still quite useful.
Are you adequate?
it's f'ing hilarious
It is also possible to subclass Class to make your own kinds of classes; the Class class provides a inherited hook to catch when somebody inherits from it, and its superclass Module has a method_added hook.
I'm not sure what kind of behavior you want to overload the normal Python class and def statements to do, but I suspect you have multiple workarounds to do what you want in Ruby. Two ideas:
- Don't use the class statement; subclass Class to MyClass, implement the behavior you want, and create classes of your new kind by calling MyClass.new with a block. Then you instantiate them normally.
- Create MyBehavior as a plain old vanilla class (or maybe as a mixin module, haven't thought it through) which implements the behavior you want. The classes with the behavior you want should subclass MyBehavior (or if you use a mixin, declare include MyBehavior at the top).
As to how to modify the behavior of methods, look at the ExampleDate.once method in this chapter of Programming Ruby (search for "Tadayoshi Funaba"), for an example of Ruby code that modifies the behavior of a method (by renaming it and replacing it with a wrapper). In this example it needs to be requested explicitly, but a class can intercept method creation and do this sort of thing automatically for all methods.Are you adequate?
No, they haven't gone anywhere... which can be seen as their downfalling or a blessing. My comment was more intended as a "gee... I've had my nose buried in this damned Micro$oft IDE instead of the nice Borland IDE I grew to know and love so long ago."
... side effects... which take on many forms: Bloat, slowness, null pointer de-references, incorrect short-circuit behavior, etc. Thankfully, the Borland IDEs from the mid-'90s were so robust that when I started using them, I ended up producing the smallest, fastest, most-fault-tolerant code I've yet to reproduce using a modern IDE without serious tweaking of compiler options squirrelled away in sub-menus of sub-menus of tab bars that extend for miles or in .rc or .ini files that are cryptic, at best. Not saying Borland's current IDEs aren't modern -- they *are* quite modern, however, they're a bit pricy, and I haven't had cash to pay for them since the Internet started to get big.... *sigh*
A man once said to me, "An engineer is only as good as his tools."
If you use the wrong tool, you end up with
=o Javascript?? for what?
Joachim
People don't write Manifestos any more -- what's going on in this world? [Frank Zappa]
Hi,
Besides THE Language list (which is also linked to in the story), I also like the Dictionary of Programming Languages, which includes the Language Type and a Description / History for MANY Programming Languages.
In a more "practical" side, it's also interesting / funny to read 99 Bottles of Beer - one program in 620 variations
You don't need to steenkin' strings or any of that other fancy crap. You can make up your own strings (and numbers too!) from lists of lists.
> I see your "Turing Complete" and raise you a "Von Neuman Machine". Random use of technical terms are always good for a few mod points.
The term Turing-complete is specific to the taxonomy of computer languages. Just because they didn't cover it when you got your MCSE doesn't mean it is a random term!
If you want a bigger and more comprehensive chart, I have been working on one at http://hopl.murdoch.edu.au
e st er-country.pdf
as part of my research
It isn't quite up to date, but it has more than 2,500 languages on it FWIW. That's only a third of the languages in my encyclopaedia (about 3,500 should be on it, but I hate mucking around in graphiz over 2000 nodes). THe actual chart is 60cm * 507cm
Anyway, the chart is part of an experiment in organising history of ideas on charts, and is one of a series of five (level 2 to be exact)
You can find it here:
http://hopl.murdoch.edu.au/images/genealogies/t
If people are interested I will upload the other ones as well
For the grumblers among you - the thing looks best in IE, and there are bugs in the Javascript. Sorry if that's a problem for you.