4 ms·
Go itself is a huge project written in Go. What are you talking about?
by Skunkleton 5y ago
Go itself is a huge project written in Go. What are you talking about?
- lucian1900 5y agoFamously, it even took many years for the compiler to be bootstrapped. That’s unusual in the extreme.
- tmp538394722 5y ago> Unusual in the extreme The most popular python and ruby implementations are written in C, right? Swift is written in C++ It seems not sooooo unusual.
- jacquesm 5y agoPython and Ruby are not from the get-go compiled languages but interpreted ones.
- atrn 5y agoThey had a functioning compiler and decided to concentrate on other areas and it's not too uncommon for a languages's compiler to NOT be written in that language. Afterall Rust relies on the non-Rust LLVM.
- adgjlsfhk1 5y agoOne thing that has been discovered over the past 50 years and applied over the last 30 or so is that writing a bootstrapping compiler for a young language tends to strongly bias the language towards being good at writing compilers (potentially to the detriment of other features). Compilers are essentially graph algorithms on loosely typed data. I think a lot of the reason it took so long for Rust and Julia to be invented is that they are both not very good languages for writing a compiler in, so in the era where all the new languages had bootstrapping compilers, no one would write a language with the sets of tradeoffs they have.
- surajrmal 5y agoI very much agree. In fact, taking it a step further, OS which self-host development also have this problem where they over optimize for an OS good at compiling and not necessarily good at other things.
- mseepgood 5y ago3 years is not that many years (Go is now 12 years old), and that's not unusual. There are other priorities when you have just released a new language.
- ncmncm 5y agoWriting the compiler for your new language in it amounts to wankage, these days. There was a time when doing that helped convince people the language could do practical things, and might be useful because you might not have had a compiler you liked for your dev environment. Nowadays, though, there is so much support for coding compilers in an existing langauge that building one in the immature language means wasting a lot of time, and furthermore makes your language hard to change because maybe the compiler is using something you want to change. There are more impressive things to write in your new language that might be actually useful. Thus, rustc is (mostly) not coded in Rust. Rust's demonstrator project was the guts of a browser, instead. Notably, that project was coded in a language substantially different from Rust both today and at the time.