The History of Programming Languages 684
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."
Link is a 39x17 PDF (Score:5, Informative)
You may want to "right-click, Save As" that puppy . . .
Re:Great! (Score:5, Informative)
Unless you need an excuse to buy a 40" monitor, in which case, just forget I said anything.
Related (Score:5, Informative)
Beating the averages [paulgraham.com]
Both are amazingly good.
Re:SmallTalk (Score:5, Informative)
It's quite impressive how it has evolved, and is still one of the most entertaining software environments around.
Re:ActionScript?!? (Score:2, Informative)
Autocode (Score:3, Informative)
Did they give credit to the original? (Score:3, Informative)
Re:Actionscript (Score:3, Informative)
They left out a couple (Score:3, Informative)
Lisp++? Try Unicon instead! (Score:3, Informative)
Éric Lévénez did this (Score:2, Informative)
Éric Lévénez did this already [levenez.com].
We have had his poster on our wall since last year.
Re:Starts with 3GLs. (Score:3, Informative)
Assembley language is simply assigning pneumonics to those binary patterns instead of binary numbers, so instead of writing "10010000" for "No Operation" (the only one I recall off hand) you write "NOP". Assemblers are relatively trivial to write, and the only other function they perform is error checking and binding variables to addresses.
Now it is true the machine code and assembley are languages in the technical sense (they can be used to express algorithms and they are turing complete), they are useless as languages except for people writing OS's and code that needs to go as fast as possible, because by definition assembley and machine code are tied to the architecture of the specific processor/system design you have chosen. Each processor speaks its own variant of these languages although each processor family is very similiar (usually every generation of processors gets a few new instructions/capabilities added, and the timing for them varies wildly). Long story short, there is a machine code/assembley code language for EVERY type of processor out there, and they are functional languages, not expressive languages, and they are not meant to work on any different computers. It would be like if you knew a human language that you could only use to talk to people born on the same day you were, not very useful huh?
Re:Functional programming languages dying? F# XSLT (Score:3, Informative)
Lahey [lahey.com] has a Fortan for .NET Compiler [lahey.com]
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).
Re:Lisp (Score:1, Informative)
Python's only claim to fame, in my opinion, is that it's not Perl. The syntax is somewhat heavy and there are lots of arbitrary design decisions (for instance, you can have a "finally" block and an "except" block, but not at the same time. Why? You can have a lambda expression, but only *expressions*, not arbitrary code. This distinction is pointless. To make a class member private, you put two underscores in front of it...(not very explicit).. etc).
Ruby doesn't reach the generalized power of Lisp, but one common use of Lisp macros (to create control structures) is there. For instance in Ruby you can do this:
def time_it {
start = Time.now
yield
Time.now - start
}
t = time_it {
foo()
bar(baz)
3.times { puts "Hello, world" }
}
puts "your operation took #{t} seconds"
There you go, you've added something new to the language. Throw in first-class continuations, and you can build pretty much anything.
Don't let the hype fool you, Python is popular, but it won't win any beauty contests, and it's nothing like Lisp (why people say that really baffles me). Ruby borrows from Perl (regular expressions are first-class objects, but amazingly are integrated even more nicely than Perl), and Scheme (continuations, "foo?" instead of "is_foo" naming conventions, and "foo!" convention for destructive, side-effect version of "foo"), and other languages like Icon (the blocks, the lack of distinction between attributes and methods on objects which I think is the probably THE coolest thing about Ruby).
Ruby is more like Smalltalk than Lisp, but I've found that many folks who feel limited by their languages have generally found Ruby to be pretty amazing.
Re:Great! (Score:5, Informative)
Re:Ordering (Score:3, Informative)
$5.95 Java vs
$5.95 PHP Security Collection (PDF)
$5.95 Web Services Collection (PDF)
$7.95 Smileys
$8.95 Oracle PL/SQL Built-ins Pocket Reference
One last option... (Score:1, Informative)
Re:Functional programming languages dying? F# XSLT (Score:4, Informative)
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.
Re:Great! (Score:4, Informative)
That's still a far cry from the first programming language, which is what the quote actually says. Some of us were happily banging away in languages like Fortran and PL/1 well before then.
Still, their place in history can't be denied. They were at the forefront of an industry in its infancy and did perhaps more than anyone to make it a great one.
Re:Where's MUMPS? (Score:3, Informative)
Re:Lisp (Score:3, Informative)
As for the peculiar syntax, you get used to it rather quickly. Just like with other languages, there are editor tools to help you be productive "in spite of the parenthesis."
Re:VMs will solve this issue (Score:2, Informative)
Re:Functional programming languages dying? F# XSLT (Score:3, Informative)
I think this is what you meant by F#, right?
Certainly not. It's a Caml for .NET thing. Here's [microsoft.com] a link.
Re:A program written in many of them (Score:5, Informative)
RUBY (Score:1, Informative)
http://www.rubycentral.com/
Re:VMs will solve this issue (Score:4, Informative)
Re:Reminds me of (Score:3, Informative)
I think not sir. I think they might have been influenced by the very chart that they ripped off [levenez.com].
Re:Functional programming languages dying? F# XSLT (Score:3, Informative)
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.
Comment removed (Score:2, Informative)
Rexx roots wrong (Score:2, Informative)
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!!!
Another one... (Score:2, Informative)
Re:OCCAM not mentioned (Score:3, Informative)
Perl is just as wrong (Score:5, Informative)
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.
Re:Great! (Score:4, Informative)
Abridged means shortened without changing the meaning. Clearly, inventing the first programming language is different than inventing the first commercial programming language for a personal microcomputer. So the statement is wrong, and in no way, even very small, is it correct.
Of course, Gates and Allen did not invent BASIC either, so to even claim that they " develop[ed] the first commercial programming language for a personal microcomputer." is a stretch
Delphi should have been the VB killer (Score:3, Informative)
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.
Re:ActionScript?!? (Score:3, Informative)
ActionScript 1.x was the language for Flash Player 5 and 6, and corresponds to ECMAScript 3 / JavaScript 1.x, IIRC.
ActionScript 2.x was introduced for FlashPlayer 7 and mirrors ECMAScript 4, which is actually quite a nice language, IMHO.
ActionScript isn't 100% complete, as it omits or changes a few minor things (e.g., eval() isn't implemented in any useful way), but really, it's just trivial stuff.
I think there's some server-side version of ActionScript, but almost all the usage I'm aware of is for programming Flash movies.
Re:ActionScript?!? (Score:2, Informative)
??? No it isn't, it is a Flash programming language. It is basically the same language as JavaScript, but obviously implemented differently, and compiled (afaik), not interpreted.
Re:Perl is just as wrong (Score:3, Informative)
Re:Check out Lisp (Score:3, Informative)
"I don't know what language engineers will be using in 25 years, but they will call it FORTRAN".
I mean, a modern FORTRAN has all sorts of fancy features such as recursion and heap-based allocation. Today's FORTRAN programmers have an unprecedented level of abstraction available to them in this dynamic, high-level language.
Plus, it's reeaallyy fast.
Re:BASIC, origin of. (Score:2, Informative)
http://inventors.about.com/library/inventors/blba
So the first version of BASIC that was ever written was Dartmouth BASIC [wikipedia.org] and it ran on a GE-265 [wikipedia.org] 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 [columbia.edu]
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