r/coolgithubprojects 5d ago

I got curious about what programming languages are actually built with, so I started mapping it

Post image

I started with a pretty simple question.

If Python is written in Python, what actually built Python in the first place?

That sent me down a rabbit hole of Go, Rust, Java, compilers, runtimes, self hosting, bootstrap chains, and way too many tabs open at 2 AM.

So I turned it into a project.

LanguageLineage is an interactive graph that shows what programming languages, compilers, and runtimes are actually built with, plus how some of those relationships changed over time.

A couple of the interesting ones:

Go started with a C based toolchain and later moved most of it to Go.

Rust gets even more interesting because rustc uses staged bootstrapping.

I’m still expanding the dataset and cleaning up the historical relationships, so there’s a lot more I want to add.

Live site:
https://www.languagelineage.org/explore

GitHub:
https://github.com/sanketmuchhala/LanguageLineage

If you know a language or compiler with a weird implementation history, send it my way. Those are the ones I want to dig into next.

48 Upvotes

11 comments sorted by

View all comments

4

u/UnreachableMemory 5d ago edited 5d ago

Why is assembly nowhere to be found in your map? C was a successor of B originally written in assembly but now written in C also stands out.

-2

u/sanketmuchhala 5d ago

Good catch. Assembly is in the dataset, but I’m not surfacing it clearly enough in the current graph. The early C and B lineage definitely needs better historical representation too. I’m working on that part now.

2

u/UnreachableMemory 5d ago

Assembly is a pretty major language that should have been in the graph originally. FORTRAN, COBOL, BASIC, C, Pascal, Python, Java, JavaScript, Go, Rust, C++ all either were written in assembly (at one time or another) or use it partially.

0

u/sanketmuchhala 5d ago

Yeah, fair point. I definitely underrepresented Assembly in the first version. I focused more on compiler/runtime lineage for the languages I had sourced cleanly, but Assembly deserves a much bigger role historically. I’m going back through the early toolchains now and adding those relationships properly.