|
|
|
|
|
by kennywinker
200 days ago
|
|
> Go is not for clever developers What “clever” code is required to write a BBS-over-IP? 99.99% of code isn’t clever and shouldn’t be clever. > It punishes you for trying to think about what you're building and to design sophisticated software, relying more on brute force. Can you give an example of this? I have not written much go, so i am unable to think of a case where golang encourages brute force over sophistication? |
|
They've explicitly stated that they wanted to discourage building abstractions, since "abstractions are hard to learn".
Concretely, this is evident in how channels and goroutines both poorly compose together, in part a result of the unsophisticated type system. It's difficult to build very generic libraries that can be leveraged as force multipliers, like the tokio-tower ecosystem does. You can do it, but it comes at performance costs or involves relying on codegen.
Google's Bazel build systems are designed around reasoning about and checking-in generated code, but the standard go tooling doesn't do this well and git workflows also don't really grapple with it well. This aspect of the design is very clearly an example of internal Google processes leaking out.