Slashdot Mirror


A Brief History of Programming Languages?

Aviancer asks: "French computer historian Éric Lévénez has compiled a family tree of programming languages that I found quite interesting. This prompted me to wonder if there was any controversy on the issue of language lineage and my searches found another page on the same topic. I thought I'd pull an 'ask the audience' to see if there were any corrections on either (both?) pages to be made." What other computing language origins are you aware of that may not be mentioned in either page?

44 of 598 comments (clear)

  1. I finally found Simula by Sheetrock · · Score: 4, Interesting
    I can't believe that was made back in the 60's.

    It is (a) percursor to object-oriented languages such as Smalltalk and C++, and was the first strongly-typed language (Python being the most recent.)

    --

    Try not. Do or do not, there is no try.
    -- Dr. Spock, stardate 2822-3.




    1. Re:I finally found Simula by joto · · Score: 4, Interesting
      Exactly an example of the kind of discussion the original poster intended. The diagram shows Simula as a precursor for SmallTalk. Which is true if you look at time, but probably not if you look at causality. It's very likely the people who invented SmallTalk didn't even know about Simula, or realized that it was "object-oriented".

      C++ on the other hand, was heavily influenced by Simula, as Stroustrup has told in numerous interviews, books, articles, etc...

      Whatever you mean by Python being the most recent strongly-typed language, I can't even imagine. If you haven't found a newer strongly typed language, you can't have looked very far. Wether Python really is strongly typed is also up for discussion, but mostly because there is no clear definition of what this implies.

    2. Re:I finally found Simula by alangmead · · Score: 3, Informative

      In the interview Daddy, Are we There Yet Alan Kay mentions that he read a paper on Simula in 1966. As he says in the interview much is lost to the programming community because we don't have a good sense of history.

  2. This has been around forever by MattGWU · · Score: 5, Informative

    Might have been updated lately, though. Always interesting, though. There's one for UNIX, too.

    --
    "These people look deep within my soul and assign me a number based on the order in which I joined" --Homer re:
  3. looks familiar by ambrosine10 · · Score: 4, Informative
  4. Excuse me.. by I+am+the+Bullgod · · Score: 5, Funny

    Where's the equal time for creationism? I don't believe in this "evolution" stuff. I think God created .NET (cough, cough) and then rested on the seventh day.

    1. Re:Excuse me.. by Shadow+Wrought · · Score: 5, Funny
      ...and then rested on the seventh day.

      This is actually a common misperception. The Old Hebrew word for "rested" can also be translated into "rebooted." Hence the confusion. Billical scholars still debate which one is the more likely interpretation.

      --
      If brevity is the soul of wit, then how does one explain Twitter?
    2. Re:Excuse me.. by Sloppy · · Score: 5, Funny

      perl pretty much disproved Intelligent Design.

      --
      As copyright owner of this comment, I authorize everyone to defeat any technological measure which limits access to it.
    3. Re:Excuse me.. by I+am+the+Bullgod · · Score: 5, Funny

      Correct. In the same vein, "sabbath" has also been loosely translated as "day of downloading updates".

    4. Re:Excuse me.. by Eberlin · · Score: 5, Funny

      Funny, I thought that was Patch Thursday.

      Behold, the OS Creed!!!
      (it's a parody, relax. Don't get too uppity)

      We believe in one OS,
      the Father, the Almighty
      Creator of Heaven, Earth, and the Internet,
      Of all that is seen, unseen, and can be seen in beseen.com.

      We believe in one Lord, Jesus Christ,
      the only instance of The Father
      eternally begotten of the Father
      God from God, Light from Light,
      true God from true God
      Instantiated, not made. One in being with the Father
      Through Him, all objects were initialized.

      For us men and for our salvation,
      He was downloaded from Heaven
      By the power of the Holy Spirit,
      He was ejected by the Virgin Mary, and became Man

      For our sake he was executed under Pontius Pilate;
      He had a GPF, froze, and was abnormally terminated.
      On the third day he was rebooted
      in fulfillment of the OS documentation;

      He was uploaded into Heaven
      and is installed as a plugin at the right hand of the Father.
      He will come again in a future release as a patch to fix all bugs and viruses
      and His kingdom will loop infinitely.

      We believe in the Holy Spirit, the Lord the power supply,
      who proceeds from the Father and the Son.
      With the Father and Son He is worshipped and glorified.
      He has flamed, spammed, and has sent streaming audio to the Prophets.

      We believe in one holy catholic and apostolic user group.
      We acknowledge one CTRL-ALT-DEL for the rebooting after errors.
      We look for the final upload,
      and life of the world to come. [OK]

  5. B0 0C 0F 3E 9E 51 5 by American+AC+in+Paris · · Score: 5, Funny
    In the beginning, there was 0.
    And it was good.

    Then, root created 1.
    And that, too, was good.

    Then, root created assembly.
    And that totally rocked.

    Then root created HCF.
    And it was very, very bad.

    --

    Obliteracy: Words with explosions

  6. INTERCAL by tim_mathews · · Score: 4, Funny

    I don't see INTERCAL on there anywhere. Of course since it was written to be different from all existing languages, it can be kinda hard to fit in a language tree.

  7. What about Assembly language? by Anonymous Coward · · Score: 4, Insightful

    The most significant programming language of them all is not even listed.

  8. BBC BASIC!!! by Anonymous Coward · · Score: 5, Interesting

    They have transparantly missed out BBC BASIC. A BASIC language, which included some of the better programming constructs of Pascal.

    Half of the UK's current programmers cut their teeth on the BBC Micro/Archimedes BASIC implementations.

  9. No teaching/learning languages? by madprogrammer · · Score: 4, Interesting

    I learned to program with GWBasic, QBasic, TurboPascal, Modula-3 - none of which made it into the chart...

    1. Re:No teaching/learning languages? by prgrmr · · Score: 4, Insightful

      Also, BASIC was not used for anything strong, as in enterprise-class application developement.

      Don't make guesses about what you don't know for a fact.

      There are several million users world-wide running enterprise applications written in some varient of BASIC. One example is about 20% of the HMO's in the US are running an application owned by CA and written in either Pick Basic or UniVerse Basic (a product now owned by IBM).

      Pick has it's own complex family tree

  10. I'm disappointed by GillBates0 · · Score: 4, Funny
    No mention of Whitespace, Brainfuck, Argh!, BlooP, or Ook!.

    Oh maybe that's why they called it a "Brief History".

    --
    An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
    1. Re:I'm disappointed by nacturation · · Score: 4, Funny

      Oh maybe that's why they called it a "Brief History".

      It's like the Reader's Digest version of Stephen Hawking's A Brief History of Time:

      "Well, here we are."

      The end.

      --
      Want to improve your Karma? Instead of "Post Anonymously", try the "Post Humously" option.
  11. Note: by tubbtubb · · Score: 4, Funny

    They misspelled:

    The Devil -> Fortran I

  12. Movie ++ by LegendOfLink · · Score: 5, Funny

    I think they forgot Movie++, which of course, runs on MovieOS. It's a great programming language, you navigate classes and objects in full blown 3d floating experiences!

    Every video can be programmed to zoom up until you can see microscopic particles WITHOUT any loss of resolution!

    My personal favorite is when hackers run virus attacks against giant "Gibson" computers. See, you just don't get a BSOD, you get an awesome 3d graphic eating your desktop!

  13. Re:Caml missing by e2ka · · Score: 4, Funny

    Look harder.

  14. Somewhat odd... by jameson · · Score: 3, Interesting

    Nice... but is it really neccessary to list tiny little update releases for current languages? And what precisely "defines" a language here-- should we treat SML/NJ as a different language than SML, because it supports continuations? Or current GHC as something other than Haskell98 because of its rank-n polymorphism and built-in support for arbitrary Arrows? And if drafts are in there (Fortran 2000), what about other drafts (ML 2000)?

    And, finally, where's Scala (http://scala.epfl.ch/) on that graph?

  15. Re:Holy grail of programming languages by samvo · · Score: 5, Funny

    Assembly Coders - these are extinct group of primitive form of life
    before the advent of culture and civilisation, althought without access
    to any formal human-recognizable language structure they were amazingly
    versatile in their skills to construct reality by pushing and popping strings of
    little pebbles from holes dug in the ground. Ancient arcade machines
    sometimes found in desolate pubs testify to their once glorious existance.

    C - C Programmers are more like highly evolved alien beings from outer space
    who spoke purely in binary and pointers. They often take the disguise as
    unsightly middle aged man with beard and glasses amongst earthlings.
    They do not care for the artifacts of language or culture, they only care
    for the semantics. Their job is to construct and engineer the roads,
    the transportation, the network lines, the infrasture that our civilazation
    have come to depend very much on. They are very hard to communicate with as
    intepreting their language requires unusually greater IQ than most of
    our earthlings can aspire to.

    C++ - C++ Programmers are born again C programmers who realised their
    folly of seeing the world in pure binary and pointers. They want to see
    reality more concretely thus they talk in objects and classes.
    More often than not, C++ Programmers are still attached to their
    old ways and their attempts to communicate with others often result
    in abstrated hodgepodge just as complicated as the C
    language. Most C++ Programmers feel they may have had a
    deprived childhood.

    Java - Java Programmers are like C++ programmers except they were
    brought up in aristrocat families. Their manners in their language
    are refined and elegant althought at times may appear slightly
    pretentious and artificial. They are very socially closed and
    mix with their own kind only, basically they dont like outsiders
    playing in their upper-middle class private school sandbox.
    Being economically previliged means they have ample access to inheritance
    like network libraries, etc. Although their reputation is good amongst
    corporate circles, they are rumoured to be impotent when it comes to GUI.

    Visual Basic - Visual Basic programmers are perceived to be like your
    every day a dime a dozen computer science graduates. They
    are naive, confident and sometimes a little brash in their perceived
    ability to deal with the real world. Their language developed from high school
    jargons and street slang though highly vulgar in the eyes of other programmers,
    were often effective (or adequate) in solving a lot of every day
    ordinary kitchen and sink problems. Often the case, a job completed
    by a Visual Basic programmer, thought cheap and fast leaves little to be desired,
    tales of half patched pipes leaking from under kitchen sink are
    well known in the industry.

    C# - C# Programmers are Java programmers wannabes wanting to achieve the same
    social status and previledge that Java programmers have, C# programmers
    lacks the authentic social grace and ethics that could help them rise above the
    Visual Basic suburbia coarse mentality that tends to predominate them. C# Programmers
    also tends to like screen widgets that are glitzy. They are the type of people
    that the marketing department love to target in their product focus group.

    COBOL - Cobol Programmers are not really people, they were actually mutated
    from hole-punch card readers. they have no human affectations
    and thus are very capable of churning out millions of incredibly mundane and
    humanly degrading pages and pages of printed accounts reconciliation codes.
    although they were disbanded by the human rights organisation, Cobol
    programmers were actively recruited just before the millineum to solve the Y2k bug
    which they were originally responsible for.

    Fabled Programmers - the are many species of programmers that claim
    to exist but no one have ever met any of these illusive creatures in

  16. Don't believe him by Alien54 · · Score: 3, Funny
    Bill Gates invented everything.

    Really

    ;)

    --
    "It is a greater offense to steal men's labor, than their clothes"
  17. Python *is* strongly typed by Rob+Riggs · · Score: 4, Informative
    The parent did not deserve to be modded up as "informative". An accurate title for the post would be "Python is not statically typed."

    Python is a strongly typed language. It is in the class of strongly- and dynamically-typed languages. Read this article on Python's type system for a good overview and a little information on "type" terminology.

    --
    the growth in cynicism and rebellion has not been without cause
  18. Fine....here's the family tree for Windows then by MattGWU · · Score: 3, Interesting
    --
    "These people look deep within my soul and assign me a number based on the order in which I joined" --Homer re:
  19. Original and Updated by douthat · · Score: 5, Informative

    I've had the O'Reilly poster on my wall since they released it. So when I saw the graphic on this guy's site, with a January 16, 2005 copyright, and no reference of O'Reilly's poster, I thought it smelled fishy.

    Just take a look at the two images:
    http://www.oreilly.com/news/graphics/prog _lang_pos ter.pdf
    vs
    http://www.levenez.com/lang/history.h tml#02

    and tell me you don't see the similarities.

    Anyway, so I thought this guy ripped off O'Reilly's poster, but, as it turns out, if you look in the small print on O'Reilly's poster, you'll see that he was the legitimate creator of the image. I even realized that it's been updated a little bit since O'Reilly released it.

    So, yeah, we've seen this story before, however, the link provided in the summary above is new and newsworthy, becuase it gives more links to learn about each individual and family of languages and updated the previous graph.

    --
    She loves me: 09F911029D74E35BD84156C5635688C0 She loves me not: 09F911029D74E35BD84156C5635688BF ...
    1. Re:Original and Updated by brrskg · · Score: 3, Informative

      If you look on Éric Lévénez Computer Languages History page you'll see that there is a link to O'Reilly. "O'REILLY has published a color version of The History of Programming Languages."

  20. Re:Python's not strongly typed by arkanes · · Score: 5, Informative
    There are 2 axis of typing. Note that they are scales, not boolean attributes

    Dynamic vs. static (or runtime vs. compiletime) and strong vs. weak. Dynamic/static typing is determined by when the type requirements are detected and enforced. C is statically typed - there's no runtime manipulation (or even concept of) types at all. C++ is mostly statically typed but has some runtime typing capabilities. Java is largely statically typed but also checks types at runtime. Python is entirely dynamically typed.

    Strong vs. weak affects what kind of type operations are allowed. Typeless (or single-type) languages like TCL are the weakest type, because they allow any operation on any type. Perl has multiple types but does lots of implicit conversions, making it weakly typed. Python performs very few implicit conversions (mostly between different representations of float) and therefore is strongly typed. Pascal doesn't even allow type conversion between pointers or different sizes of arrays and is therefore *really* strongly typed.

    There's also some other characteristics of typing, like whether it's class based (C++), does or does not allow user defined types, distinction between UDTs and primitive types, Objects vs primitives, duck typing, etc.

  21. Pretty funny... by SuperKendall · · Score: 3, Funny

    ...though I feel you are rather lucky having the last entry fall off the edge of the post and thus reduce significantly the flameage you may get.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  22. Karma Whoring! by wiggles · · Score: 4, Informative

    For those, like me, who have no idea what this guy is talking about, see this.

  23. Re:Pascal by dickko · · Score: 5, Interesting

    Sadly, my university moved away from teaching Pascal (at 100-level) in 2000 and started teaching Java instead. Has caused headaches for the teaching staff and tutors ever since ever since:

    • Instead of learning the purely the basics of programming (statements, operators, conditions, looping...) they are thrown in the deep end. Now they have a little bit of programming knowledge, and a lot of a freaking huge api... End result, they have a huge api to play with, but they don't know how to...When I first started tutoring, at least the students knew the difference between calling a function and declaring one, now they aren't so sure...
    • In addition to reducing the amount of time learning the basics, they've thrown more at them. Before it was procedures, functions, looping recursion etc. Now on top of that they have inheritance, polymorphism, abstract classes and so on to deal with...

    And here I was thinking it was just the students getting dummer...

  24. Some corrections and additions by dmoen · · Score: 4, Informative

    Fortran is always shown as having come from a vacuum, but surely it was inspired by the various "Autocode" languages, of which "Mercury Autocode" is the most famous. (Note: this was all before my time.)

    Smalltalk is derived from Alan Kay's earlier language, Flex, which in turn stole heavily from Euler (Kay confirms this), which was the language Wirth designed before he did Pascal.

    Euler was an early example of a dynamically typed, garbage collected language with an algol-like syntax. Now we have python, javascript, and so on.

    Python is heavily based on ABC.

    Euler must have been a primary influence on Setl, which in turn influenced other languages. Setl was a dynamically typed, garbage collected language with an algol-ish syntax, with arrays (called tuples) and sets as first class values. The List comprehensions of Haskell (and more recently Python) come from Setl. Setl is the first language I know to have the 'slice' notation for extracting subranges from a list:
    list(i:j)
    list(i:)
    Although, i was 1 based, not 0 based, and j was a length, not an index. This slice notation was picked up by Icon, which changed j from a length to an index, and introduced negative indexes. From Icon, slice notation migrated into Python, presumably via ABC (I have no ABC documentation to check), where indexing changed from 1 based to 0 based.

    The type names in C all seem to come from Algol 68. They couldn't have come from B or BCPL, which do not have types. Examples of C/Algol 68 type names include "int", "char", "long int" and "void", as well as "struct". This is C:
    struct {char c; int x;} s = {'x', 42};
    This is Algol 68:
    struct (char c, int x) s := ("x", 42);

    Algol 68 has a +:= operator, but I think that comes from C. This is speculation, based on the observation that C's += operator was originally spelled =+, then changed due to the ambiguity of parsing x=+y.

    The second link shows Javascript decended from Java, which is surely wrong. Javascript was developed with no knowledge of Java. It was originally called LiveScript, then changed to Javascript for marketing reasons. I'm pretty sure that Javascript/Livescript got its object system from Self, the first prototype-based object oriented language. Self descends from Smalltalk.

    --
    I have written a truly remarkable program which this sig is too small to contain.
  25. Re:Pascal by joto · · Score: 3, Informative
    Is Pascal all but dead?

    Pascal is dead. Object Pascal with various other extensions lives on. It's called Delphi.

    What do schools use now as the teaching language? Surely not C. I have nothing against it but it isn't for beginners.

    They use Java. Or maybe soon C#

  26. The oldest language is still missing by presroi · · Score: 3, Informative

    Plankalkül was developed in the first half of the 1940ies by Konrad Zuse.

    Wikipedia has(as usual) for more information.

  27. Re:Pascal by GaepysPike · · Score: 5, Interesting

    Maybe it's just me, but I think C is a excellent language for beginners. The year after I finished undergrad (about 3 years ago now, so not too long out) they started using Java as the first language you learn, and I personally think it's a terrible mistake. Now, I am in no way saying I'm some superb programmer, but I definitely think I know my stuff more that the students coming after me who began their base of knowledge with Java.

    Don't get me wrong, it can be a tough one to start out with, especially if you've never programmed before. But the learning curve is steep, and in the end you come out with a much better understanding of very crucial stuff; data manipulation, memory, pointers, bits/bytes, and simply when the heck is going on internally with a program, because of everything C lets you muck with (and true, perhaps screw up). And so maybe it's just due to my personal experience, but learning Java after drove me nuts. I just felt like there was whole additional level of abstraction because of all the stuff that I feel java does/hides for you. Not to mention that I think Java came easier, having the more low-level (admittedly not super-low) understanding that C gives you.

    Anyway, I'll come down off my soapbox now...

    --
    4 out of 3 people have trouble with fractions
  28. Simula and Smalltalk by tpv · · Score: 4, Informative
    Which is true if you look at time, but probably not if you look at causality. It's very likely the people who invented SmallTalk didn't even know about Simula, or realized that it was "object-oriented".

    It's true on both time and causality.
    Alan says so himself here

    --
    Read more of this story at Slashdot.Read more of this story at Slashdot.Read more of this story at Slashdot.
    1. Re:Simula and Smalltalk by Inthewire · · Score: 3, Funny

      ...debugging myself

      How far did you get?

      --


      Writers imply. Readers infer.
  29. Inaccurate by MrWim · · Score: 3, Funny

    There is no line from SCO unixware to linux

  30. Lisp by ari_j · · Score: 3, Informative

    Common Lisp is strongly, dynamically typed. It has been for a long time. There are, of course, other language attributes than strength and time of datatyping, but those are what you're talking about.

    Common Lisp is also object-oriented and beats every other language I know in that arena.

    On top of that, with a good Lisp compiler (such as SBCL, CMUCL, or even GNU Clisp, just to name a few free compilers), it is as fast as any other language, even statically typed languages such as C; but particularly faster than other dynamically typed languages.

    1. Re:Lisp by ari_j · · Score: 5, Interesting

      As an Emacser, you should definitely get into Common Lisp. I don't know Inform, so I can't compare the object-oriented parts of the two languages, but I have yet to come up with an object-oriented feature that I really wanted and Common Lisp didn't provide. (Incidentally, that includes multiple inheritance, which is only present in one of the more popular programming languages.)

      One of the niftiest things in Common Lisp's object system is multi-methods (I can't remember if that's the right term for them...I am back in school and programming has taken the back seat.) Essentially, the polymorphic methods in Common Lisp can specialize on any of their parameters, and you can specialize not only at the type level but also at the instance level.

      And you get all the great features of Lisp right along with it.

      Since you use Emacs, what you want is called SLIME - Superior Lisp Interaction Mode for Emacs. It interfaces to your choice of Lisp environments (I use, and recommend, SBCL; but have used Clisp and CMUCL with it, as well.) and provides an REPL, an interactive debugger, a Lisp editing mode with HyperSpec lookup (meaning you can type a command while over a symbol and a web browser will come up with the HyperSpec page for that symbol, the HyperSpec being a really helpful Lisp resource), and really easy incremental development features like "Compile and load this file" from which you can then go to the REPL and test out your functions.

      But, needless to say, it blows C++, Java, Python, Perl, C#, and even Ruby right out of the water. And it's older than many Slashdotters' parents.

  31. Business Basic - 750,000 + Users at the moment by boogahboogah · · Score: 3, Informative
    I'm not surprised that the collegiate types that put together this history of languages missed out on this BASIC variant, called 'Business Basic'. It was created by the BASIC FOUR corporation, in California, on their proprietary hardware. It ties the simpleness of BASIC with relative record and keyed files, business math that assumed 2 digits to the right of the decimal point but could go to 12, extended variable names, data dictionary integration with the language, callable programs/routines, definable functions, etc etc etc. At the time, the BASIC FOUR systems were the best small business 'Minis' around. Unfortunately, the company tried to attack their VAR base and ended up planting the seeds of their own demise.


    Currently still being developed and used globally, with at least 750,000 + users all around the world.


    Currently offered by multiple vendors, runs on all Unix, Linux, M$ systems, except maybe on the 'big iron' IBM boxes. Current vendors with products that are supported are Thoroughbred, Basis, and Providex.

  32. Re:Pascal by pz · · Score: 5, Insightful

    BZZZZZZT. Wrong. C is an awful language for beginners, just as BASIC, FORTRAN, APL, ALGOL60, and so forth were, and Java, Pascal, and so forth continue to be because it is mired in syntax.

    Software Engineering has absolutely nothing to do with syntax. Nothing. Would you ever consider that philosophy is the study of spelling? No, so why would you think that forcing a naive user to stumble hither and yon against arcane syntax is a good way of teaching programming concepts? You want to start --START-- with a language that has incredibly simple syntax. Like Lisp, Scheme, and the like. Then you can spend time worrying about things like data structures, lexical and dynamic scoping, control structures, etc. Once these fundamental notions are understood, then you can spend time with syntax.

    --

    Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
  33. Re:Pascal by tfmkayaker · · Score: 3, Interesting

    LISP is an awful language to learn as a first language, not because of it's syntax (which is bad enough) but...

    BECAUSE IT USES A COMPLETELY DIFFERENT THEORY OF COMPUTABILITY THAN EVERYTHING ELSE.

    Most other languages use turing machines as their basic computability theory.

    LISP uses micro recursive functions

    Each is as strong as the other - but involved radically different thought processes.