Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Programming IT Technology

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."
This discussion has been archived. No new comments can be posted.

The History of Programming Languages

Comments Filter:
  • Link is a 39x17 PDF (Score:5, Informative)

    by The Angry Mick ( 632931 ) on Thursday June 17, 2004 @12:57PM (#9453730) Homepage

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

  • Re:Great! (Score:5, Informative)

    by Jaywalk ( 94910 ) on Thursday June 17, 2004 @01:09PM (#9453858) Homepage
    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.

  • Related (Score:5, Informative)

    by arvindn ( 542080 ) on Thursday June 17, 2004 @01:15PM (#9453932) Homepage Journal
    A hundred year language [paulgraham.com]

    Beating the averages [paulgraham.com]

    Both are amazingly good.

  • Re:SmallTalk (Score:5, Informative)

    by One Louder ( 595430 ) on Thursday June 17, 2004 @01:16PM (#9453941)
    The original Smalltalk-80 has a direct descendent in Squeak [squeak.org]. 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.

  • Re:ActionScript?!? (Score:2, Informative)

    by leerpm ( 570963 ) on Thursday June 17, 2004 @01:16PM (#9453942)
    ActionScript is JavaScript/ECMAScript repurposed for the server-side.
  • Autocode (Score:3, Informative)

    by starling ( 26204 ) <strayling20@gmail.com> on Thursday June 17, 2004 @01:18PM (#9453960)
    They also missed out Autocode [computer50.org], which was a little higher level than asembler and still predated FORTRAN.

  • by sakti ( 16411 ) on Thursday June 17, 2004 @01:26PM (#9454059) Homepage
    Looks like they colorized the one found here: http://www.levenez.com/lang/ [levenez.com]
  • Re:Actionscript (Score:3, Informative)

    by rsidd ( 6328 ) on Thursday June 17, 2004 @01:33PM (#9454140)
    ECMAScript is the standardised name for JavaScript. [wikipedia.org]
  • by RealAlaskan ( 576404 ) on Thursday June 17, 2004 @01:34PM (#9454153) Homepage Journal
    For a start, they left out the S programming language [bell-labs.com](started in 1976), for which John Chambers [bell-labs.com] won the ACM Software Systems Award [acm.org]. This, and its Libre dialect R [r-project.org] (thanks to Robert Gentleman and Ross Ihaka at University of Aukland [auckland.ac.nz]), are in daily use by folks who have to write programs to use data.
  • by phliar ( 87116 ) on Thursday June 17, 2004 @01:38PM (#9454208) Homepage
    ...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 [arizona.edu], or its extension Unicon [sourceforge.net]? 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.
  • by wombatmobile ( 623057 ) on Thursday June 17, 2004 @01:38PM (#9454212)

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

    by Monkelectric ( 546685 ) <[moc.cirtceleknom] [ta] [todhsals]> on Thursday June 17, 2004 @01:39PM (#9454216)
    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?

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

    by Anonymous Coward on Thursday June 17, 2004 @01:54PM (#9454441)
    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.
  • Re:Great! (Score:5, Informative)

    by stanmann ( 602645 ) on Thursday June 17, 2004 @01:55PM (#9454469) Journal
    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.
  • Re:Ordering (Score:3, Informative)

    by interiot ( 50685 ) on Thursday June 17, 2004 @02:01PM (#9454549) Homepage
    For what it's worth, here [paperlined.org] is a list of the allowed books [oreilly.com], 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
  • One last option... (Score:1, Informative)

    by Anonymous Coward on Thursday June 17, 2004 @02:02PM (#9454568)
    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.
  • by ornil ( 33732 ) on Thursday June 17, 2004 @02:07PM (#9454642)
    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.
  • Re:Great! (Score:4, Informative)

    by drooling-dog ( 189103 ) on Thursday June 17, 2004 @02:13PM (#9454708)
    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.

  • Re:Where's MUMPS? (Score:3, Informative)

    by bandy ( 99800 ) <andrew.beals+slashdot@gmail.com> on Thursday June 17, 2004 @02:21PM (#9454813) Homepage Journal
    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.
  • Re:Lisp (Score:3, Informative)

    by Anonymous Coward on Thursday June 17, 2004 @02:29PM (#9454917)
    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 [bbn.com] studies [bbn.com] for [bbn.com] example [bbn.com].)

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

  • by lazarius ( 516726 ) on Thursday June 17, 2004 @02:29PM (#9454920) Homepage
    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
  • by rsidd ( 6328 ) on Thursday June 17, 2004 @02:54PM (#9455228)
    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 [microsoft.com] a link.

  • by tverbeek ( 457094 ) on Thursday June 17, 2004 @02:54PM (#9455233) Homepage
    It's a polyglot of only seven languages (COBOL, Pascal, Fortran, C, PostScript, sh, and 8086 assembly), but perhaps you were thinking of this? [nyx.net]
  • RUBY (Score:1, Informative)

    by Anonymous Coward on Thursday June 17, 2004 @02:58PM (#9455273)
    sounds like you want ruby.
    http://www.rubycentral.com/
  • by Jimmy_B ( 129296 ) <jim.jimrandomh@org> on Thursday June 17, 2004 @03:04PM (#9455345) Homepage
    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.
  • Re:Reminds me of (Score:3, Informative)

    by grahamlee ( 522375 ) <(moc.geelmai) (ta) (maharg)> on Thursday June 17, 2004 @03:07PM (#9455382) Homepage Journal

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

  • by RPoet ( 20693 ) on Thursday June 17, 2004 @03:52PM (#9455956) Journal
    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 [nemerle.org] 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.
  • Comment removed (Score:2, Informative)

    by account_deleted ( 4530225 ) on Thursday June 17, 2004 @04:20PM (#9456333)
    Comment removed based on user account deletion
  • Rexx roots wrong (Score:2, Informative)

    by therexxman ( 178314 ) on Thursday June 17, 2004 @04:51PM (#9456648)
    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!!! :-)
  • Another one... (Score:2, Informative)

    by cheesy9999 ( 750203 ) on Thursday June 17, 2004 @04:58PM (#9456743)
    This has been around for awhile: http://www.levenez.com/lang/ [levenez.com]
  • by TwistedSquare ( 650445 ) on Thursday June 17, 2004 @05:23PM (#9456968) Homepage
    Nice to see someone else thinking that occam got missed. Incidentally it is still alive and well, one implementation is KRoC [kent.ac.uk].
  • by ajs ( 35943 ) <{ajs} {at} {ajs.com}> on Thursday June 17, 2004 @05:33PM (#9457054) Homepage Journal
    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.
  • Re:Great! (Score:4, Informative)

    by dont_think_twice ( 731805 ) on Thursday June 17, 2004 @05:34PM (#9457058) Homepage
    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
  • by adug ( 228162 ) on Thursday June 17, 2004 @07:02PM (#9457922) Homepage
    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.
  • Re:ActionScript?!? (Score:3, Informative)

    by mad.frog ( 525085 ) <steven@cr[ ]link.com ['ink' in gap]> on Thursday June 17, 2004 @08:36PM (#9458585)
    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.
  • Re:ActionScript?!? (Score:2, Informative)

    by rush22 ( 772737 ) on Thursday June 17, 2004 @09:29PM (#9458860)
    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.
  • by voodoo1man ( 594237 ) on Thursday June 17, 2004 @11:08PM (#9459477)
    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).
  • Re:Check out Lisp (Score:3, Informative)

    by Sangui5 ( 12317 ) on Friday June 18, 2004 @12:58AM (#9460137)
    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.
  • Re:BASIC, origin of. (Score:2, Informative)

    by rush22 ( 772737 ) on Friday June 18, 2004 @03:52AM (#9460844)
    "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 [about.com]

    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_lan guage#History [wikipedia.org] (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 [apple2history.org]

Living on Earth may be expensive, but it includes an annual free trip around the Sun.

Working...