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."
You may want to "right-click, Save As" that puppy . . .
I'm not tense. I'm just terribly, terribly, alert.
Unless you need an excuse to buy a 40" monitor, in which case, just forget I said anything.
===== Murphy's Law is recursive. =====
Beating the averages
Both are amazingly good.
It's quite impressive how it has evolved, and is still one of the most entertaining software environments around.
ActionScript is JavaScript/ECMAScript repurposed for the server-side.
They also missed out Autocode, which was a little higher level than asembler and still predated FORTRAN.
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
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.
Unlimited growth == Cancer.
Éric Lévénez did this already.
We have had his poster on our wall since last year.
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?
Religion is a gateway psychosis. -- Dave Foley
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...
Why don't you try Ruby?
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.
Food not Bombs is a nice platitude but it breaks down when you notice that the Bombees are usually well fed
$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
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.
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.
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.
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
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."
he's talking about the following type: $i++ if ($i > 0); which I like - I normally prefer reading it that way than if ($i > 0) { $i ++; } which would be the "standard" way of writing it. Laz
Beware the JabberOrk.
I think this is what you meant by F#, right?
Certainly not. It's a Caml for .NET thing. Here's a link.
It's a polyglot of only seven languages (COBOL, Pascal, Fortran, C, PostScript, sh, and 8086 assembly), but perhaps you were thinking of this?
http://alternatives.rzero.com/
sounds like you want ruby.
http://www.rubycentral.com/
I think not sir. I think they might have been influenced by the very chart that they ripped off.
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 the quote isn't "the first modern programming language", it's just "the first programming language". So even if your apologism were correct, it would be irrelevent.
About the only thing I can think of is that the writer might have meant to write "Using the Altair 8800, Bill Gates and Paul Allen wrote the first programming language for that historic platform." Or even "Using the Altair 8800, Bill Gates and Paul Allen wrote their first programming language."
You are not alone. This is not normal. None of this is normal.
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
Nice to see someone else thinking that occam got missed. Incidentally it is still alive and well, one implementation is KRoC.
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.
And of course in a very small way they are correct, since that is an abridged version of the statement ...
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
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.
No, ActionScript is essentially ECMAScript, aka JavaScript.
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.
ActionScript is JavaScript/ECMAScript repurposed for the server-side.
??? 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.
Unfortunately, Lisp is predated by FORTRAN.
"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.
"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