3 ms·
Besides, one of Go's explicit goals was to not be bound to any one implementation. The language has been carefully documented to ensure that anyone could reimpl
by randomdata 7y ago
Besides, one of Go's explicit goals was to not be bound to any one implementation. The language has been carefully documented to ensure that anyone could reimplement it without having to understand nuances of a specific toolchain.
If you want to compile Go using LLVM, everything you need is there to make it happen. In fact, someone has already done a lot of the leg work for you[1]. And if GCC is more your thing[2]...
[1] https://tinygo.org https://tinygo.org
[2] https://golang.org/doc/install/gccgo https://golang.org/doc/install/gccgo
- millstone 7y agoI think this is too facile. Go was conceived as suitable for systems programming tasks, like web browsers, databases, and operating systems. But Google's own web browsers, databases, and OSes do not use Go. It was also conceived as suitable for web servers, crawlers, and indexers; there it has been successful inside and outside Google. Why didn't it catch on for browsers, databases, OSes - while Rust did? I think it must be the GC primarily, but the lack of an advanced optimizing compiler is part of the story.
- randomdata 7y agoI'm not sure where the idea Go hasn't caught on for databases comes from. * https://awesome-go.com/#database https://awesome-go.com/#database * https://github.com/rust-unofficial/awesome-rust#database https://github.com/rust-unofficial/awesome-rust#database Rust was invented specifically to write a web browser, so that is a bit of an unfair comparison, but I would suggest that Go's lack of seamless inter-op with C is its biggest limiting factor in integrating into existing browser codebases as well as greenfield GUI applications. Additionally, Go's runtime is not well suited to OS development. I doubt the lack of an advanced optimizing compiler ever crosses anyone's mind as by the time that might become an issue they have already ruled out Go for its many other limitations.