3 ms·
Go is brilliant for what I don't have to do. Go doesn't have a build system, so I don't have to learn that. (I spend every second I'm using Gradle to curse it'
by iamcalledrob 3y ago
Go is brilliant for what I don't have to do.
Go doesn't have a build system, so I don't have to learn that. (I spend every second I'm using Gradle to curse it's very existence -- and wish I had `go build`)
Go cross compiles natively, so I don't have to think about the toolchain.
Go has go:embed, so I don't have to think about bundling/packaging as a separate step.
Go has fantastic backwards compatibility, so I don't have to spend time getting an old project to even build.
Go's stdlib is extremely high quality, so much so that I've never run into a serious bug in it.
When jumping into other ecosystems, I'm shocked at how much time is spent fiddling with build scripts, packaging, deprecations, unfixed bugs in the tooling etc...
Still wish it didn't explode on null pointers though. And any large dependency authored by Google will be unidiomatic and over-complex, of course (see: grpc)
- deleted 3y ago[deleted]
- bscphil 3y agoVery well said. As someone who rarely touches Go (only used it for a couple of simple web servers, something like a WebSub subscriber), you've named much of what I like about it. I'd love to see more languages achieve all these features, or even make that a goal. I'd also mention how great the documentation is. Truly best in class. For instance, see https://pkg.go.dev/net/http https://pkg.go.dev/net/http * Has enough examples to fully understand how to use the package. * Links to the individual source code files so you can read those if needed. * Has a highly visible link for reporting vulnerabilities. * Has a great search tool accessible with a keyboard shortcut. * Clearly marks deprecated functions. * The page even works without Javascript enabled.
- iamcalledrob 3y agoAbsolutely. The documentation is first class, and I took love how easy it is to jump into the source. Often, reading the source helps me understand how a package is meant to be used. Other ecosystems seem to have a "don't worry yourself about that" approach to viewing a package's source, and it's maddening. In contrast to Go, trying to get from docs to source code in the JVM ecosystem is by no means straightforward.