Home | About | Collections | Stories | Help! | News & Links | Friends | Lets Talk! | Events & Visiting | Search

Mother Tongues of Computer Languages

This is a poster gives us a peek at the strongest branches of computer languages. This appeared in Wired Magazine and you can find a more exhaustive compilation at The Language List at the University of Freiburg. Sources for this chart include: Paul Boutin and Bret Hailpern at IBM Research and Todd Proebsting at Microsoft, The Retrocomputing Museum, and Gio Wiederhold at Stanford University.

Click here to see this poster in more detail
(550MB PNG)
Click here for a truly big version (1.1MB PNG)

Thanks for the original scan Dan Croghan
Thanks for the much cleaned up and corrected version Travis Owens
(see Travis' Blog here)

A Comment from enthusiast Jim Franz

I know the poster of "Mother Tongues" could not fit all languages, but there is one that is highly in use by large and small corporations around the world, has hundreds of thousands of active coders, has been around since the 60's, yet refreshed enough to be an active & viable business language today. RPG-Report Program Generator (and the current version RPG IV). As fully functional (or more functional) as Cobol, corps like Office Depot, Royal Caribbean Cruise Lines, Disney World, Universal Studios, and many more (banks, insurance companies, manufacturing, retail, etc) have major application systems running this language. My last "large" assignment, Levitz Furniture Corp (a 1 billion dollar annual revenue) was running 80 AS/400 servers, to run corporate and 130 stores. ALL was RPG, right down to the retail POS!. Any newspaper with technical want ads will have at least one, if not several listings for AS/400 programmers (the old name - IBM has relabelled "iSeries", which btw is fully functional in Java, RPG (II, III, IV), Cobol, C, C## (i think..). IBM is pushing everone to move to Java, and yet is still enhancing the RPG language. I've got RPG (w/cgi api's) running websites on the iSeries!!. IBM's iSeries site:

Also - if the argument is that it is a proprietary language (like everything Microsoft builds is not?). In 1980 I had a college instructor declare RPG dead, and yes the original RPG is dead, just like the original Cobol.

Curator's note: In 1983 when I was working at IBM as a summer co-op student I had the pleasure of writing code in RPG for the System/32 (or was it the /38?). It was a special language indeed.

A Correction from James Britt

There is, though, an error regarding the Ruby programming langauge. The Ruby shown on your chart, with roots in Smalltalk, Python, and some others, has a small blurb describing it as a hardware description lanaguage. It is not. While there *is* such a language, also called Ruby, it is not the same one listed on your chart, nor is it a general purpose programming lanaguage. The Ruby influence by Smalltalk, et al, is a pure OO, general purpose interpreted programming language. See www.ruby-lang.org

Curator's note: thanks to Travis Owens this is now corrected in the chart.

Comments from Diarmuid Pigott

I find the "editorial comments" applied to such languages as IPL and COBOL to be naive at best, offensive at worst. Why mention Feigenbaum's thesis and leave out GPS? Why include B0 but ignore Comtran or FACT? And why go on about Y2K and Cobol when there were so many other languages (home-brewed autocodes etc) that were culprits?

Basic began as a powerful tool, and was watered down to what its inventors called "street basic" As Fred Ruckdeschel showed with his work on engineering and statistical libraries, there was nothing that couldn't be done with a decent implementation. Rocky Mountain Basic (HP) was the basis for an incredible legion of test gear, while IBM and such-like Basics had better structuring capabilities than Pascal and better matrix manipulation abilities than any language besides APL and FORTRAN. The chart also leaves out the importance of the conversational cmputing paradigm in the development of Basic - beginning with JOSS, including FOCAL, CORC and so forth, these were the workhouse of many computers for the 60s and 70s.

To mention Eiffel without mentioning programming-by-contract suggests that the designer didn't know about programming at all, and was putting a caption there to put a label there.

Regarding accuracy, a rather significant error is the confusion of frames-based knowledge language with Korn-shell for unix. This is such an astonishing error, hard to know how it got past Proebsting et al.

I also am very worried that such "family trees" perpetuate a certain mythos about how ideas develop in society. Basic came out of experience with Fortran at MIT by the creators, and was built after languages such as Darsimco, and experience of the JOSS paradigm. To have ABC leading to Python without mentioning Algol68 as a forbear is LUDICROUS. The idea of unique dates for creation is also a worry: how long do these ideas take to gestate? Sammet in her graph had three dates: inception, publication and operation.

This is not a complaint as much as an appeal to take the entire problem of computer languages and their evolution seriously - these are the languages we use to describe the world with, and their limitations are the limitations of our computational models of the world. Having such a bald account of their origins conceals their very real flaws, and treats their development as more of a fashion parade or sporting league than the serious intellectual endeavour it is.

Comments from Rick DeNatale (July 2006)

A comment on the Mother Language chart.

A few more words on Ruby.

I think that perl was much more of an influence on Ruby than was python. In fact I understand that "Matz" the inventor of Ruby developed it as an alternative to python because he didn't consider python truly object-oriented.

Lisp probably had more influence on Ruby than either python or Eiffel. I'm hard put to think of what ruby really owes to Eiffel other than a small example of implementing an Eiffel feature in the "Programming Ruby" book. On the other hand, Ruby's proc's and closures (and in particular lambda) come from Lisp, albeit some of this via Smalltalk.


Having just sent a comment about Ruby, I noticed something else about the chart which needs correction.

The chart repeats the often stated, but wrong, assertion that Simula-67 was an influence on Smalltalk.  Alan Kay's paper, "The Early History of Smalltalk" makes the point that he was influenced by Simula (not Simula-67). His key insight, was the encapsulation of behavior within an object.  He had seen this used in various forms, such as a tape-format which started with a table of pointers to programs on the tape itself which understood how to process the data on the tape; then the design of Ivan Sutherland's Sketchpad system; etc.  Simula exhibited this idea.  This encapsulation of behavior was the sine-qua-non of the term "object-oriented" as Kay himself coined it.

The introduction of classes and class hierarchies came later, and Smalltalk and Simula-67 used them to different purposes. Smalltalk uses classes and the class hierarchy as a mechanism for sharing implementation of behavior, while Simula-67 and it's followers use it primarily as an abstract type specification mechanism.  It's somewhat unfortunate that Peter Wegner hijacked the term "object-oriented" to mean objects+classes+inheritance and moved it away from Kay's original intent for the term.

Curator: thanks Rick and everyone for these inputs, comments on the poster! Now if we could only get a new version of this made up to reflect all these informed inputs

Know anything about how computer languages evolved and relate to each other? Contact us!

Please send site comments to our Webmaster.
Please see our notices about the content of this site and its usage.
(cc) 1998- Digibarn Computer Museum, some rights reserved under this Creative Commons license.