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?

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

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

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

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