Programming languages genealogical tree
Switch branches/tags
Nothing to show
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
img Language history chart Aug 22, 2017
LICENSE Initial commit Jul 14, 2016
NOTE1.md Language history chart Aug 22, 2017
NOTE2.md NOTE 2 Jul 15, 2016
NOTE3.md Note 3 Jul 15, 2016
NOTE4.md NOTE4 on OOP Jul 17, 2016
NOTE5.md NOTE 6 Jul 17, 2016
NOTE6.md NOTE 6 Jul 17, 2016
NOTE7.md Language history chart Aug 22, 2017
README.md History of computation Nov 17, 2018
math-symbols.md proposition-as-types Aug 22, 2017

README.md

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