4 ms·
Go is good, it's just that its designers went half way through the design of the language and said "fuck it, we're done". They came up with implicit interfaces
by camus2 10y ago
Go is good, it's just that its designers went half way through the design of the language and said "fuck it, we're done".
They came up with implicit interfaces, they didn't make them covariant, and they barely used them in the std lib itself.
They came up with multiple return values, they didn't think it would have been more useful for the programmer to get tuples and destructuring in practice.
They came up with struct tags, they didn't think fully typed annotations would have been more useful.
And then they exposed all the language internals in the reflect package,to make up for Go shortcomings with serializing,deserializing data, which made refactoring go internals in a backward compatible way an impossible task.
The worst idea is go generate. It shouldn't even be here. Littering source code with pragmas and forcing people to write 3rd party executable and maintain manifests isn't simple,readable,maintainable or elegant. Macros with reification would have been a bit more honest.
Go relies way too much on runtime behavior for a statically typed compiled language, This is absolutely undeniable.
The irony is that Rust, with garbage collection instead the borrow checker, would have been a better implementation of Go than Go itself. But it seems we'll never get that language.
- swagpapi420 10y agoHave you heard of Scala or F#?