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

34 of 684 comments (clear)

  1. Delphi from VBasic?? by PixelThis · · Score: 5, Insightful

    Somehow I think they missed the boat on that one. Delphi is Borland's Object Pascal in a GUI driven environment.

    1. Re:Delphi from VBasic?? by LincolnQ · · Score: 4, Insightful

      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.

    2. Re:Delphi from VBasic?? by Anonymous Coward · · Score: 5, Insightful

      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.

    3. Re:Delphi from VBasic?? by SoVeryWrong · · Score: 2, Insightful

      Yea, but Syntax is pretty easy to learn if you already have the development fundamentals. I had a background in VB and was able to figure out and maintain a Delphi application in about 20 minutes. Granted it wasn't incredibly complex, but the syntax was pretty easy to pick up by just looking at some existing code.

    4. Re:Delphi from VBasic?? by heffrey · · Score: 5, Insightful

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

  2. Interesting read by JohnnyComeLately · · Score: 3, Insightful
    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?

  3. Plankalkül? by MuMart · · Score: 4, Insightful
    What about Konrad Zuse's Plankalkül programming language?

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

  4. "And no one will be definitely right" by Gothmolly · · Score: 5, Insightful

    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.

    --
    I want to delete my account but Slashdot doesn't allow it.
  5. O'Reilly's favorites go furthest right by DavidNWelton · · Score: 2, Insightful

    O'Reilly's favorite/bestselling books are the ones with the arrows extended furthest to the right.

  6. Re:VMs will solve this issue by Anonymous Coward · · Score: 1, Insightful

    Perhaps you should take a look at Common Lisp and its macros.

  7. How could they leave off Brainf*** by kingj02 · · Score: 3, Insightful

    How could you not like a language whose syntax is > < + - . , [ ]

    Its also the smallest compiler ever written.

    --
    Ardente veritate incendite tenebras mundi
  8. Re:Starts with 3GLs. by gray+peter · · Score: 3, Insightful

    Maybe a better analogy would be a painter who only has 1 bristle. You can paint the side of a building with 1 bristle, but it would take you a really really long time. That doesn't mean you couldn't do it. You can do anything in assembler if you put your mind to it (and if your mind is good enough ;-)

    --
    May no camel spit in your yogurt soup.
  9. Ordering by interiot · · Score: 2, Insightful

    Why do they have to make it hard 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?

  10. Re:Meta Programming Language by WinterSolstice · · Score: 5, Insightful

    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

    --
    An operating system should be like a light switch... simple, effective, easy to use, and designed for everyone.
  11. As ignorant as ever by ZZeta · · Score: 2, Insightful

    Just before seeing this poster, I was feeling quite confident with my programming skills. O'Reilly just reminded me how ignorant I really am, and how many languages I haven't even heard of. They must have some smart kid working there in the marketing dept., 'couse I'm going right now to buy a few books on some of these mysterious languages... :) Way to go O'Reilly! (Shame about the small font though)

  12. Re:Great! by drooling-dog · · Score: 2, Insightful
    Technically it was the first moderm programming language

    Ummm... Just how is that?

  13. Re:Lisp by tfb · · Score: 4, Insightful
    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.
  14. Re:Starts with 3GLs. by blamanj · · Score: 3, Insightful

    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.

  15. Re:Lisp by Anonymous Coward · · Score: 3, Insightful

    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, like Lisp has. You'd have to have the same basic constructs that Lisp has. Anything else would have to have some limitations, or would have opportunities for optimization.

    Of course, do you really *need* that kind of a language? It's cool that in Lisp you can start with 2-3 constructs and build the entire language out of them, but in general that doesn't really help you write better programs.

    editorial: I think Ruby is the "best" language out there, you can't implement all of Ruby in Ruby, but you can do a heck of a lot more than most other languages. But Ruby is still easy to use in the common case, where Lisp unfortunately isn't. And Ruby comes pre-installed with Mac OS X. :-)

  16. Lisp bad, python good? by alispguru · · Score: 2, Insightful

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

    It's been tried - see Dylan. 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?

    and one standard open source implementation.

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

    To a Lisp hacker, XML is S-expressions in drag.
    1. Re:Lisp bad, python good? by ultrabot · · Score: 2, Insightful

      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 implementations are Open Source. Lisp community, OTOH, seems to think that only commercial implementations are worthwhile.

      Twist it any way you want, one standard open source implementation would guarantee better library and tool support. Then people might even start talking about Lisp standard library, with modern stuff to do things people do with e.g. Python standard library (or perl, or ruby, or...)

      I wish my sentiments are not interpreted as attacks against Lisp - I wouldn't mind Lisp getting more popular, and would probably change my current job for a Lisp one if such was available to me. Just pointing out that Common Lisp is not as great as Lispnicks suggest themselves, and Lisp could be much more alive if things were... well, not the way they are.

      --
      Save your wrists today - switch to Dvorak
    2. Re:Lisp bad, python good? by alispguru · · Score: 2, Insightful

      Lisp community, OTOH, seems to think that only commercial implementations are worthwhile.

      CMUCL and SBCL and OpenMCL and CLISP aren't exactly chopped liver. Steel Bank Common Lisp might be of particular interest to you, since it runs on most modern architectures and pretty much anything Unix-ish, and a Windows port is limping (see here for details). Or maybe CLISP - it compiles to byte codes, like Python, so it runs everywhere, at about Python speed.

      Twist it any way you want, one standard open source implementation would guarantee better library and tool support.

      You're probably right, but the other languages you mention that have one standard implementation also have a benevolent dictator/gatekeeper that "owns" that implementation, and by extension the standard for the language. They can evolve faster than Common Lisp or Scheme, which are defined by published specifications that aren't owned by one person, but that one person becomes a single point of failure for the language. None of them has yet had to survive the loss of their gatekeeper, and it's not clear to me that they can do so. All of them have problems that might have been avoided with a slower, spec-based evolution (rant - all of them do variable scoping wrong).

      Being defined by a reference implementaton also holds languages back - the language is defined by the reference implementaton, warts and all. Take Python speed - CPython is slow compared to Lisps that compile to native code. Python compilers help, but as long as CPython is the reference, everything else (including compilers) will be non-"standard", and Python the language will still be thought of as slow. The Lisp community can't coalesce around one portable implementation like CLISP, because they'd have to give up the high-performance high ground.

      Lisp turns 46 this year. It's behind the curve in recent protocols and libraries, but it's still here, and will likely still be around 46 years from now.
      --

      To a Lisp hacker, XML is S-expressions in drag.
  17. Re:Meta Programming Language by MarkPNeyer · · Score: 2, Insightful

    He was essentially asking for a Turing Complete language, of which all other languages were special cases. The the thign is, you can't say that FORTRAN is a special case of C, or that Scheme is a special case of Haskell. You can, however, say that all of these languages are special cases of GLOOP. The reason I mentioned GLOOP instead of a turing machine is that a turnign machine isn't a lanuages in the "programming language" sense - It's a computing framework. GLOOP is a programming language that can is Turing complete, but adds no extra functionality beyond that, so you could say that C is a special case of GLOOP.

    --

    My blog
  18. Re:Check out Lisp by Anonymous Coward · · Score: 1, Insightful

    This just demonstrates that "old" is not necessarily "obsolete". (not (= 'Old 'Obsolete))

    Presumably *you* were conceived long ago and are still going strong :-).

  19. Re:Great! by Gilk180 · · Score: 3, Insightful

    It was the first programming language for a personal computer.

    Well, maybe the first high-level programming language or the first language interpretter, but I'm willing to bet that the machine didn't run basic natively, so the native language must have been earlier.

  20. Re:Lisp by GCP · · Score: 4, Insightful

    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

    --
    "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  21. Uhmm...The original was better by trainsnpep · · Score: 3, Insightful

    Don't tell me no one here has ever seen this. I can get my own copy there and print it. O'Reilly merely remade it, and gave a small credit to Eric Levenez.

    --
    --<Mike>--
  22. Re:Check out Lisp by ari_j · · Score: 2, Insightful

    Scheme is the dialect of Lisp currently best for such mathematical stuff. Lisp itself is a lot more procedural than most people think. It's a multi-paradigm language, you just have to think outside the box to get it. (It's funny - Lispniks have been thinking outside the box since before most people knew there was even a box to think outside of. :P)

  23. OCCAM not mentioned by ploppy · · Score: 2, Insightful

    OCCAM isn't mentioned (nor CSP from which it was derived). OCCAM was the parallel programming language of choice for the transputer back in the late 80s. While it was a little too PASCAL like it had some nice concepts borrowed from CSP. I'm surprised it didn't get a mention because at one time the transputer was the most advanced and innovative parallel processor around. But there again, both the transputer and OCCAM were British. Enough said.

  24. Re:Did they give credit to the original? by jilles · · Score: 2, Insightful

    Yes they did. Bright red block at the bottom with white letters. They give full credit.

    --

    Jilles
  25. Re:Great! by wintermute1974 · · Score: 2, Insightful
    I wonder if they did that before or after they invented the automobile and the airplane?

    Pardon, Comrade? Obviously, you've forgotten to pick up those old books of yours and toss them down the memory hole. I am sure the Ministry of Love would be very interested to talk to you about your crackpot theories.

    As you know, Big Bill himself created the first programming language. That was long after he created the first automobile and aeroplane. Why, every child know this to be true. Just look at your neighbour, Parsons' boy. His multimedia website in Flash tells him this is so.

    Personally, I am looking forward to the Eleventh Edition of Windows. It's going to be the definitive one. The Eleventh Edition is going to be feature complete: There won't be one computer operation that isn't included in the operating system itself. Oh, what a glorious day this will be. It will be doubleplusgood.

    I would love to stay and talk with you, but I really must hurry to my local Community Centre, or I will be late for the Two Minutes Hate. Oh that Richard Stallman's clever face, his venomous attacks on Microsoft. We must shout him down! We must not surrender!

    Big Bill! B-B! B-B! B-B! B-B! B-B! B-B! B-B! B-B!

  26. Re:Great! by Anonymous Coward · · Score: 1, Insightful
    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.

    It depends what you mean by "develop". If you mean, "ripped off public domain code for a BASIC interpreter" then you are quite correct it is a true statement.

    I always find it ironic that Microsoft were one of the first companies to attach copyright notices to their software and yet, they owe their very existance to the public domain. If we introduce to the conversation, the charade of software-idea patents, we really begin to see how useful this "intellectual property" nonsense is to the software industry -- not at all; it serves only those who wish to make money and incarcerate the user.


    Begone foul fascist programmers. We reject your proprietary code, for we no longer wish to be imprisoned in your capitalist catacombs. We are free men and women who deserve control of our lives and bow to no one but ourselves and our personal intellect.
  27. Re:Lisp by NetSettler · · Score: 3, Insightful
    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 and Part II.

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

    --

    Kent M Pitman
    Philosopher, Technologist, Writer

  28. Notable errors and omissions. by voodoo1man · · Score: 2, Insightful
    O'Reilly's and Levenez's original charts include a number of errors and omissions. Many have already been pointed out by other posters, but I'll nonetheless compile my own list, in the order of what I think is decreasing importance. Guide to the symbols used: $ Error in both charts. * Error in O'Reilly's chart.

    • $ - CLOS is listed as a separate language. The Common Lisp Object System, as it's name implies, is an object-oriented extension to Common Lisp. Why they thought it was a separate programming language is beyond me.
    • $ - No ANS Forth. The ANSI Forth specification was ratified in 1994, and is known as ANSI X3.215-1994.
    • $ - No Lisp dialects between 1.6 and Common Lisp. This is an incredibly glaring omission. There were a number of widely used, divergent dialects of Lisp after 1.6, the chief two being MIT's MACLISP and BBN/Xerox Interlisp, both of which were used well into the 80s and had a major influence on Common Lisp, among other languages. This is not to mention the other dialects of Lisp left out (the principal ones I can think of are Portable Standard Lisp, EU_LISP, Le Lisp, Lisp Machine Lisp).
    • $ - No ISLISP or XLISP. ISLISP became an ISO standard in 1997, and is a subset of Common Lisp with additions from several European Lisp dialects. XLISP, on which AutoLisp is based, became available for PCs in the late 80s, and due to the popularity of AutoCad was for a time the most widely used dialect of Lisp.
    • $ - No StarLogo. StarLogo is a parallel version of Logo which was developed at MIT in the late 90s. It's used in a lot of grade-school computer courses.
    • * - Haskell has an arrow pointing to CLOS. Not only is CLOS it's own language, apparently it is also a purely functional one. Again, where this was pulled out of remains a mystery.
    • $ - No R^3, R^4 Scheme revisions. PHP has a box for every 0.0.x revision. They could have at least acknowledged the major revisions of other languages (and of course Scheme is not the only language this applies to!).
    • $ - No Squeak. Squeak is a derivative of Smalltalk started by Alan Kay and Dan Ingalls (among others) in 1994. Today it is the most popular Open Source Smalltalk.

    There are also a lot of languages that can be included, like Carl Hewitt's PLANNER (MIT's precursor to Prolog) and ACTORS (a purely message-passing object-oriented formalism that predated Smalltalk, and had several implementations and a lot of influence on other object-oriented languages).

    All in all, I think both charts are pretty lame. O'Reilly should have at least solicited public comments before producing such a factually erroneous telling of history. This is altogether more surprising considering that O'Reilly is not a general publisher but instead specializes (in what they claim are) accurate technical manuscripts.

    --

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