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

141 of 684 comments (clear)

  1. Great! by Anonymous Coward · · Score: 5, Funny

    Now I need to go buy a 40" monitor to view the whole thing at once...

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

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

      --
      ===== Murphy's Law is recursive. =====
    2. Re:Great! by danamania · · Score: 5, Funny

      You can view a much shorter timeline of it all, History according to Microsoft.

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

    3. Re:Great! by Mifflesticks · · Score: 4, Interesting

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

    4. Re:Great! by stanmann · · Score: 5, Informative
      And of course in a very small way they are correct, since that is an abridged version of the statement
      develop the first commercial programming language for a personal microcomputer.
      Which is a true statement.
      --
      Food not Bombs is a nice platitude but it breaks down when you notice that the Bombees are usually well fed
    5. Re:Great! by Tony-A · · Score: 2, Funny

      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?

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

      Ummm... Just how is that?

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

      That's still a far cry from the first programming language, which is what the quote actually says. Some of us were happily banging away in languages like Fortran and PL/1 well before then.

      Still, their place in history can't be denied. They were at the forefront of an industry in its infancy and did perhaps more than anyone to make it a great one.

    8. Re:Great! by wjwlsn · · Score: 3, Funny

      Wow, that's the first time on Slashdot I've ever seen someone use the words "Fortran" and "happily" in the same sentence!

      --
      Getting tired of Slashdot... moving to Usenet comp.misc for a while.
    9. Re:Great! by bobetov · · Score: 2, Funny

      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.

      --
      Looking for a Rails developer in Chapel Hill?
    10. 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.

    11. Re:Great! by geoffspear · · Score: 4, Funny
      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."

      --
      Don't blame me; I'm never given mod points.
    12. Re:Great! by John+Courtland · · Score: 2, Funny

      Heh, I still haven't seen "COBOL" and "happily" in the same sentence. I think that when I see that, I will have seen everything.

      --
      Slashdot is proof that Sturgeon's Law applies to mankind.
    13. Re:Great! by WinDoze · · Score: 2, Funny

      I happily use my Fortran 77 reference as a doorstop.

      See, you CAN use those two words in the same sentence!

    14. Re:Great! by Phurd+Phlegm · · Score: 4, Funny
      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.'"
    15. Re:Great! by elmegil · · Score: 2, Funny
      I happily only had to program in COBOL for about 6 months in 1988.

      See, that wasn't hard.

      --
      7 November 2006: The day Americans realized corruption and incompetence weren't addressing 11 September 2001
    16. Re:Great! by squiggleslash · · Score: 2, Informative
      Technically it was the first moderm programming language much like .NET is the new one for this century so I don't think you can blame them for condensing a comment like that.
      It was a version of BASIC, and BASIC dates back to the 1960s. It wasn't even a spectacular version of BASIC.

      And the quote isn't "the first modern programming language", it's just "the first programming language". So even if your apologism were correct, it would be irrelevent.

      About the only thing I can think of is that the writer might have meant to write "Using the Altair 8800, Bill Gates and Paul Allen wrote the first programming language for that historic platform." Or even "Using the Altair 8800, Bill Gates and Paul Allen wrote their first programming language."

      --
      You are not alone. This is not normal. None of this is normal.
    17. Re:Great! by dont_think_twice · · Score: 3, Informative

      And of course in a very small way they are correct, since that is an abridged version of the statement ...

      Abridged means shortened without changing the meaning. Clearly, inventing the first programming language is different than inventing the first commercial programming language for a personal microcomputer. So the statement is wrong, and in no way, even very small, is it correct.

      Of course, Gates and Allen did not invent BASIC either, so to even claim that they " develop[ed] the first commercial programming language for a personal microcomputer." is a stretch

    18. 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!

  2. Wait a minute! by th1ckasabr1ck · · Score: 5, Funny

    They forgot Steve++, the crappy C++ rip-off I wrote for an independant study project back in high school.

    1. Re:Wait a minute! by Anonymous Coward · · Score: 2, Funny
      They forgot Steve++...

      OH you mean AppleScript? it's there...

  3. 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 PixelThis · · Score: 2, Interesting

      Can't speak to that, I only used VB once. I'm a bit surprised though that you could move from VB to Delphi without having some background in pascal... basic and pascal weren't all that syntactically similar.

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

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

    5. Re:Delphi from VBasic?? by lvdrproject · · Score: 4, Interesting

      Coincidentally, the guy who (for the most part) made Delphi actually left Borland and went to Microsoft, and he's now the lead architect of... C#. :o

    6. Re:Delphi from VBasic?? by I_Love_Pocky! · · Score: 5, Funny

      Clearly this must mean that you had not been using VB for very long. It is a well documented fact that the longer you use VB the less intelligent you become. I know the one time I was forced to use it I could feel my mind becoming numb.

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

    8. Re:Delphi from VBasic?? by parksie · · Score: 2, Interesting

      C is not a subset of C++, for example the following is valid C code but not C++, if C were a subset, this would be valid C++ also:

      char *x = malloc(10);

      (malloc returns void*, C++ does not allow automatic pointer promotion).

  4. Meta Programming Language by xp · · Score: 3, Funny

    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

    1. Re:Meta Programming Language by MarkPNeyer · · Score: 5, Interesting

      You can find this meta-language you speak of, if you read Godel, Escher, Bach By Douglass Hofstadter. It's called 'GLOOP'.

      --

      My blog
    2. Re:Meta Programming Language by dasmegabyte · · Score: 5, Funny

      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.

      --
      Hey freaks: now you're ju
    3. Re:Meta Programming Language by Anonymous Coward · · Score: 5, Interesting

      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.

    4. 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.
    5. Re:Meta Programming Language by Srin+Tuar · · Score: 5, Interesting

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

    6. 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
  5. Link is a 39x17 PDF by The+Angry+Mick · · Score: 5, Informative

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

    --

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

  6. A program written in many of them by openSoar · · Score: 5, Interesting

    The same program, written in 621 of the 2,500+ is here.

    1. Re:A program written in many of them by jpetts · · Score: 4, Interesting

      I remember once seeing a single file which was a valid program in a large (~20?) number of languages, including FORTRAN, PostScript and others, due to quirks of commenting, column requirements, etc. Unfortunately I lost track of it sometime ago. Does anybody else remember this? Even better, does anybody have a pointer to it?

      --
      Call me old fashioned, but I like a dump to be as memorable as it is devastating - Bender
    2. Re:A program written in many of them by nkh · · Score: 2, Interesting

      Writing a brainfuck interpreter is a good exercise that you can do in a very short time.

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

      It's a polyglot of only seven languages (COBOL, Pascal, Fortran, C, PostScript, sh, and 8086 assembly), but perhaps you were thinking of this?

      --
      http://alternatives.rzero.com/
  7. Starts with 3GLs. by Jaywalk · · Score: 5, Interesting
    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.

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

      Assembley language is simply assigning pneumonics to those binary patterns instead of binary numbers, so instead of writing "10010000" for "No Operation" (the only one I recall off hand) you write "NOP". Assemblers are relatively trivial to write, and the only other function they perform is error checking and binding variables to addresses.

      Now it is true the machine code and assembley are languages in the technical sense (they can be used to express algorithms and they are turing complete), they are useless as languages except for people writing OS's and code that needs to go as fast as possible, because by definition assembley and machine code are tied to the architecture of the specific processor/system design you have chosen. Each processor speaks its own variant of these languages although each processor family is very similiar (usually every generation of processors gets a few new instructions/capabilities added, and the timing for them varies wildly). Long story short, there is a machine code/assembley code language for EVERY type of processor out there, and they are functional languages, not expressive languages, and they are not meant to work on any different computers. It would be like if you knew a human language that you could only use to talk to people born on the same day you were, not very useful huh?

      --

      Religion is a gateway psychosis. -- Dave Foley

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

  8. Logo! by Xaroth · · Score: 2, Interesting

    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.

  9. From "The Tao of Programming" by Conspiracy_Of_Doves · · Score: 5, Funny

    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.

    1. Re:From "The Tao of Programming" by ElderKorean · · Score: 2, Funny

      While that might be correct, I much prefer the acronym that we found while at uni learning COBOL.

      C*nt Of a Bloody hOrrible Language.

  10. Do we blame the acid? by Anonymous Coward · · Score: 5, Funny

    The Forth, Logo and Smalltalk lines all start in the late Sixties.

    1. Re:Do we blame the acid? by drinkypoo · · Score: 4, Funny

      There are two major products that come out of Berkeley: LSD and [Unix] BSD. We don't believe this to be a coincidence.
      --Jeremy S. Anderson

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  11. TMI by Warlok · · Score: 4, Interesting
    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.

    --
    ...and you run and you run and you can't stop what's been done...
  12. 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?

  13. Incase of Slashdotting... by GillBates0 · · Score: 5, Funny
    Here's a WhiteSpace script that prints the ASCII representation:


    Enjoy!
    /ob

    --
    An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
  14. ActionScript?!? by YetAnotherName · · Score: 5, Funny

    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*

    1. Re:ActionScript?!? by Speare · · Score: 5, Funny

      And if my manager gets ahold of this, I'll end up having to program in it by the month's end!

      Don't worry. He'll hand it to Human Resources, and ask that they be on the lookout for candidates with six years of ActionScript 2.0 experience.

      And then you'll lose your job to some twit who claims seven years experience in ActionScript 1.0, 2.0 *and* 3.0.

      --
      [ .sig file not found ]
    2. Re:ActionScript?!? by interiot · · Score: 2, Funny

      Scott Adams, is that you?

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

      No, ActionScript is essentially ECMAScript, aka JavaScript.

      ActionScript 1.x was the language for Flash Player 5 and 6, and corresponds to ECMAScript 3 / JavaScript 1.x, IIRC.

      ActionScript 2.x was introduced for FlashPlayer 7 and mirrors ECMAScript 4, which is actually quite a nice language, IMHO.

      ActionScript isn't 100% complete, as it omits or changes a few minor things (e.g., eval() isn't implemented in any useful way), but really, it's just trivial stuff.

      I think there's some server-side version of ActionScript, but almost all the usage I'm aware of is for programming Flash movies.

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

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

      ??? No it isn't, it is a Flash programming language. It is basically the same language as JavaScript, but obviously implemented differently, and compiled (afaik), not interpreted.

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

  16. "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.
    1. Re:"And no one will be definitely right" by nate+nice · · Score: 3, Interesting

      Yeah, I actually found asm to be easier in many respects because there is so little abstraction and I can see everything piece of loogic in front of me. Obviously it is not easier to write a modest sized program in asm but reading code in assembly should be something any Computer Science graduate should be able to do rather easily. It's not too much to know what it means to load and store a word from a memory location to a particular register and store it again using *gasp* hex.

      Not to mention a fair understanding of algorithms, data structires and computation theroy not because you will remember the exact things you learned a year out of school but so you know they exist, why they exist and to prevent you from coming up with crazy ideas that are not computationaly feasable. I would love to see how many programs use a bubble sort to sort a large set of data, ya know.

      As for high level languages lowering the bar, it's marketing telling people these things that are simply not true. Marketers will tell clients "this language, anyone can write in it..". It's not that anyone can write in it, sure anyone can get a book and program some codes, but will they understad the consequence of what they are doing? It's hard for people that haven't at least had a math background or engineering (which includes much math) to really understand what they are doing unless they have done a bunch of research themselves, been trained by someone else over a period of time or gone to school for CS.

      On another rant, I really hate how the study of Computer Science has been basterdized by vocational programs and get rich quick schemes (tech skills "universities" or "schools".."start your new carrer in IT in 3 months!") such that most people think they teach you how to fix computers, install software, how to program a bit and how to become an "IT Professional" who makes sure all the computers are networked in the office. When I try and explain my fascination of algorithms, languages and computational theroy (Turing-Church Thesis) ,among other topics, and how computer science is really a subset of math that can be directly applied to modern silicon computers as well as computers being a great frontier for creating systems that can be observed to be algorithmically Turing computable, I am met with a blank face and then asked if I know why their computer crashes all the time. In short, observing the world for computation and applying that to machines that can compute quickly. Such a misunderstood study.

      --
      "If you are a dreamer, a wisher, a liar, A hope-er, a pray-er, a magic bean buyer ..."
  17. VMs will solve this issue by Ars-Fartsica · · Score: 4, Interesting
    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.

    1. Re:VMs will solve this issue by dasmegabyte · · Score: 3, Interesting

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

      --
      Hey freaks: now you're ju
    2. Re:VMs will solve this issue by Tarantolato · · Score: 4, Funny

      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.

    3. Re:VMs will solve this issue by Anonymous Coward · · Score: 2, Interesting

      Thats why VB has the classification as a "Bondange and Discipline Language" like Pascal had before it. VB and C++ are of the same level of abstraction where they allow data and functions to be abstracted into classes, which is the abstraction of a structured language. Of course the structured language abstracts the implementation of the data and structures from assembly language. Assembly language is an abstraction of machine code in that it uses symbolic notation (syntax, but not a specific syntax) and macros to abstract 1's and 0's. And of course machine code is just the abstraction of voltages in various field effect transistors in the microprocessor (which is an abstraction of quantum theory for the operation of the transistors which cannot be further abstracted unless you consider math the abstraction of quantum theory).

    4. Re:VMs will solve this issue by dasmegabyte · · Score: 2, Funny

      It would look like non-obfuscated Perl code.

      --
      Hey freaks: now you're ju
    5. Re:VMs will solve this issue by lazarius · · Score: 2, Informative

      he's talking about the following type: $i++ if ($i > 0); which I like - I normally prefer reading it that way than if ($i > 0) { $i ++; } which would be the "standard" way of writing it. Laz

      --
      Beware the JabberOrk.
    6. Re:VMs will solve this issue by Jimmy_B · · Score: 3, Informative
      One thing that has always bothered me is the lack of standards for basic syntax. Why not just have a standard for basic operators? For example does anyone really lose flexibility if we say statements are delimited by ';'? Or a standard syntax for if-then-else? e.g. perl's syntax is a pointless departure that adds no value.
      You've obviously never tried writing a language grammar. Give every language the same syntax and you have... a bunch of dialects of the same language. Standardize a few control structures and many languages won't be able to adopt your standard because it introduces conflicts or (even worse) keywords.
  18. Check out Lisp by Rhesus+Piece · · Score: 5, Interesting

    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.

    1. Re:Check out Lisp by rsidd · · Score: 4, Interesting
      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: "Unix and C are the ultimate computer viruses." (Follow the link to see why he's saying this.)

    2. Re:Check out Lisp by ari_j · · Score: 2, Interesting
      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 are really easy to do in Lisp compared to doing them in other languages.

      For example, years ago I started a brand-new cutting-edge object-oriented MUSE-like server in C++. Last month, I decided to try in Lisp. In 1 week of coding at most 2 hours a day, I was about twice as far along as I had gotten in months with C++. I couldn't do this in Ruby, my favorite scripting language, because of the lack of real multiple inheritance, and I couldn't do it in C#, my favorite bytecode-compiled C++ ripoff, for the same reason.

      Give Common Lisp a real, honest try. You'll be surprised.
    3. Re:Check out Lisp by ari_j · · Score: 2, Interesting

      You may want to check comp.lang.lisp for copious counterexamples to your assertion that "Lisp is forever slated for obscurity and college kids who think they've found 'the next big thing'".

      Saying Lisp is mathematical but not practical is the same as saying Linux is powerful but not useful. You just haven't learned how to use it, yet.

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

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

      Unfortunately, Lisp is predated by FORTRAN.

      "I don't know what language engineers will be using in 25 years, but they will call it FORTRAN".

      I mean, a modern FORTRAN has all sorts of fancy features such as recursion and heap-based allocation. Today's FORTRAN programmers have an unprecedented level of abstraction available to them in this dynamic, high-level language.

      Plus, it's reeaallyy fast.

  19. Re:I don't see Ruby on there by pizza_milkshake · · Score: 3, Interesting
    i do. however, it would have been better if they grouped languages vertically by their relationship to one another... it looks like this has been done for some languages but not all... we'd see smaller vertical lines... for example, Rexx is at the top, but is linked to and links to 3 languages in the middle. it would make more sense, therefore, to have Rexx in the middle (or the others closer to the top)

    cool programming challenge: figure out the optimal vertical order for the languages so as to minimize the length of relationship indicators

  20. HyperTalk? by adavies42 · · Score: 2, Interesting

    Did anyone spot HyperTalk on there? If nothing else, it should be there as the ancestor or influence of AppleScript.

    --
    Media that can be recorded and distributed can be recorded and distributed.
    -kfg
  21. A half centry of coding! by rocjoe71 · · Score: 5, Funny
    For 50 years, computer programmers have been writing code.

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

    --
    Height: 38U, Weight: 0 Newtons, Eyes: #0000FF, OS: Gray Matter 1.0 (Alpha)
  22. Lisp by ultrabot · · Score: 2, Interesting

    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.

    --
    Save your wrists today - switch to Dvorak
    1. Re:Lisp by Pxtl · · Score: 5, Interesting

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

    2. Re:Lisp by ultrabot · · Score: 5, Interesting

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

      --
      Save your wrists today - switch to Dvorak
    3. Re:Lisp by Pxtl · · Score: 4, Interesting

      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.

    4. 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.
    5. 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. :-)

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

      As for the peculiar syntax, you get used to it rather quickly. Just like with other languages, there are editor tools to help you be productive "in spite of the parenthesis."

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

    9. Re:Lisp by GCP · · Score: 2, Funny

      Ah, a comp.lang.lisper wants to personally demonstrate why that group is incapable of forming the core of a thriving community.

      --
      "Those who have never entered upon scientific pursuits know not a tithe of the poetry by which they are surrounded."
  23. Functional programming languages dying? F# XSLT? by 3770 · · Score: 5, Interesting

    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.

    --
    The Internet is full. Go Away!!!
  24. Where's INTERCAL? by Anonymous Coward · · Score: 2, Funny

    The most important programming language of the 20th century seems to be missing from this diagram. Those wankers at O'Reilly don't know anything! Everything that I program here at work over the past seven years has been in Intercal.
    I'm guessing it would be an offshoot of BASIC.

    TDz.

  25. Circular... by Unnngh! · · Score: 4, Funny
    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!

  26. Re:Reminds me of by WarriorPoet42 · · Score: 4, Funny

    RTA:

    FORTRAN I begot ALGOL 58 begot ALGOL 60 begot CPL begot BCPL begot B begot C begot C++

    And it was good.

  27. Related by arvindn · · Score: 4, Informative
  28. 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.

  29. Re:SmallTalk by One+Louder · · Score: 5, Informative
    The original Smalltalk-80 has a direct descendent in Squeak. The original Smalltalk guys, including Alan Kay and Dan Ingalls, still work on it.

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

  30. 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
  31. Autocode by starling · · Score: 2, Informative

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

  32. Re:Crappy fonts by Trigun · · Score: 3, Funny

    The font is too bold and too small for the size of the graphic.

    If only they would make it poster sized and ready for print!

  33. 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?

    1. Re:Ordering by interiot · · Score: 2, Informative
      For what it's worth, here is a list of the allowed books, sorted by price. The top couple are listed here, so I guess the poster costs at a minimum $12.
      • $5.95 Digital Media Collection (PDF)

      • $5.95 Java vs .NET Security (PDF)
        $5.95 PHP Security Collection (PDF)
        $5.95 Web Services Collection (PDF)
        $7.95 Smileys
        $8.95 Oracle PL/SQL Built-ins Pocket Reference
  34. Did they give credit to the original? by sakti · · Score: 3, Informative

    Looks like they colorized the one found here: http://www.levenez.com/lang/

    --
    "It is better to die on one's feet than to live on one's knees." - Albert Camus
    1. 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
  35. Is it just me... by ArmenTanzarian · · Score: 3, Funny

    or after a point does this just look like the history of when O'Reilly put out books?

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

  37. Re:Actionscript by rsidd · · Score: 2, Informative
  38. They left out a couple by RealAlaskan · · Score: 2, Informative

    For a start, they left out the S programming language (started in 1976), for which John Chambers won the ACM Software Systems Award. This, and its Libre dialect R (thanks to Robert Gentleman and Ross Ihaka at University of Aukland), are in daily use by folks who have to write programs to use data.

  39. Re:Wait a minute! (What about Atlas Autocode?) by waterbear · · Score: 2, Interesting

    They also forgot Atlas Autocode (the first programming language I was exposed to, back in 1965).

    -wb-

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

    My friends and I still, to this day, argue about which came first: Pascal or C. Every single one of my friends insist that C came first. I maintain that Pascal came first, but by a small margin. I had my years wrong, thinking it was 68 that Pascal (1970) came out and 69 that C (1971) came out, but I was still right about order of generation.

    I still don't understand why people have such a burning hatred for Pascal. Is it because they were forced to learn it in school? It's a very complete language and has nice structure. It can be extremely powerful if used correctly and defines a large chunk of how the modern programming languages operate, just as Algol and Fortran have.

    I should break out my installation CD and convert some of my recent programs to Delphi, just for kicks. Man, I miss Borland.

  42. Éric Lévénez did this by wombatmobile · · Score: 2, Informative

    Éric Lévénez did this already.

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

  43. Well, duh! by V.+Mole · · Score: 2, Interesting

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

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

    Lahey has a Fortan for .NET Compiler

    I think this is what you meant by F#, right? Fortrant.NET wasn't written by microsoft, they just used the specs to write to IL (or so I think).

    --
    If you blog it...
  45. only 50 years? Ada Lovelace? by Sebastopol · · Score: 2, Interesting

    Didn't Ada Lovelace write "code" for Babbages machine in 1899? I thought she invented the subroutine?

    --
    https://www.accountkiller.com/removal-requested
    1. Re:only 50 years? Ada Lovelace? by Mad+Bad+Rabbit · · Score: 2, Interesting

      Earlier than that: she translated an article on the Analytical Engine (written by L. F. Menebrea) with several added notes of her own, including a sample program to compute Bernoulli numbers. This was published in the October 1843 issue of Scientific Memoirs.

      See http://psychclassics.yorku.ca/Lovelace/lovelace.ht m#G

      --
      >;k
  46. They should tree it out. by gurps_npc · · Score: 2, Interesting

    They should tree it out, showing how C+ came from C, etc, instead of just showing the languages "appearing".

    --
    excitingthingstodo.blogspot.com
  47. What do they mean by programming language? by KevinDumpsCore · · Score: 4, Interesting

    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

    Also, a German version is available here: German PDF

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

    The only date they list for Ocaml is 97 which is presumably when it was created. The latest major version of Ocaml is from 2000, and the latest minor update is from 2003.

    I bet that's not the only example. They list Java 1.4.1_2002, but don't list minor releases of more obscure languages.

  49. 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.
  50. Re:Where's MUMPS? by bandy · · Score: 2, Informative

    MUMPS is in the top quarter of the chart in dark purple. ISO M ["M ISO" on the chart] pops up at '99. Frankly, I'm surprised it's lasted this long.

    --
    "You might as well get your son a ticket to hell as give him a five string banjo." -unknown minister
  51. I actually think it makes sense. by Ayanami+Rei · · Score: 2, Interesting

    The use of ',' and ';'. Generally, you use ',' to indicate a list. Therefore it makes perfect sense it is used to create parameter lists, and when used as an operator, "returns" the expression to the right.
    The semicolon is often used at the end of a clause or list, therefore it does not defer to the right and thus is a suitable indicator for a logical break.
    I would think language programmers at some point flirted with the idea of using the period for an end-of-statement marker, but perhaps because it is also used as a decimal point in the ASCII character set, they might have been worried about determining whether a trailing decimal point after a numeric expression indicated end-of-statement or a decimal point missing the rest of it's significand.

    --
    THIS THING CAN TURN ON A DIME, MACROSSZERO STYLE ALSO FUCK BETA, ~NYORON
  52. Re:No love? by Usquebaugh · · Score: 2, Funny

    You sir are sick. Beloved RPG, an oxymoron of the highest order.

    It looks like assembler but works like COBOL. The red headed step child of programming languages.

    With each subsequent release it becomes easier and harder at the same time. Dysfunctional personified.

    I use it on a daily basis and not once have I found anything to like about it.

    And yet...there's something so right about being so wrong. It's survived for decades on a single platform. It does the job. It's easy to learn. It pays the bills.

    Now if only some fool would relase an AS/400 - ISereis - I5 emulator my world would be complete.

  53. Re:Functional programming languages dying? F# XSLT by rsidd · · Score: 2, Informative
    Lahey has a Fortan for .NET Compiler

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

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

  54. Re:Reminds me of by grahamlee · · Score: 2, Informative

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

  55. 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>--
  56. VisualBasic from Pascal by solprovider · · Score: 2, Interesting

    Delphi from VBasic?

    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


    This is backwards. VB and Delphi both came from Pascal, although Delphi was an improvement and VB was a translation.

    In the late 80s, Pascal was the language being taught at most colleges, although C was starting to gain some marketshare. Microsoft needed to replace BASIC with a functional language. They took Pascal, changed the keywords to the ones from BASIC, added line numbers, and called it VisualBasic. This had the effect of killing the market for Pascal programmers. The good ones upgraded to Delphi; the rest moved to MS VB.

    VB 1.0 had much more in common with Pascal than it did with BASIC. "Pascal format function calls" are still used by VB, in contrast to "C format function calls". Pascal and VB have "procedures" (or "subroutines") which allow the values of parameters to be overwritten in calling routine. C requires that one and only one value can be returned, which must be explicitly assigned in the calling routine (although fun with pointers can cause many other effects.) BASIC did not have procedures, and subroutines overwrote the global variables, because BASIC was also missing local variables.

    --
    I spend my life entertaining my brain.
    1. Re:VisualBasic from Pascal by solprovider · · Score: 2, Interesting

      (Responding to a flame that was just modded Interesting.)

      I did not mention QuickBasic because it is not on the chart, but most of my previous post really applied to QuickBasic since it was not called VB until it moved to Windows.

      I did not state that QuickBasic or VB "required" line numbers. I stated that MS added the ability to use line numbers as part of the transition from Pascal to QuickBasic.

      When I first encountered QuickBasic, I already knew BASIC, Pascal, and C. I could replace the keywords in my Pascal programs and then do minor debugging to have functional QuickBasic programs. The API for VB has grown since then, but it still looks like Pascal with different keywords.

      It was a smart move for MS. Most college grads were learning Pascal, and the transition to developing in the MS-proprietary language was easy since few of the rules were different.

      ---
      Today I work with Java and LotusScript with Domino because it is allows much faster business application development than any other platform. LotusScript was based on VB, and still looks similar: same keywords, different API, and it has the List variable type. I also use Java for applets, servlets, and server applications; and one of my Java projects will require a GUI-based client, although I have not written it yet. (I prefer Java over C/C++ because the native memory management saves development and QA time.) I have never developed with Delphi, although several friends are good with it, and their code looks like super-charged Pascal.

      ---
      Fun fact: One of my IBM redbooks states that VisualBasic is a trademark of IBM. I think it was a misprint.

      ---
      BTW, there is only one 'h' in "half-wit".

      --
      I spend my life entertaining my brain.
    2. Re:VisualBasic from Pascal by TheRealMindChild · · Score: 3, Funny

      I did not state that QuickBasic or VB "required" line numbers. I stated that MS added the ability to use line numbers as part of the transition from Pascal to QuickBasic.

      BZZZZZZZZZZZZT. Wrong. Now take 3 seconds out of your life... wouldn't you think... LOGICALLY... that line numbers would be supported as backward compatibility to GWBasic? I think so. As a matter of fact, I have seen several schools teach Qbasic classes, using GWBasic text books... see where this goes, and your bullshit doesnt?

      When I first encountered QuickBasic, I already knew BASIC, Pascal, and C. I could replace the keywords in my Pascal programs and then do minor debugging to have functional QuickBasic programs. The API for VB has grown since then, but it still looks like Pascal with different keywords.

      You mean like StrLen? C had to have RIPPED THAT OFF TOO! Oh, let me illustrate how much they are the same:

      If You = Retarded Then
      Print "Retard"
      Else
      Print "Still Retarded"
      End If


      vs.

      If You = Retarded Then
      Begin
      writeln('Retard');
      End Else Begin
      writeln('Still Retarded');
      End


      Yep.... identical all right *ugh*.

      It was a smart move for MS. Most college grads were learning Pascal, and the transition to developing in the MS-proprietary language was easy since few of the rules were different

      Do you even live in the same universe as the rest of us?

      Today I work with Java and LotusScript with Domino because it is allows much faster business application development than any other platform. LotusScript was based on VB, and still looks similar: same keywords, different API, and it has the List variable type. I also use Java for applets, servlets, and server applications; and one of my Java projects will require a GUI-based client, although I have not written it yet. (I prefer Java over C/C++ because the native memory management saves development and QA time.) I have never developed with Delphi, although several friends are good with it, and their code looks like super-charged Pascal.

      Ok, thanks for clearing up why you are completely unqualified to even exist.

      Also, it looks like Super Charged pascal, because its simple Object Pascal.

      --

      "When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
  57. Re:Functional programming languages dying? F# XSLT by RPoet · · Score: 2, Informative

    I don't see functional programming languages as dying at all. Caml has already been pointed out as a modern and viable language, and although F# is pointed to as an example of a functional language for .NET, I think Nemerle is every bit as cool.

    Also, although purely or almost-purely functional languages aren't that common or popular with the coding masses, the ideas and principles of the paradigm are slowly trickling down to the common languages. Things like algebraic datatype construction/deconstruction, as well as functions as first-class citizens aren't that uncommon any more.

    --
    "Oppression and harassment is a small price to pay to live in the land of the free." -- Montgomery Burns.
  58. 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.

    1. Re:OCCAM not mentioned by TwistedSquare · · Score: 2, Informative

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

  59. Java in 1991!? by mackman · · Score: 2, Funny

    Of course it was called Oak back then. I guess I should update my resume to show 13 years Java experience instead of the lackluster 9 I lied about on my current one. Take that all you Java coders trying to find a job!

  60. Rexx roots wrong by therexxman · · Score: 2, Informative

    Unfortunately there are a few glaring errors with the O'Reilly chart regarding Rexx.
    First is the roots of Rexx on the O'Reilly chart are from csh and awk (these languages have nothing to do with Rexx), but on the original chart from Éric Lévénez, it correctly states the roots of Rexx from PL/1.
    The second item missing is the 1996 ANSI Standard. Other languages have ANSI standard milestones, but not Rexx? It IS the only ANSI standard scripting language.
    Why the arrow for Rexx doesn't continue is also odd; I just released 3.3 of the ANSI standard Regina Rexx Interpreter in May 2004.
    Apart from these errors its good to see Rexx where it should be; ON TOP!!! :-)

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

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

    --
    -tom
  62. Perl is just as wrong by ajs · · Score: 4, Informative

    Perl's history starts with nawk and sh at version 1.0 and there are no further influences listed. At least that's what's in the picture.

    A more accurate history would be:

    Perl 1.0: awk, sh, C, BASIC
    Perl 5.0: C++, LISP

    Listed as a seperate line:

    Perl6 A1-12: Perl 5.0, LISP, C#, C++, Ruby, Java, Python, SNOBOL

    To be more specific, Perl 1.0 had heavy influences from C. The most obvious influecnes were in the operator precedence, ternary operator and behavior of parens.

    In 5.0, the influence of C++ was felt strongly on the establishment of Perl 5's non-object-model object model (AKA the object model construction kit) and from LISP can the idea of closures.

    Come Perl6, of course, it's a different language which borrows most of all from Perl 5, but also heavily from the other languages listed. Adding LISP currying, Ruby mix-ins, a Java and/or C#-like VM, python-like exceptions and a number of features from C++ including templated proto-classes and iterators as well as dozens of unique features. But, ultimately I think the most world-view altering change will be the SNOBOL-like inline grammar construction.

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

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

      --

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

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

    Well, there are lots of Delphi / VB comparisons and observations here so I thought I would throw in my two cents as Delphi is the environment I program in the most.

    While there are similarities between VB and Delphi there were (and I say were because VB.net is a whole new animal) some important differences. For instance:

    1. Delphi can link statically - I can hand a person a floppy disc with a program I wrote in Delphi and I know that they will be able to run it without distributing VB Runtime Libraries

    2. Object Pascal in Delphi is a strongly typed language and a true object oriented language.

    3. While Delphi applications may not be quite as fast as C++ apps the performance is certainly better than VB.

    4. One can write Assembly blocks in a Delphi unit.

    There are more but I am at work so I'll stop.

    It's fashionable to slag VB, but, really, it's done a lot. A lot of people that would never have gotten into programming were able to make apps to suit some small purpose because of VB.

    It's just too bad that most of those people did not know about Delphi and latch on to that because it really is the best RAD environment for Windows. Delphi really should have been the VB killer.

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

    "BASIC (standing for Beginner's All Purpose Symbolic Instruction Code) was written (invented) in 1963, at Dartmouth College, by mathematicians John George Kemeny and Tom Kurtzas[sic] as a teaching tool for undergraduates. BASIC has been one of the most commonly used computer programming languages, a simple computer language considered an easy step for students to learn before more powerful languages such as FORTRAN" (Kurtz is the correct spelling)

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

    So the first version of BASIC that was ever written was Dartmouth BASIC and it ran on a GE-265 mainframe (created by General Electric). A bit of trivia: The first BASIC program ran on May 1, 1964 at 4:00 am.

    http://www.columbia.edu/~jrh29/kemeny.html
    http://en.wikipedia.org/wiki/BASIC_programming_lan guage#History (has a big list of dialects)

    Bill Gates, Paul Allen, and Monte Davidoff wrote a version of the BASIC programming language for the Altair in 1975, which, incidentally, was Microsoft's first product--he went on to produce BASIC interpreters for many different processors.

    Apple and Microsoft: The first BASIC for Apple, called Integer BASIC was written by Steve Wozniak. Microsoft offered to sell them their BASIC but Steve Jobs told them they already had one, and if needed, they "could write a better one in a weekend". Apple later needed a floating-point version of BASIC, and since Wozniak was too busy with other projects, they bought Microsoft's floating-point BASIC--it was called Applesoft. As is the standard with Microsoft products, there were initially some bugs, instability, and memory hogging that had to be worked out. Some speculate that if Apple hadn't bought Microsoft's version, Microsoft would have gone under--Apple was able to buy it for a flat fee of $10,500 (and no royalties).

    http://apple2history.org/history/ah16.html#Appleso ftI

  65. This site has more languages by ulrikp · · Score: 2, Interesting

    The HOPL is an "Interactive historical roster of computer languages". It has more languages, but also contain non-programming languages (like query-languages).

    The editor of the site has made two color-coded posters: Version 1 and Version 2.

    Other lists are here, here and here.

    Ulrik

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