4 ms·
> anyone who had done any systems programming at all knew that garbage collection made any systems language a nonstarter Very interesting, can you elaborate wi
by riazrizvi 7y ago
> anyone who had done any systems programming at all knew that garbage collection made any systems language a nonstarter
Very interesting, can you elaborate with an example?
- cletus 7y agoSo I wanted to find a good source for this and interestingly came across this article from 2011, titled "Go to C: Could Go Replace C?" [1] (HN submission [2]) and this point came up even then [3]. I also found there are subsets of Go aimed at filling this use case because of the GC issue [4] (eg Emgo [5], TinyGo [6]). The Fuchsia Language Policy [7] also points to this. Fun fact: the networking stack in Fuchsia was written in Go because of Dave Crawshaw, who was (and I assume still is) a big Go advocate. I got into an argument with him once about stop-the-world GC pauses in Go. Anyway, the Fuchsia project has largely been unhappy with this ever since because there is an overhead to using Go that essentially you can't get rid of. Using memory and object pools can solve many but not all problems. And at some point I suspect they'll replace the networking stack with something not written in Go. [1]: http://www-cs-students.stanford.edu/~blynn/c2go/ http://www-cs-students.stanford.edu/~blynn/c2go/ [2]: https://news.ycombinator.com/item?id=2535206 https://news.ycombinator.com/item?id=2535206 [3]: https://news.ycombinator.com/item?id=2535386 https://news.ycombinator.com/item?id=2535386 [4]: https://github.com/golang/go/issues/29147 https://github.com/golang/go/issues/29147 [5]: https://github.com/ziutek/emgo https://github.com/ziutek/emgo [6]: https://github.com/tinygo-org/tinygo https://github.com/tinygo-org/tinygo [7]: https://www.reddit.com/r/golang/comments/f92nkc/golang_is_not_good_for_fuchsia/ https://www.reddit.com/r/golang/comments/f92nkc/golang_is_no...
- riazrizvi 7y agoSo there's some conflict, but mainly the problem is that GC is a critical problem in real-time systems that cannot have performance interrupts. Languages for these applications need to be able to bypass GC.
- pjmlp 7y agoF-Secure's TamaGo supports full Go on bare metal, though. https://www.f-secure.com/en/consulting/foundry/usb-armory https://www.f-secure.com/en/consulting/foundry/usb-armory