Slashdot Mirror


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."

40 of 684 comments (clear)

  1. Link is a 39x17 PDF by The+Angry+Mick · · Score: 5, Informative

    You may want to "right-click, Save As" that puppy . . .

    --

    I'm not tense. I'm just terribly, terribly, alert.

  2. Re:Great! by Jaywalk · · Score: 5, Informative
    Now I need to go buy a 40" monitor to view the whole thing at once...
    Or you could buy two of their books from oreilly.com and get the poster for free by using discount code OPC79 in the shopping cart.

    Unless you need an excuse to buy a 40" monitor, in which case, just forget I said anything.

    --
    ===== Murphy's Law is recursive. =====
  3. Related by arvindn · · Score: 4, Informative
  4. Re:SmallTalk by One+Louder · · Score: 5, Informative
    The original Smalltalk-80 has a direct descendent in Squeak. The original Smalltalk guys, including Alan Kay and Dan Ingalls, still work on it.

    It's quite impressive how it has evolved, and is still one of the most entertaining software environments around.

  5. Re:ActionScript?!? by leerpm · · Score: 1, Informative

    ActionScript is JavaScript/ECMAScript repurposed for the server-side.

  6. Autocode by starling · · Score: 2, Informative

    They also missed out Autocode, which was a little higher level than asembler and still predated FORTRAN.

  7. Did they give credit to the original? by sakti · · Score: 3, Informative

    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
  8. Re:Actionscript by rsidd · · Score: 2, Informative
  9. They left out a couple by RealAlaskan · · Score: 2, Informative

    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.

  10. Lisp++? Try Unicon instead! by phliar · · Score: 2, Informative
    ...it existed at a time so far before many languages that pathetically failed to implement its features, so I'm a little confused at the way the computing world has ignored it, instead of trying to work its principles into modern languages.
    Have you looked into Icon, or its extension Unicon? You can make custom control structures (using what are called co-expressions). It also has goal-directed evaluation (backtracking, think continuations of the LISP world) built into its expression evaluation. Of course it's dynamically typed and has all sorts of data structures like lists/trees, associative arrays, sets etc. built-in, plus X11 and Win32 graphics, automatic storage management (garbage collection) and lots of cool features for text manipulation (it's a development of the ideas in SNOBOL4). To all this Unicon adds object-orientedness, POSIX system calls and networking, message-passing, etc. All this in a easy to read block structured (C-like) syntax.
    --
    Unlimited growth == Cancer.
  11. Éric Lévénez did this by wombatmobile · · Score: 2, Informative

    Éric Lévénez did this already.

    We have had his poster on our wall since last year.

  12. Re:Starts with 3GLs. by Monkelectric · · Score: 3, Informative
    Because you are mistaken about the nature of computer languages. Machine code (which you refer to as binary) is not a language. Basically the binary patterns that make up machine code are read by the processor, and the processor internally reads a "table" that tells it how to configure its circuitry to perform the operation indicated by the machine code. (yes this is a gross simplification, yes I have designed *simple* processors before).

    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

  13. Re:Functional programming languages dying? F# XSLT by no+soup+for+you · · Score: 2, Informative

    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...
  14. Re:Lisp by Anonymous Coward · · Score: 1, Informative

    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.

  15. Re:Great! by stanmann · · Score: 5, Informative
    And of course in a very small way they are correct, since that is an abridged version of the statement
    develop the first commercial programming language for a personal microcomputer.
    Which is a true statement.
    --
    Food not Bombs is a nice platitude but it breaks down when you notice that the Bombees are usually well fed
  16. Re:Ordering by interiot · · Score: 2, Informative
    For what it's worth, here is a list of the allowed books, sorted by price. The top couple are listed here, so I guess the poster costs at a minimum $12.
    • $5.95 Digital Media Collection (PDF)

    • $5.95 Java vs .NET Security (PDF)
      $5.95 PHP Security Collection (PDF)
      $5.95 Web Services Collection (PDF)
      $7.95 Smileys
      $8.95 Oracle PL/SQL Built-ins Pocket Reference
  17. One last option... by Anonymous Coward · · Score: 1, Informative

    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.

  18. Re:Functional programming languages dying? F# XSLT by ornil · · Score: 3, Informative

    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.

  19. Re:Great! by drooling-dog · · Score: 3, Informative
    They are completely correct. It was the first programming language for a personal computer.

    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.

  20. Re:Where's MUMPS? by bandy · · Score: 2, Informative

    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
  21. Re:Lisp by Anonymous Coward · · Score: 3, Informative
    Lisp can be interpreted or compiled. Performance is not a property of the language so much as a property of the compiler. Last time I checked, compiled Lisp can be faster than compiled C. (See these studies for example.)

    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."

  22. Re:VMs will solve this issue by lazarius · · Score: 2, Informative

    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.
  23. Re:Functional programming languages dying? F# XSLT by rsidd · · Score: 2, Informative
    Lahey has a Fortan for .NET Compiler

    I think this is what you meant by F#, right?

    Certainly not. It's a Caml for .NET thing. Here's a link.

  24. Re:A program written in many of them by tverbeek · · Score: 4, Informative

    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/
  25. RUBY by Anonymous Coward · · Score: 1, Informative

    sounds like you want ruby.
    http://www.rubycentral.com/

  26. Re:VMs will solve this issue by Jimmy_B · · Score: 3, Informative
    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.
    You've obviously never tried writing a language grammar. Give every language the same syntax and you have... a bunch of dialects of the same language. Standardize a few control structures and many languages won't be able to adopt your standard because it introduces conflicts or (even worse) keywords.
  27. Re:Reminds me of by grahamlee · · Score: 2, Informative

    I think not sir. I think they might have been influenced by the very chart that they ripped off.

  28. Re:Functional programming languages dying? F# XSLT by RPoet · · Score: 2, Informative

    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.
  29. Re:Great! by squiggleslash · · Score: 2, Informative
    Technically it was the first moderm programming language much like .NET is the new one for this century so I don't think you can blame them for condensing a comment like that.
    It was a version of BASIC, and BASIC dates back to the 1960s. It wasn't even a spectacular version of BASIC.

    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.
  30. Rexx roots wrong by therexxman · · Score: 2, Informative

    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!!! :-)

  31. Another one... by cheesy9999 · · Score: 2, Informative

    This has been around for awhile: http://www.levenez.com/lang/

    --
    -tom
  32. Re:OCCAM not mentioned by TwistedSquare · · Score: 2, Informative

    Nice to see someone else thinking that occam got missed. Incidentally it is still alive and well, one implementation is KRoC.

  33. Perl is just as wrong by ajs · · Score: 4, Informative

    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.

    1. Re:Perl is just as wrong by voodoo1man · · Score: 2, Informative

      Currying didn't come from Lisp, but from ML or maybe Haskell (certainly the Haskell proponents seem to emphasize the wonders of currying a lot more than their ML counterparts). I'm familiar with a number of Lisp dialects, and none feature currying as a built-in feature, as it's mostly regarded as infrequently used syntactic sugar (between macros and good old fashioned sequential assignment, there's not a whole lot that can be done nearly as efficiently or succinctly with currying, and of course the currying operator itself is easy enough to implement using the former).

      --

      In the great CONS chain of life, you can either be the CAR or be in the CDR.

  34. Re:Great! by dont_think_twice · · Score: 3, Informative

    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

  35. Delphi should have been the VB killer by adug · · Score: 3, Informative

    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.

  36. Re:ActionScript?!? by mad.frog · · Score: 3, Informative

    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.

  37. Re:ActionScript?!? by rush22 · · Score: 2, Informative

    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.

  38. Re:Check out Lisp by Sangui5 · · Score: 2, Informative

    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.

  39. Re:BASIC, origin of. by rush22 · · Score: 2, Informative

    "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)

    http://inventors.about.com/library/inventors/blbas ic.htm

    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_lan guage#History (has a big list of dialects)

    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#Appleso ftI