News for hackers. Stuff that matters.
Re:Go 1.14.2 and Go 1.13.10 are released by throw_m239339 on Thursday April 09, 2020 @08:16AM (#22821810)
There won't be any interesting thing anytime soon due to the strong belief in the "status quo" framed as "stability" in the Go community. The people in the community (thus outside google) like me that wanted (very minor) changes are long gone.
Re:Go 1.14.2 and Go 1.13.10 are released by tmountain on Thursday April 09, 2020 @09:16AM (#22822219)
Can you give some examples of minor changes that were rejected outright? Just curious.
Re:Go 1.14.2 and Go 1.13.10 are released by jonfw on Thursday April 09, 2020 @09:44AM (#22822457)
I'm not really involved in the Go community, but I've read a lot of arguments about it's lack of generics.

Here's a document I've found that summarizes the discussion- I thought it was a really interesting read given my lack of background in language design - https://docs.google.com/document/d/1vrAy9gMpMoS3uaVphB32uVXX...

Re:Go 1.14.2 and Go 1.13.10 are released by garfij on Thursday April 09, 2020 @10:05AM (#22822633)
I don't know if I'd qualify the addition of Generics as a "minor change"
Re:Go 1.14.2 and Go 1.13.10 are released by yiyus on Thursday April 09, 2020 @09:53AM (#22822539)
That's as far of a minor change as it can be.
Re:Go 1.14.2 and Go 1.13.10 are released by verdverm on Thursday April 09, 2020 @09:42AM (#22822432)
Is there something wrong with a stable language?

Why is there a need for features that you like from other languages?

Re:Go 1.14.2 and Go 1.13.10 are released by cy_hauser on Thursday April 09, 2020 @01:42PM (#22825168)
Why do you assume they're features the parent liked from other languages rather than features to make Go a better language?
Re:Go 1.14.2 and Go 1.13.10 are released by jchw on Thursday April 09, 2020 @02:43PM (#22825807)
I don’t know about you, but I don’t often feel a yearning to have a brand new language feature that’s never been thought of before; if it’s never been deployed in any existing programming language, you’ve got a whole lot of ground to cover to even just prove it out.
Re:Go 1.14.2 and Go 1.13.10 are released by cy_hauser on Thursday April 09, 2020 @03:47PM (#22826436)
Not sure I understand? "...a brand new language feature that’s never been thought of before..." would that even be possible?

I was referring to features that may be in various other languages and not wanting them in Go just because they were "liked from other languages." I want them in Go "because they make Go a better language."™

Re:Go 1.14.2 and Go 1.13.10 are released by verdverm on Saturday April 11, 2020 @02:59PM (#22843393)
https://curlang.org is a langauge that comes from go but is logical and unifies. Recursion is about to be removed from the language. It's real interesting both as a project and in theory
Re:Go 1.14.2 and Go 1.13.10 are released by jchw on Thursday April 09, 2020 @07:51PM (#22828470)
But with no practical experience in using these features, it’s basically impossible to know anything about how they would work and whether it would lead to Go being a better language. If they did not have a positive experience with these features in other languages, and also have good reason to believe it would port over and be a good impedance match for the language and community, there’s a lot of ground work to be done.

People can debate things like the complexity of compilers, parsers, etc. till the cows come home, but at the end of the day programming languages are just as much about the users as they are the actual code and specifications. Go succeeds not because it is perfect but because it has an ethos that resonates with its userbase. There is a “Go” way of writing things: flat happy path, handle every error explicitly in some way, using struct tags to hold metadata and schema information, and so on.

Meanwhile, most people who are talking about features in Go are really talking about two things: generics and exceptions/error handling. A lot of long time Go users don’t support many such proposals. And it’s not because either of those things are awful (although I don’t like exceptions.) In fact I like and use languages with either. Rust is great no doubt, although I can not claim to be an expert. All the same, Go does not need to be another Rust.

Why not generics/better metaprogramming? Because “it’s complicated.” Go takes different trade offs like using runtime reflection at the cost of CPU cycles and type safety. It works well in many cases. Generics complicated the language, of course, but moreso, it adds a new way of solving problems in an ecosystem that has already adapted to not having generics. All kinds of things may need to be re-imagined.

This is exactly why I like the Go contracts design: it offers a very limited solution to the problems that reflection do not solve so well, without a ton of implications for the remainder of the language.

Why not error handling? Of course, as usual, it adds complexity to the language/compiler/toolchain, but I also just don’t feel like there’s a problem. Go error handling is a little verbose, but its explicit and simple. Like many other things in Go, the resulting code looks dumb, but that’s what many of us like about Go. The code is dumb and simple.

And these are all features that are pretty well explored in other programming languages that are well-liked. I can’t imagine allowing too many additional features, which become part of the language and are probably stuck as such for compatibility reasons, without a real ton of research.

Re:Go 1.14.2 and Go 1.13.10 are released by _JamesA_ on Thursday April 09, 2020 @08:19AM (#22821829)
Where did they go and why?