8 ms·
Something I don’t see the Go team get enough praise for is their ability to bring major language changes like generics into the language in an actually backward
by shakezula 5y ago
Something I don’t see the Go team get enough praise for is their ability to bring major language changes like generics into the language in an actually backwards compatible minor version update.
If nothing else, I find myself choosing Go frequently because it’s not going anywhere and it’s not changing.
- Zababa 5y agoMany people seem to think that the language could and should have included them from the beginning. Java followed the same exact history 15 years before Go, C# too. Many of the people that didn't think that Go should have generics may not really care or be happy that they are now in the language. That may explain the reaction.
- handrous 5y agoI wish vendoring in deps and/or monorepos were better-supported. That's the only thing that gives me pause with Go. Everything else about it is great from a "can this easily be built a couple years from now, if it's not been touched in the meantime?" perspective, but the defaults there strongly favor future breakage and last I checked make it a huge pain to take measures to avoid that problem, which is weird. [EDIT] oh, they added a command for that, "go mod vendor", I guess, and I just missed it somehow. Nice. [EDIT EDIT] On further reading the feature's practically built of rough edges and you're probably gonna want 3rd party tools to manage it if you value your sanity. Hmph. Well, that sucks.
- jatone 5y agoive been trying to get them to fix vendoring and modules. they've been incredibly obtuse about the whole situation. =/
- shakezula 5y agoThey do appear to be addressing some of those rough edges in 1.18 with the ability to specify a working mod file separate from the normal go.mod file, but you're not wrong, vendoring has some rough edges for sure.
- masklinn 5y ago> Something I don’t see the Go team get enough praise for is their ability to bring major language changes like generics into the language in an actually backwards compatible minor version update. I don't really see how that is at all praiseworthy: C# and Java already did that exact thing. Plus the entire peanut gallery has been saying generics were necessary from the very first announcement (or at least the first where readers realised there were no generics) so this is a completely self-inflicted wound.
- vanderZwan 5y ago> I don't really see how that is at all praiseworthy: C# and Java already did that exact thing. You know, in sports, when someone manages to do something only two other athletes have managed before they usually still get praised for it. I don't know if this situation is comparable to that, but my point is that I also don't see how C# and Java doing this before inherently would make this less of an achievement. Perhaps we haven't been giving those languages the praise they deserve for doing that too.
- shakow 5y agoYou know, in sports, if you finally can complete the basics known for 5 decades after years of training, no one will praise you.
- shakezula 5y agoArguing that generics are in "the basics" is a little disingenuous, don't you think? Go has been wildly successful without generics, and the designers of the language were quite intentional and opinionated in leaving them out.
- pjmlp 5y agoThe basics appeared into the scene via CLI and ML in 1976/78. Plenty of time. There were also plenty of successful languages without generics in the last century, that doesn't mean we should keep designing them.
- OJFord 5y agoBackwards compatible as in old code still compiles? Can you explain why that would be hard? I'm not asserting it wouldn't be, just missing something. Don't you just need to add allowable syntax that would previously raise an error?
- killingtime74 5y agoExactly, it's not like it runs in a VM