/programming-languages-genealogical-tree

Programming languages genealogical tree

Creative Commons Zero v1.0 UniversalCC0-1.0

Programming languages genealogical tree

diagram

Source: rigaux.org

Basic idea behind project reconstruct diagram above in D3:

  • to be able to edit data easily. Simply send PR to this repo and everyting, else will be updated
  • to use html5 instead of plain image, for better perfomance, for vector graphics, to enable text search via Ctrl + F and copy/paste
  • add interactivity to diagram, for example: select one node and it will show all "ancestors" and "children"

There are a lot of similar efforts and all of them have one big flow from my point of view. It is not very clear what influence-links mean. There are different relationship possible between languages. For example:

Superset or subset.

  • sass (sccs) is superset of css
  • SIMULA is superset of ALGOL 60. Source: link

Inspiration or ideas

  • JavaScript took it's idea of prototypal inheritance from Self
  • Ruby took it's OOP concepts from SmallTalk: objects communicate via messages, everything is an object (even classes)
  • C++ took it's OOP concepts from Simula [citation required]

Similar syntax

  • C, C++, Java, JavaScript
  • LISP, Scheme

Many links between languages in simillar projects not provide information on what kind of relation it is and lacks credibility. So they tends to be more confusing rather than helpfull. I want to add this type of information.

Other side of this project is to show in what language concept (idea, paradigm, technique) first appeared. See link. So if similar concept appears in other language it is can be considered as inspired by original source. But this not alway true: Simula considered to be first object-oriented language (even though there was idea of object before [citation required]), but idea of object-oriented language presented in SmallTalk is completley different and both languages appeared with small time difference, so I do not consider that one was inspired by another. Yes, both languages talk about object, but OOP-ideas behind them are completley different.

Similar projects

More ideas

Add info about authors to programming languages.

Add concpets and their connection to languages.

Add links to scientific papers behind language concepts.

It is possible to add mathematical theories which were preceding programing languages, like lambda calculus can be considered as parent of s-expressions (LISP) [citation required]. Haskell has roots in category theory [citation required].

Other links

History of computation

Good papers

D3 examples of timelines and similar graphs