6 ms·
I picked up Go in 2012 as a Python dev in need to doing some bit twiddling over the wire for Modbus. I never shipped that code but it blew my mind how easy it w
by leetrout 3y ago
I picked up Go in 2012 as a Python dev in need to doing some bit twiddling over the wire for Modbus. I never shipped that code but it blew my mind how easy it was to just twiddle those bits and bytes and it just worked.
A decade later and a couple almost full time Go jobs under my belt and it still surprises me how well most things Just Work™.
I love the Go language and I love the Go community.
I appreciate what Rob, Ian, Russ and the others do for Go and I appreciate that this talk / blog is honest about the "bumps in the road" working with the community. There's not much point in beating a dead horse around this but having lived through it I find it very hard to believe they didn't know exactly how they were behaving, especially in regards to the package management debacle. Never the less the blog is also correct that we have landed at a very good solution (Drew's legitimate complaints aside).
Here's to another 10 years of Go and the inspired / similar languages (Zig, Deno, etc) and hoping we continue to grow as a healthy community.
- zozbot234 3y agoZig and Deno are not very comparable to Golang I think. Elixir and ReasonML would be more like it. From Google themselves there's also Dart.
- antod 3y agoBeing that Deno is tooling rather than a language, I think it is safe to say it is inspired by / comparable to Go tooling. To me it feels like writing JS/TS with Go tooling.
- biomcgary 3y agoMy favorite thing about the core Go team is their willingness to say "No" (to all sorts of stuff) and "Wait for the right implementation" (for generics). I'm a computational biologist rather than a programmer, so my use of Go waxes and wanes, but when I come back to Go, my code compiles and the language works the way I expect. That being said, I do appreciate Rob Pike's willingness to admit mistakes on the learning curve on community engagement without capitulating on adding all the shiny objects.
- zozbot234 3y agoWrt. generics they followed in Java's footsteps: they asked the PLT community to come up with a reasonably elegant model that would mesh well with the rest of the language, and then largely stuck to that.
- erik_seaberg 3y agoIt took years to root out and torch flawed APIs from the JVM ecosystem. After that example, it’s hard to defend neglecting the problem again and launching with no solution.
- zdragnar 3y agoNo language launches perfectly. If the cost of adding generics later is "existing code still works, and now this can work too" versus "the old version of genetics is flawed, burn everything down and use this version instead" or "generics didn't work out the way we wanted, use this new thing that's totally-not-generics-wink-wink"... Well, I'd say waiting is the right call. You're already used to adding three extra lines of boilerplate after every single line of code for error handling, living without generics wasn't that hard. Hell, I recall half the go community was convinced they weren't needed at all by the time they came around.
- masklinn 3y ago> No language launches perfectly. There's a gulf between "not launching perfectly" and launching with obvious, blatant deficiencies. Go did the latter. Generics were always going to have to be implemented eventually, at least two languages in basically the space Go was targeting had had to bite that bullet in the decade before it was published. Support for third-party external dependencies only made that more dire. Instead of doing the work up-front and launching with generics, they decided to launch with ad-hoc generic builtins and "lalala can't hear you" for a decade, then finally implement half-assed generics.
- kaba0 3y ago
- theshrike79 3y agoA Python convert here too. Currently I've been using different AI tools (Bard, GPT-4) to just straight-up convert my old python utilities to Go. There are a few that worked right out of the box, for a few I've had to adjust stuff mostly because of the AI model's information about APIs being a bit out of date. But the fact that I can just scp a program to a server and it Just Works is amazing compared to the "what's the current venv system du jour" dance I had to do with Python every time.