{"id":13677830,"url":"https://github.com/stereobooster/programming-languages-genealogical-tree","last_synced_at":"2026-03-14T16:06:43.362Z","repository":{"id":56723418,"uuid":"63362188","full_name":"stereobooster/programming-languages-genealogical-tree","owner":"stereobooster","description":"Programming languages genealogical tree","archived":false,"fork":false,"pushed_at":"2022-11-14T10:32:33.000Z","size":5786,"stargazers_count":263,"open_issues_count":3,"forks_count":20,"subscribers_count":13,"default_branch":"gh-pages","last_synced_at":"2025-02-11T14:47:02.938Z","etag":null,"topics":["computer-science"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"cc0-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stereobooster.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-07-14T19:01:57.000Z","updated_at":"2025-02-04T17:03:44.000Z","dependencies_parsed_at":"2022-08-16T00:20:44.586Z","dependency_job_id":null,"html_url":"https://github.com/stereobooster/programming-languages-genealogical-tree","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stereobooster%2Fprogramming-languages-genealogical-tree","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stereobooster%2Fprogramming-languages-genealogical-tree/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stereobooster%2Fprogramming-languages-genealogical-tree/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stereobooster%2Fprogramming-languages-genealogical-tree/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stereobooster","download_url":"https://codeload.github.com/stereobooster/programming-languages-genealogical-tree/tar.gz/refs/heads/gh-pages","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247378087,"owners_count":20929291,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["computer-science"],"created_at":"2024-08-02T13:00:47.667Z","updated_at":"2026-03-14T16:06:38.302Z","avatar_url":"https://github.com/stereobooster.png","language":null,"funding_links":[],"categories":["Others"],"sub_categories":[],"readme":"[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://vshymanskyy.github.io/StandWithUkraine)\n\n# Programming languages genealogical tree\n\n![diagram](https://rawgithub.com/stereobooster/programming-languages-genealogical-tree/gh-pages/img/diagram.svg)\n\nSource: [rigaux.org](http://rigaux.org/language-study/diagram.html)\n\nBasic idea behind project reconstruct diagram above in [D3](https://d3js.org/):\n\n  - to be able to edit data easily. Simply send PR to this repo and everyting, else will be updated\n  - to use html5 instead of plain image, for better perfomance, for vector graphics, to enable text search via `Ctrl + F` and copy/paste\n  - add interactivity to diagram, for example: select one node and it will show all \"ancestors\" and \"children\"\n\nThere 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:\n\n**Superset or subset**.\n\n  - [sass](http://sass-lang.com/) (sccs) is superset of [css](https://www.w3.org/Style/CSS/Overview.en.html)\n  - SIMULA is superset of ALGOL 60. Source: [link](http://www.edelweb.fr/Simula/#7)\n\n**Inspiration or ideas**\n\n  - JavaScript took it's idea of prototypal inheritance from [Self](https://en.wikipedia.org/wiki/Self_(programming_language))\n  - Ruby took it's OOP concepts from SmallTalk: objects communicate  via messages, everything is an object (even classes)\n  - C++ took it's OOP concepts from Simula [citation required]\n\n**Similar syntax**\n\n  - C, C++, Java, JavaScript\n  - LISP, Scheme\n\nMany 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.\n\nOther side of this project is to show in what language concept (idea, paradigm, technique) first appeared. See [link](http://rigaux.org/language-study/concepts-history.html). 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.\n\n## Similar projects\n\n - http://www.roundcrisis.com/2016/02/13/Database-programming/, http://www.roundcrisis.com/2016/02/14/Database-programming-ii/\n - http://archive.oreilly.com/pub/a/oreilly/news/languageposter_0504.html Most beautiful timeline with reasonable number of languages ([pdf](http://cdn.oreillystatic.com/news/graphics/prog_lang_poster.pdf)). SmallTalk have Simula as influencer which is misleading, but also have LISP which is fair enough.\n - http://rigaux.org/language-study/diagram.html Timeline with big number of languages\n - https://www.levenez.com/lang/ Timeline with very big number of languages ([pdf](https://www.levenez.com/lang/lang.pdf)).\n - http://www.digibarn.com/collections/posters/tongues/ Have some serious misleading links between languages (example: Fortran -\u003e LISP), but like its idea on marking status of language: Active, Protected, Endangered, Extinct.\n - https://blog.ouseful.info/2012/07/03/mapping-how-programming-languages-influenced-each-other-according-to-wikipedia/ Big graph based on semantic data, but not very useful\n - https://exploringdata.github.io/info/programming-languages-influence-network/ Big beautiful graph, but not very useful\n\n## More ideas\n\nAdd info about authors to programming languages.\n\nAdd concpets and their connection to languages.\n\nAdd links to scientific papers behind language concepts.\n  - http://bibliography.selflanguage.org/\n  - https://github.com/rust-lang/rust-wiki-backup/blob/master/Note-research.md\n\nIt 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].\n\n## Other links\n\n - [Programming Languages: History and Future, 1972](https://www.csee.umbc.edu/courses/undergraduate/CMSC331/resources/papers/sammet1972.pdf)\n - [History of Programming Languages, Spring 2017](https://github.com/nuprl/hopl-s2017)\n - [Some History of Functional Programming Languages](https://www.cs.kent.ac.uk/people/staff/dat/tfp12/tfp12.pdf), [2](http://www-fp.cs.st-andrews.ac.uk/tifp/TFP2012/TFP_2012/Turner.pdf)\n- [The principal programming paradigms](https://www.info.ucl.ac.be/~pvr/paradigmsDIAGRAMeng108.pdf)\n- [Programming Paradigms for Dummies: What Every Programmer Should Know](https://www.info.ucl.ac.be/~pvr/VanRoyChapter.pdf)\n- [Fundamental Concepts in Programming Languages, 1967](https://github.com/papers-we-love/papers-we-love/blob/master/plt/fundamental-concepts-in-programming-languages.pdf)\n - [Some History of Functional Programming Languages, June 2012](https://www.cs.kent.ac.uk/people/staff/dat/tfp12/tfp12.pdf)\n - [P.J. Landin The next 700 programming languages, 1966](https://www.cs.cmu.edu/~crary/819-f09/Landin66.pdf)\n - [G.D. Plotkin. Call-by-name, call-by-value, and the λ-calculus, 1975](http://homepages.inf.ed.ac.uk/gdp/publications/cbn_cbv_lambda.pdf)\n - [Call by push, 2001](http://www.cs.bham.ac.uk/~pbl/papers/thesisqmwphd.pdf)\n - [Luca Cardelli, Type Systems, 1997](http://lucacardelli.name/Papers/TypeSystems.pdf)\n - [Luca Cardelli, On Understanding Types, Data Abstraction, and Polymorphism, 1985](http://lucacardelli.name/Papers/OnUnderstanding.A4.pdf)\n - [C.A.R. Hoare. An axiomatic basis for computer programming, 1969](https://www.cs.cmu.edu/~crary/819-f09/Hoare69.pdf)\n - [The Birth of Object Orientation: the Simula Languages](http://www.olejohandahl.info/papers/Birth-of-S.pdf)\n - [Types in Programming Languages, between Modelling, Abstraction, and Correctness](http://www.cs.unibo.it/~martini/papers-to-ftp/Cie-revised.pdf)\n - [Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I](http://www-formal.stanford.edu/jmc/recursive.pdf)\n - [Syntaxation. Douglas Crockford](https://www.youtube.com/watch?v=Nlqv6NtBXcA)\n - http://www.ibm.com/developerworks/library/l-linux-shells/\n - https://www.emacswiki.org/emacs/EmacsHistory\n - http://www.moolenaar.net/vimstory.pdf\n - http://www.linfo.org/vi/history.html\n - https://www.levenez.com/unix/unix.pdf\n - https://www.levenez.com/unix/\n - https://commons.wikimedia.org/wiki/File:Unix_history-simple.png\n - http://i.stack.imgur.com/NZx8g.png\n - https://en.wikipedia.org/wiki/Timeline_of_programming_languages\n - http://visual.ly/programming-languages-world\n - https://akr.am/languages/\n\n## History of computation\n\n- https://github.com/JoannaSharrad/presentations/blob/master/The%20Six%20Degrees%20of%20_%20Computability.pdf\n- https://www.youtube.com/watch?v=2oNmR0q1uA0\n- https://pron.github.io/computation-logic-algebra\n\n## Good papers\n\n- https://www.cs.cmu.edu/~crary/819-f09/\n- http://blog.fogus.me/2011/09/08/10-technical-papers-every-programmer-should-read-at-least-twice/\n- https://github.com/nuprl/10PL\n\n## D3 examples of timelines and similar graphs\n\n - [Exploring Family Trees (Beta)](https://learnforeverlearn.com/ancestors/)\n - [Behind the Scenes: ChronoZoom](http://research.kraeutli.com/index.php/2014/01/behind-the-scenes-chronozoom/)\n - [Comic Book Narrative Charts (d3)](http://csclub.uwaterloo.ca/~n2iskand/?page_id=13)\n - [Narrative Charts Tell the Tale…](https://blog.ouseful.info/2014/04/07/narrative-charts-tell-the-tale/)\n - http://bl.ocks.org/bunkat/2338034\n - http://bl.ocks.org/bunkat/1962173\n - http://bl.ocks.org/tnightingale/4718717\n\n\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstereobooster%2Fprogramming-languages-genealogical-tree","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstereobooster%2Fprogramming-languages-genealogical-tree","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstereobooster%2Fprogramming-languages-genealogical-tree/lists"}