Forgot your password?
typodupeerror
Programming IT Technology

The History of Programming Languages 684

Posted by michael
from the in-the-beginning-was-the-command-line dept.
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:
  • Great! (Score:5, Funny)

    by Anonymous Coward on Thursday June 17, 2004 @12:53PM (#9453682)
    Now I need to go buy a 40" monitor to view the whole thing at once...
    • 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.

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

      by danamania (540950) on Thursday June 17, 2004 @01:28PM (#9454076)
      You can view a much shorter timeline of it all, History according to Microsoft. [microsoft.com]

      One of the quotes direct from that little presentation: "Using the Altair 8800, Bill Gates and Paul Allen develop the first programming language, and begin an extraordinary, history-making journey."

      Good to know where it REALLY all started :)
      • Re:Great! (Score:4, Interesting)

        by Mifflesticks (473216) on Thursday June 17, 2004 @01:47PM (#9454321)
        Well, that's what the scrolling text reads. The little blurb next to the picture and "1975" reads:

        "...develop a BASIC computer language for the Altair 8800."

        So at least in one place they were a little more humble....
      • 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:Great! (Score:5, Funny)

          by geoffspear (692508) * on Thursday June 17, 2004 @02:57PM (#9455258) Homepage
          I just invented the world's very first programming langauge myself, actually.

          It's just an abridged version of "world's first programming language only i've heard of."

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

            by Phurd Phlegm (241627) on Thursday June 17, 2004 @03:36PM (#9455760)
            I just invented the world's very first programming langauge myself, actually.

            It's just an abridged version of "world's first programming language only i've heard of."

            I never thought I'd say it, but "first post!"*

            -- * Abridged: meaning "first post where I said 'first post.'"
        • 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
      • Re:Great! (Score:3, Funny)

        by Tony-A (29931)
        Hmmpf, all I got was an Unsafe ActiveX control.
        Let me know when Microsoft actually gets serious about security.

        Now seriously. I am cavalier about security. I run as root (same login Linux or domain admin). I leave my computers up and running and logged in.
        My security is rotten and it's better than Microsoft's?
      • Re:Great! (Score:3, Funny)

        by bobetov (448774)
        Even better:

        "With the creation of Windows 3.0, an easy-to-use and highly functional operating system, millions of people discover the empowering abilities of personal computers."

        I'm just... wow.
  • by th1ckasabr1ck (752151) on Thursday June 17, 2004 @12:55PM (#9453697)
    They forgot Steve++, the crappy C++ rip-off I wrote for an independant study project back in high school.
  • by PixelThis (690303) on Thursday June 17, 2004 @12:57PM (#9453718)
    Somehow I think they missed the boat on that one. Delphi is Borland's Object Pascal in a GUI driven environment.
    • by LincolnQ (648660) on Thursday June 17, 2004 @01:03PM (#9453789)
      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: plop objects onto a form, write code for their events. I moved from VB to Delphi with minimal effort.
      • by heffrey (229704) on Thursday June 17, 2004 @02:28PM (#9454900)
        Well, in that case C# comes from VB too.

        Putting items in categories is notoriously difficult though. It's not as if one language leads to another. Language writers are influenced by all their external stimuli which will no doubt include many other programming languages not too mention beer, pizza and their families. If you accounted for all influences then the number of arrows would increase by orders of magnitude.

        There is a difference between language and IDE though. Delphi is not actually a language, rather it is a product including an IDE and a compiler for the Object Pascal language. And Borland's version of the Object Pascal language is, I believe, based on an Apple version.

        On a language basis, rather than an IDE basis, the heritage is clearly Pascal -> ObjectPascal -> Delphi. No doubt there are extra bits in between the arrows that I don't know about.

        I mean, you can take a basic Pascal program and compile it in Delphi. Pascal is a subset of Delphi in the same way as C is to C++.
    • by Anonymous Coward on Thursday June 17, 2004 @01:09PM (#9453866)
      Somehow I think they missed the boat on that one. Delphi is Borland's Object Pascal in a GUI driven environment.

      It seems to me that the arrows mean "inspired by"/"taking features from". You should have noticed that Delphi has two arrows pointing to its inception: one from VB, and one from Object Pascal. That seems reasonable. I don't think that's intended to mean that Delphi was created by MS or anything like that, just that it got inspiration from VB.
    • by ajs (35943) <ajsNO@SPAMajs.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.
  • by xp (146294) on Thursday June 17, 2004 @12:57PM (#9453724) Homepage Journal
    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 [blogspot.com]
    • by MarkPNeyer (729607) on Thursday June 17, 2004 @12:59PM (#9453741)
      You can find this meta-language you speak of, if you read Godel, Escher, Bach By Douglass Hofstadter. It's called 'GLOOP'.
    • Oh what, you mean like ENGLISH?

      It's a pretty good language, really. Sort of esoteric and the syntax can be inscruitable at times, but you can really get some shit accomplished with it.
    • by Ars-Fartsica (166957) on Thursday June 17, 2004 @01:05PM (#9453814)
      At some point at VM, be it JVM, Parrot, Mono/CLR runtime will become pervasive and become the de facto meta language, with specific developer-level langs simply being syntactic sugar.

      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.

      • by dasmegabyte (267018) <das@OHNOWHATSTHISdasmegabyte.org> on Thursday June 17, 2004 @01:16PM (#9453943) Homepage Journal
        Well, the problem is that the semi-colon is a completely arbitrary choice. And like all arbitrary choices, the only reason to continue using it is tradition. Since most of the people creating new languages are doing so to stir up tradition and do something in a way, a lot of the time the semicolon hits the cutting room floor for purely symbolic, rebellious reasons. The computer science equivalent of growing your hair out or piercing your eyebrow.

        This is how we end up with completely inscruitable languages like Visual Basic. BASIC was designed to not look like a programming language and instead look like an English sentance. When we removed the line numbers, the end of a line signified the end of a statement. Of course, adding object oriented syntax to Basic made it even more apocryphal, and we ended up with the mess we have today. We can't change it, because if we did than older stuff wouldn't work. Besides, if you want to use VB with a better syntax, you can just use C# (which is either C++ without the hassles of memory management, pointers or header files or Java without the hassles of explicit declaration of exception handling, separate Get and Set methods for properties, or cross platform execution).
      • by Tarantolato (760537) on Thursday June 17, 2004 @01:16PM (#9453946) Journal
        At some point at VM, be it JVM, Parrot, Mono/CLR runtime will become pervasive and become the de facto meta language, with specific developer-level langs simply being syntactic sugar.

        More likely, we'll see Stupid Language Wars replaced by Stupid VM wars.

        One thing that has always bothered me is the lack of standards for basic syntax.

        You can have my parentheses when you pry them from my cold, dead hands.

        For example does anyone really lose flexibility if we say statements are delimited by ';'?

        Fuck you.
      • by Jimmy_B (129296) <[gro.hmodnarmij] [ta] [todhsals]> 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.
    • by Anonymous Coward on Thursday June 17, 2004 @01:08PM (#9453853)
      Its called machine code. Anything else is an abstraction (for that architecture--due to different architectures there can never be a true abstraction unless you take it all the way down to the and-or-nor-nand-xor-etc circuitry).

      Its interesting to note that most people don't see history repeating itself with Java and C# (the fourth level of abstraction). The story goes as follows: in the late 60s, almost all systems programming was done in assembler(1st level), just for speed. In fact, no operating system was ever written in anything else than assembler, so there was no portable OS. People scoffed when UNIX was implemented in C (second or third level depending upon who you ask) in the mid 70s because it would be too slow. Of course computers get faster and a portable easy to edit OS took off.

      Its really funny to hear people give the same arguments against Java and C# that are word-for-word the same as what was said about C.
      • by WinterSolstice (223271) on Thursday June 17, 2004 @01:24PM (#9454034)
        Actually, the statement
        "Its really funny to hear people give the same arguments against Java and C# that are word-for-word the same as what was said about C." is so true as to be almost scary. I recently was looking at the huge arguments against C++ (vs C) and just about died laughing.

        To me, it all comes down to two things:
        1) Can I do (x) with (new language)?
        2) Will it take me longer to do (x) with (old language) than it does with (new language)?

        The whole concept of programming can be summed up that way. I have reached the sad state of no longer caring at all about language performance. I have such incredibly tight deadlines to meet now, with so few people, I have to say that programming time is worth dollars while execution time is only worth cents. Especially since about 75% of the work we do is for "one-off" or "disposable" projects. It sucks, but it puts food on the table.

        -WS
      • by Srin Tuar (147269) <zeroday26@yahoo.com> on Thursday June 17, 2004 @01:49PM (#9454349)
        >Its really funny to hear people give the same
        >arguments against Java and C# that are
        >word-for-word the same as what was said about C.

        Not really: if java is going to replace c/c++ the way c/c++ replaced assembly for systems programming, then everyone would already be using lisp.

        If java and the like are going to replace anything, its going to be vb/pascal and friends.

    • Lisp (Score:3, Interesting)

      by ultrabot (200914)
      What we really need is a meta programming language of which all the other programming languages are special cases.

      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 ;-). Common Lisp certainly isn't.
      • Re:Lisp (Score:5, Interesting)

        by Pxtl (151020) on Thursday June 17, 2004 @01:22PM (#9454012) Homepage
        I was disappointed to see Lisp not get much cred on that chart. First language with dynamic typing is worth noting. I've been reading up on Lisp (not coded a line yet) and have suddenly become disappointed in the entire programming world - right here there's a language with a featureset that it has taken other languages decades to catch up to.

        Where is a language with the power of Lisp and the ease of Python? Python has some wonderful features in terms of speed and readability, but it is too tied to its primitives. After reading on Lisp, then going back to coding Python, I was really frustrated that the language wasn't better generalized - that all statements (if, import, etc) are hard coded - what if I want to make a custom block statement (like if or while) or something similar? Can't do that in Python, because you don't really have access to parsed code objects the way you do in Lisp.

        I've looked at the modern Lisp languages (Common Lisp and Scheme) and I can't figure out which ones are worthy of my attention. Scheme seems like it has lost the intelligent simplicity of Python in favour of clumsy "special character" based syntax, while Common Lisp has many detractors that don't complain much of details. Is your complaint about Common Lisp based on all Lisp variants? Or is CL especially bad?

        I know Lisp is not the ideal language - its ugly, illegible, and slower than compiled languages - but the fact is 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 (Python does a little, but ends up feeling cobbled together and inconsistent).
        • ...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 cour

        • Re:Lisp (Score:5, Interesting)

          by ultrabot (200914) on Thursday June 17, 2004 @01:44PM (#9454277)
          Is your complaint about Common Lisp based on all Lisp variants? Or is CL especially bad?

          No, I just don't think that a proper Lisp has been implemented yet - I'm thinking of a language with all of the semantics of Lisp *plus* easily readable syntactic sugar. I'd like to see a standardized lisp that I can write and read as quickly and Python.

          In Python we have a very succesful programming model, in Lisp we have potential for every conceivable programming model. Specializing the Lisp a little bit to optimize for pythonic programming would do a world of good.

          I want do do

          o = SomeClass()

          instead of

          (setq o (make-instance SomeClass) )

          The latter might be semantically more elegant, but boy, it doesn't flow like the python variant.

          As far as non-language-feature issue goes, Lisp does need a better (quantitavely and qualitatively - no "Functional Programming" people but people who can recognize the realities of programming today) community and one standard open source implementation. Availability of commercial implementations just doesn't cut it. And the one open source implementation should run on Windows too (no, Debian doesn't cut it).
          • Re:Lisp (Score:5, Interesting)

            by Pxtl (151020) on Thursday June 17, 2004 @02:01PM (#9454565) Homepage
            Okay, good to see someone has come to the same conclusions I have. Python is a wonderful language, but the problem is that it has grown osmotically - the language itself is good (not great, but good), but the real popularity of it comes from its incredible amount of "batteries included".

            IMHO, a real, true, ultimate pure _language_ (not standard library) needs to be polished up for an opensource successor. Something with the power of Lisp and the legibility of Python. I'm thinking of something very similar to python except that code-based blocks should be handled as custom objects like everything else in Python.

            In Python, the statement

            class foo(bar):
            def __init__(self):
            self.baz = "foo bar baz"

            is using the interpreter to auto-insance a bunch of standard Python objects (a class and a method, which is than in turn wrapped with an instancemethod) based around code objects. I can subclass the interpreter "method" object or create new substitute ones in its place, but if I want to use them in the interpreter, then I have to instance them the normal way, using

            mycustommethodinstance = mycustommethodclass(constructorarguments)

            whereas the main method object gets the nice
            def funcname(args):

            statement. This is the biggest failure of Pythons generalism - its inorexicably tied to its core objects, so that if you are using it like Lisp as a fully custom-made lexicon, you still have to either a) tear the contents out of the engine objects and relocate them into your own objects or b) use stupid constructors like

            myfunc = myfuncclass("myname", "my massivestring of text that is actually the whole code block that this contructor will compile into code but I have to enter it as a string like this its kinda stupid eh?")

            Not very nice. I want to make custom if and class statements, replace the implicit behaviour that typing i=1 creates an int object instead of some other custom object I want it to make. Likewise, I want to use other datatypes otehr than a true python Dictionary object as the local namespace or the global namespace (well, the globals can be any kind of mapping, actually).

            A generalized Python would be my dream language - Python, but where all the core objects and statements (like "if" or "class") were part of the standard library.
            • Re:Lisp (Score:3, Insightful)

              by Anonymous Coward

              A generalized Python would be my dream language - Python, but where all the core objects and statements (like "if" or "class") were part of the standard library.

              If you went that route, you would eventually realize that python-like syntax is unecessarily complicated, so you would simplify it down.. and you would have Lisp.

              I hate to sound like a Lisp weenie, but if you take all these programming ideas and take them "to the logical conclusion", you *have* have a language with a light, uniform syntax, li

          • by alispguru (72689)

            I'd like to see a standardized lisp that I can write and read as quickly and Python.

            It's been tried - see Dylan [double.co.nz]. 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

            Lisp does need a better ... community ...

            Like the one growing here [common-lisp.net]?

            and one standard open source implementation.

            Now I'm really confu

            • Now I'm really confused. Multiple implementations with a common specification hurt Lisp, but Jython and stackless python are not drawbacks for Python?

              CPython is still the "standard" implementation of Python. Stackless is just some patches on CPython, and Jython is of interest mostly to Java community. There is no CPython equivalent for Lisp. Jython basically extends the scope of CPython, it doesn't compete with it. The multitude of Lisp implementations don't really have that excuse.

              Also, all the Python
        • Re:Lisp (Score:4, Insightful)

          by tfb (49770) on Thursday June 17, 2004 @02:06PM (#9454627)
          I know Lisp is not the ideal language - its ugly, illegible, and slower than compiled languages

          Ugly and illegible are matters of opinion - most Lisp people will gladly trade a certain amount of syntactic suger for extensibily. `Slower than compiled languages' is just silly: modern (say, in the last 30 years) Lisp implementations are (a) compiled, and (b) not generally slow.
        • Re:Lisp (Score:3, Informative)

          by Anonymous Coward
          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."

        • Re:Lisp (Score:5, Insightful)

          by GCP (122438) on Thursday June 17, 2004 @03:00PM (#9455295)
          I know Lisp is not the ideal language - its ugly, illegible, and slower than compiled languages

          Wait a minute. I have serious complaints about Lisp, but those are not among them. Let me take those in reverse order:

          SLOWER THAN COMPILED LANGUAGES: No, there are compilers for both Lisp and Scheme that generate VERY fast code. There are interpreters that are as fast as Python that are nice to use during development, then you run it thru a compiler and the speed is on a par with C++, when performing similar operations. Of course a small amount of C++ code will often run much faster than a small amount of Lisp code, but that's because a small amount of Lisp code can say so much more than a small amount of C++ source can say. That shouldn't be counted against Lisp.

          ILLEGIBLE: Not really, in my experience. I know what you mean, though. After a lot of use, it's still not quite as easy to read (for me) as something like Ruby or Python, which were already pretty clear even before I had written a single line of either. But it's nowhere near as hard to read as Perl still sometimes is for me, and I've been coding in Perl (occasionally) for a decade. Even C++, which I've done a lot of over the last decade, still gets pretty darned hard to read sometimes, such as when using templates to call old-style C APIs.

          Lisp is a lot better than that. I've certainly grown to appreciate the way you can build abstractions out of abstractions and the top level is still called the same way as the bottom level. Self similarity at every level of abstraction, so you just have to think about the algorithms and not the syntax.

          Trust me that, with practice, Lisp gets much easier to read, though it never seems to get quite as easy as something like Ruby or Python.

          UGLY -- of course this is related to legibility. Again, I know what you mean, and I agree in some ways. A simple mathematical expression or loop is quite ugly, I think, compared to the same thing in Ruby or Python.

          However, as soon as you leave the simple, built-in stuff and start building your own more complex functionality, you discover that Ruby and Python get uglier and uglier but Lisp still looks the same. As soon as you start trying to express really interesting algorithms (fancy searches, AI stuff, etc.), you'll see the beauty in the simple consistency of the syntax. (Much more true of Scheme than Common Lisp, BTW.)

          So, no, I don't have any serious complaints in that regard. There's no speed problem at all and where it is harder to read, it's a small price to pay for the significant power boost that style of syntax gives you when working with really interesting problems.

          So, what don't I like? The online community of users, for one. The misanthropes that took over comp.lang.lisp are pathetic. I've never seen a techical discussion group that hostile and defensive. Don't even think of asking them questions that might clear up some of your skepticism about Lisp. The fact that you have any doubts makes you unworthy of being treated with anything other than utter hostility.

          They love Common Lisp like a religion, and hate everything, and everyONE else, even natural allies like Scheme. Common Lisp fossilized sometime back in the Reagan Administration and has since lost almost all ability to improve. As a result, the vast majority of former users have abandoned it and those who remain almost have to take a position that there is no further NEED for improvement except in trivial ways (more libraries, more "complete" implementations, etc.) that, if you think about it, are merely restatements of the "nothing needs to be improved" notion.

          And that brings me to what I like least: it seems that the fundamental ideas underlying all forms of Lisp (incl. Scheme) are fascinating, and if redone in a way such as Paul Graham's Arc (www.paulgraham.com) could turn out to be a terrific language. Unfortunately, I don't see it happening. Arc is announcementware. It has shown no signs of life since its first few weeks. Com
        • Re:Lisp (Score:4, Insightful)

          by NetSettler (460623) <kent-slashdot@nhplace.com> on Thursday June 17, 2004 @11:52PM (#9459738) Homepage Journal
          I know Lisp is not the ideal language - its ugly, illegible, and slower than compiled languages

          Just in case you don't know, Lisp is a compiled language and not slow, especially when compiled with appropriate type declarations. Only the very most early dialects (forty or so years ago) were interpreted-only. Some interpreted implementations exist now, but that's a choice of the implementor, not a requirement of the language.

          I disagree with your remarks about ugly and illegible, too, but that's personal taste, I guess. My views on all this are copiously documented in my Slashdot interview, Part I [slashdot.org] and Part II [slashdot.org].

          However, what really disappointed me in this chart was its unscientific and subjective decision about what to include and how to present things.

          Some of the arrows stop mysteriously so far leftward (as if to hint "this language is no longer used). That's apparently a subjective assessment on their part offered with no foundation, and irresponsibly inappropriate in a document intended to fairly describe history. Common Lisp's arrow stops short for reasons I don't understand since it continues in commmercial use today.

          I didn't check the table thoroughtly, but the absence of mention of the fact that Scheme influences Common Lisp seems odd since it's a well-advertised truth.

          The omissions of ISLISP, an ISO standard (ISO/IEC 13816:1997) [dkuug.dk] is also surprising and shows poor researching. The absence of Interlisp, Portable Standard Lisp (PSL), Eulisp, Gnu Emacs-Lisp (in spite of huge distribution world-wide as customization substrate for Emacs), and Xlisp (hugely distributed as part of Autocad) as important dialects is similarly sad.

          O'Reilly sells books and has for a long time requested outright [oreilly.com] that no Lisp authors approach them. I and others have long noted that it has an apparent chip on its shoulder about Lisp, and little surprise they couldn't help exposing that bias in their chart. They want you to think the books they sell define the market. But that's just not so, especially when they voluntarily close their eyes to what's going on around them.

          People should look skeptically at a company that wants a reputation as a "documentation" company yet so easily falls victim to its own commercial decision to close its eyes to this language family's achievements (such as an international standard).

          A quick glance at other parts of the table leave out many other important languages and dialects, with no explanation of their rationale. Just for example: Teco, which strongly influenced Emacs-Lisp. I don't see HyperTalk there, either, even though I thought it influential. And there were many dialects of BASIC and LISP that are too small to mention, yet variations on the Unix shell language like bash are apparently worth mention. I guess that more reflects O'Reilly's sales than an attempt to explain history.

          As a consequence, I have to regard this chart of theirs as commercial eye candy and not a properly scholarly work. I think it's a shame that Slashdot has chosen to give it all this free press. I'm sure that's just what they were hoping. And I'm sure they just don't care about their errors, omissions, and biases. I imagine they just want to sell books, and that all this free press will do just that.

          Me, I buy my books from other sources. And I recommend you do, too.

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

  • by openSoar (89599) on Thursday June 17, 2004 @12:58PM (#9453735)
    The same program, written in 621 of the 2,500+ is here [99-bottles-of-beer.net].
  • Starts with 3GLs. (Score:5, Interesting)

    by Jaywalk (94910) on Thursday June 17, 2004 @12:59PM (#9453744) Homepage
    They start with FORTRAN, so they leave off the whole second generation of computer languages which was Assembler. (First generation was, of course, binary.) I remember my dad -- who was kind of a proto-geek -- talking about how excited they were when they got in a terrific new product. It was so intuitive that it was almost like talking to the computer.

    He was referring to Assembler.

    • Autocode (Score:3, Informative)

      by starling (26204)
      They also missed out Autocode [computer50.org], which was a little higher level than asembler and still predated FORTRAN.

    • 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

      • by blamanj (253811) on Thursday June 17, 2004 @02:15PM (#9454738)
        In general assembly languages *are* more than tools that assign mnemonics (note spelling) to binary patterns, and hence do deserve to be included.

        There are macro assemblers which do preprocessing, which ranges from simple to sophisticated, and some which generate different opcodes for the same mnemonic based on what operands are present. Most assemblers also support the evaluation of expressions.

        In some cases, the very same assembler language can produce binary for different machines, so there is not necessarily a one to one mapping between assembler and processor.
  • Logo! (Score:3, Interesting)

    by Xaroth (67516) on Thursday June 17, 2004 @12:59PM (#9453752) Homepage
    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.
  • by Conspiracy_Of_Doves (236787) on Thursday June 17, 2004 @01:00PM (#9453754)
    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.
  • by Anonymous Coward on Thursday June 17, 2004 @01:00PM (#9453759)
    The Forth, Logo and Smalltalk lines all start in the late Sixties.
  • TMI (Score:5, Interesting)

    by Warlok (89470) <jfincher42@hotmail.com> on Thursday June 17, 2004 @01:01PM (#9453774) Journal
    I think I'd like the chart a little better if it didn't distinguish between each version of each language. Major updates are OK (Fortran --> Fortran 4 --> Fortran 77, B --> C --> C++, Lisp ---> Common Lisp, etc.), but the dot versions just clutter things up.


    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.

  • Interesting read (Score:4, Insightful)

    by JohnnyComeLately (725958) on Thursday June 17, 2004 @01:01PM (#9453776) Homepage Journal
    We've been discussing this in our Software Engineering classes lately. I'm learning UML and part of the whole push to to unify all these different means and methods of software development. If you look back, it's amazing how far and how fast it's all evolved, and then subsequently, how fractured things have become as well. We can flame all day and night about Visual Basic Vs This Language or that. And no one will be definitively right. I liken it to my toolbox in the garage. I have hundreds of tools that are great in their own right. However, there's a couple dozen I use regularly.

    So which couple dozen will we continue to use?

    • by Gothmolly (148874) on Thursday June 17, 2004 @01:04PM (#9453808)
      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.
  • by GillBates0 (664202) on Thursday June 17, 2004 @01:03PM (#9453794) Homepage Journal
    Here's a WhiteSpace [dur.ac.uk] script that prints the ASCII representation:


    Enjoy!
    /ob

  • by YetAnotherName (168064) on Thursday June 17, 2004 @01:04PM (#9453797) Homepage
    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*
  • Plankalkül? (Score:4, Insightful)

    by MuMart (537836) on Thursday June 17, 2004 @01:04PM (#9453803) Homepage
    What about Konrad Zuse's Plankalkül [epemag.com] programming language?

    There is another programming language family tree on that page aswell. This was mentioned in a previous story.

  • Check out Lisp (Score:5, Interesting)

    by Rhesus Piece (764852) on Thursday June 17, 2004 @01:07PM (#9453840)
    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.
    • Re:Check out Lisp (Score:5, Interesting)

      by rsidd (6328) on Thursday June 17, 2004 @01:29PM (#9454097)
      Lisp was ahead of its time. It did things in the 1970s that C-family languages still can't do, like exception handling: in fact, it did some things that I believe no other language can do even today (at least, without very dirty hacks), such as the macro stuff and the ability of a lisp program to rewrite itself on the fly. But it required powerful hardware. By the time general-purpose hardware caught up with lisp, Unix and C had taken over everywhere.

      From the classic essay by Richard Gabriel, Worse is better [jwz.org]: "Unix and C are the ultimate computer viruses." (Follow the link to see why he's saying this.)

    • Re:Check out Lisp (Score:3, Interesting)

      by ari_j (90255)
      I agree on Lisp. I have been tinkering with it for years but it just started to "click" when I read
      • On Lisp

      a few months ago. You can get a copy in PDF format online for free, and it's a great book to help you start thinking in Lisp.

      I've been through a lot of languages, and I've found some favorites, but Lisp is the only one that I can't directly fault the language for anything (C++ is a close second). I haven't found anything in any other language that Common Lisp doesn't have, and a lot of things ar

  • by rocjoe71 (545053) on Thursday June 17, 2004 @01:10PM (#9453873) Homepage
    For 50 years, computer programmers have been writing code.

    For 49.5 years, computer programmers have been saying "but it worked on *my* computer"!

  • by 3770 (560838) on Thursday June 17, 2004 @01:13PM (#9453911) Homepage
    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.
  • Circular... (Score:5, Funny)

    by Unnngh! (731758) on Thursday June 17, 2004 @01:14PM (#9453919)
    There's a lot of crossover between the languages, and a lot of hybrid influences. In fact, some of these seem to play back into each other. I predict that in another 50 years, the chart will have completed its loop and there will be only one language:

    Fortran 2060!

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

  • by DavidNWelton (142216) on Thursday June 17, 2004 @01:15PM (#9453937) Homepage
    O'Reilly's favorite/bestselling books are the ones with the arrows extended furthest to the right.
  • by kingj02 (698534) on Thursday June 17, 2004 @01:17PM (#9453955) Homepage
    How could you not like a language [muppetlabs.com] whose syntax is > < + - . , [ ]

    Its also the smallest compiler ever written.
  • Ordering (Score:3, Insightful)

    by interiot (50685) on Thursday June 17, 2004 @01:22PM (#9454018) Homepage
    Why do they have to make it hard [oreilly.com] 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?
    • Well, duh! (Score:3, Interesting)

      by V. Mole (9567)

      Because they want you to by more books. They are not in the poster business, they are in the book business.

    • Re:Ordering (Score:3, Informative)

      by interiot (50685)
      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
  • 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]
  • by ArmenTanzarian (210418) on Thursday June 17, 2004 @01:28PM (#9454084) Homepage Journal
    or after a point does this just look like the history of when O'Reilly put out books?
  • 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 Sebastopol (189276) on Thursday June 17, 2004 @01:48PM (#9454331) Homepage
    Didn't Ada Lovelace write "code" for Babbages machine in 1899? I thought she invented the subroutine?

  • by gurps_npc (621217) on Thursday June 17, 2004 @01:51PM (#9454404) Homepage
    They should tree it out, showing how C+ came from C, etc, instead of just showing the languages "appearing".
  • by KevinDumpsCore (127671) on Thursday June 17, 2004 @02:01PM (#9454563) Homepage

    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:

    • JCL
    • Music V (including Csound)
    • pd
    • RPG
    • SQL (including PL/SQL)
    • SuperCollider
    • troff (chem/grap/groff/pic/tbl/et al.)
    • Xbase (dBASE/Clipper/FoxPro/et al.)
    • XSLT

    BTW, you can download a more printer-friendly version here: Eric Levenez's Computer Languages History [levenez.com]

    Also, a German version is available here: German PDF [oreilly.de]

"No, no, I don't mind being called the smartest man in the world. I just wish it wasn't this one." -- Adrian Veidt/Ozymandias, WATCHMEN

Working...