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?

3 of 598 comments (clear)

  1. 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:
  2. 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 ...
  3. 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.