4 ms·
> There were a lot of good ideas over the years (especially in Plan 9) and Go is really just a modern, polished revision of those ideas glued together. Plan 9
by ilovecaching 8y ago
> There were a lot of good ideas over the years (especially in Plan 9) and Go is really just a modern, polished revision of those ideas glued together.
Plan 9 is an operating system. If you're referring to goroutines, CSP is completely unrelated to any of the work done at Bell Labs. That was Hoare. Go also kept a ton of terrible ideas, like nil, void (interface{}), and default mutability.
> Go is a _systems_ language at heart.
It really bothers me when people say this, because it's just untrue regurgitation from the Go team. It's not a systems language. It's a language that's pretty good for small web services. It has expensive interop (Solomon Hykes commented on this during one of his Gotime interviews) with C (even the Go team says cgo is not Go).
> It's easy to drop into assembly for ultimate optimizations.
You can only drop down into Plan 9 assembler, which is essentially useless. Write me an SGX lib without cgo in x86 and you can make that claim.
- pjmlp 8y agoPeople are doing OS research in Go, and Fuchsia core components like the TCP/IP stack are written in it, regardless of what the HN crowd thinks where Go should be used. https://github.com/mit-pdos/biscuit https://github.com/mit-pdos/biscuit https://github.com/ycoroneos/G.E.R.T https://github.com/ycoroneos/G.E.R.T Last version of Plan 9 was actually Inferno, which HNers keep forgetting about, which used Limbo for userspace code. Limbo uses the channel syntax later adopted by Go.
- lossolo 8y agoA lot of your claims about Go are false. > It's a language that's pretty good for small web services. I know projects in production running HUGE web services written in Go serving millions of reqs/s. If that's small for you then I don't know what large is. Look at techempower benchmarks[1] and additionally compare the source of actix-raw (Rust) to fasthttp (Go). OS written in Go: In experiments comparing nearly identical system call, page fault, and context switch code paths written in Go and C, the Go version was 5% to 15% slower. Read the paper[2] 1. https://www.techempower.com/benchmarks/#section=data-r16&hw=ph&test=plaintext https://www.techempower.com/benchmarks/#section=data-r16&hw=... 2. https://www.usenix.org/system/files/osdi18-cutler.pdf https://www.usenix.org/system/files/osdi18-cutler.pdf