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?

22 of 598 comments (clear)

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

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

    1. Re:What about Assembly language? by Anonymous Coward · · Score: 1, Insightful

      I would classify Assembly as a machine language.

    2. Re:What about Assembly language? by Anonymous Coward · · Score: 1, Insightful

      Which assembly ? :)

      There's more to assembly than x86..

  2. this is not even a dupe, a tripe or a quadruple by Knights+who+say+'INT · · Score: 2, Insightful

    This is prolly the Slashdot record of n-ple repeated article. This comes up every few months :-O

  3. Re:Pascal by pjt33 · · Score: 2, Insightful

    Java, mainly. I don't think that's a great language for beginners either, although it might allow teaching them to think in an OO way early on, without having to break procedural habits.

  4. Re:Pascal by arodland · · Score: 2, Insightful

    C++ and Java, and sometimes C. Lousy teaching languages, but they're usually accompanied by lousy teaching anyway.

  5. Re:Pascal by Anonymous Coward · · Score: 1, Insightful

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

    Most went to C++. Many are now switching to Java to try to sidestep pointers.

  6. Re:Holy grail of programming languages by joto · · Score: 2, Insightful
    believe it or not in school we are being taught LISP.

    Lucky you. Maybe you can learn something useful then, instead of doing the trendy stuff.

    So far the teacher said the only use it for AI.

    Unlucky you. You have an idiot teacher that can't even explain why lisp is so great. Think about this: AI is the hardest problem computer scientists ever need to solve. If a language is good enough to be used for research in AI, it's good enough to solve most any other problem too.

    The only problems with lisp are cultural. Many lispers are elitists who don't care for stuff other programmers need, such as distribution of binaries, portability between lisp-implementations, a standard, etc... And most mundane programmers hate lisp because it has lots of silly parentheses.

    I don't really care for it, good thing its only once a week.

    Try to pay attention. You might learn something.

  7. Re:How little improvement there has been... by MonkeyCookie · · Score: 2, Insightful

    The hardware isn't the problem. There's plenty of processing power to do something like that. The problem is that nobody has figured out how to make a programming environment that is both powerful and flexible like modern programming languages, yet extremely simple like legos.

    I suppose one could produce a graphical version of a current programming language, but that would be very complicated and slow to use.

    If you can figure out how to write something like this that creates large applications like Firefox, Word, or Visual Studio, you'd stand to make a fortune.

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

  9. Roots by RealAlaskan · · Score: 2, Insightful
    I'm looking at the roots of the tree in that second link. I see:
    • Snobol, which didn't spread much, but eventually merged with a Fortran derivative to beget Perl.
    • Flowmatic, which became Cobol, then Rexx.
    • Fortran 1, which became pretty much everything else, via Algol. This is the main part of the main stream.
    • Lisp, the other main stream, which joined with Fortran to make Scheme, and joined with it again to make Dylan.
    • Prolog, which joined up with Lisp
    • APL, which continues today (unlike Snobol) and has some recognizable descendants (unlike Snobol and Flowmatic).
    • ISWIM and
    • ML which are the only ones that I'd never heard of before, though I recognize their descendants Haskel and Camel.
    This ignores sh and SEQUEL, which stand almost entirely alone.

    There are two main streams, Snobol/Flowmatic/Fortran and Lisp/Prolog. There isn't much communication between them. Their two points of convergence, Scheme and Dylan, so far show no signs of spawning the sort of tree of descendants which sprung from their ancestors, Fortran and Lisp.

    ISWIM/ML and APL have almost no communication with either of the mainstreams. Chopping either of them out of the picture would leave few orphaned hybrids.

    All those languages from just seven big ideas.

  10. Re:Pascal by Aldric · · Score: 2, Insightful
    I spent a lot of time wishing they had taught me C after college. It comes as hell of a shock to someone that's learnt on Java. I spent quite some time cursing at the ever present segmentation fault during the first few weeks, and don't even get me started on pointers...

    Comp sci courses need to be changed a bit. I went from writing some stupid diary or something in Java with a database backend to writing a production system in C with a database backend - only my lecturers had failed to point out that you need to design the database differently when you are doing 100,000+ inserts a day and very few selects. Real-world knowledge needs to at least make an appearance during education.

  11. Re:Python's not strongly typed by Cpt.+Fwiffo · · Score: 2, Insightful

    For those of you out there who are into this stuff:
    I had a nice course on this once, discussing all sorts of programming languages. Both their histories, and their design decisions. Most importantly, they did it by a quite nice book:
    Concepts of Programming Languages.

    Starting with simple constructs and the way they are used, leading up to all the different decisions between languages and their reasons, and splitting off into the different paradigms in programming, it is a MUST HAVE for any CS student. I kid you not. It's damn expensive, but reading it learned me the global view of all the languages out there. Because of it, taking up a new language is much easier since I now can classify it and know what generic specifics to expect.
    As said. Get it. Or check the library. I'm guessing any university library with a CS department worth it's salt has one (although possibly older versions which are fine as well).

    Fwiffo

  12. Re:I finally found Simula by khallow · · Score: 2, Insightful

    Yes, it thinks so too. But you gotta empathize with the programmers if you want to figure out what they really meant.

  13. 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.
  14. Re:Fortran fatherde BASIC? by halltk1983 · · Score: 2, Insightful

    Fortran showed it what NOT to do to be Basic!

    --
    Watch for Penguins, they eat Apples and throw rocks at Windows.
  15. A better chart by Anonymous Coward · · Score: 2, Insightful

    http://www.cs.washington.edu/education/courses/cse 413/03au/misc/language-chart.jpg

  16. Re:Pascal by HeghmoH · · Score: 2, Insightful

    I always thought that programming should be taught from the outside in. Start on the extremes; learn an incredibly high-level language that shows you nothing of the nuts and bolts, like Lisp. At the same time, learn assembly, preferably a nice clean assembly that's easy to follow. Work your way up from assembly and down from Lisp until you meet in the middle somewhere.

    Of course, I haven't ever tried this, so maybe it's just a load of crap.

    --
    Mod down posts with a "Free Mac Mini/iPod" sig, they're spam!
  17. Re:Philosophy is nothing without communication by pz · · Score: 2, Insightful

    Would you have students learn to read German as part of a philosophy class so that they can study the Germanic greats in their native language? Probably not, because the particular laguage used to express deep concepts is more-or-less irrelevant. Instead, you would use the one easiest for the task. In the US, it would probably be English. In France, French. In Japan, Japanese.

    So when you're trying to teach programming -- not just training someone how to use a particular software house's tool -- why not use a language that best exposes the most important issues without obfuscating them with the arcana of syntax?

    Here's another analogy, if you want to teach someone to drive, do you teach them using a tractor? It would work, right? The same basic principles and laws apply to driving tractors, busses, cars, and trucks. But you probably wouldn't want to use a tractor (bus or truck) because they're particularly difficult and quirky to control. You'd probably use a car, and, at least in the US, probably one with an automatic transmission. You would do this because cars the easiest vehicular form to control, allowing the student to quickly master the concepts around controlling their vehicle and concentrate on the more important aspects of driving such as the conventions and laws surrounding interacting with other drivers. In a similar way, Lisp (or Scheme, my personal variant) allows the student to quickly get to deeper issues in programming because the syntax is so simple.

    --

    Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
  18. Re:I finally found Simula by sjames · · Score: 2, Insightful

    Python considers itself? How anthropomorphic.

    Well, it does support introspection, after all.

  19. History of Programming Languages by Telemachas · · Score: 2, Insightful

    Ahhhh! And *NO* mention of dbaseII, dbaseIII, or even of dbaseIII+ !

  20. Re:Awful Languages by pz · · Score: 2, Insightful

    Not every programmer is a Software Engineer.

    And I'm doing everything I can to correct that.

    --

    Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.