3 ms·
> One thing that hasn't changed is their amazing commitment to not breaking existing code. Er, are you sure? * https://x.com/zigo_101/status/18561730258399603
by tapirl 2y ago
> One thing that hasn't changed is their amazing commitment to not breaking existing code.
Er, are you sure?
* https://x.com/zigo_101/status/1856173025839960333 https://x.com/zigo_101/status/1856173025839960333
* https://x.com/zigo_101/status/1854918262523621805 https://x.com/zigo_101/status/1854918262523621805
* https://x.com/zigo_101/status/1854213142177624169 https://x.com/zigo_101/status/1854213142177624169
- arccy 2y agohow obnoxious can you be with constantly reposting these
- hu3 2y agowow! I thought you were exaggerating but on a quick glance, their presence in HN is mostly about criticizing Go.
- tapirl 2y agoI wrote many Go articles praising Go: https://go101.org/ https://go101.org/ I am neither a no-brainer Go hater nor a no-brainer Go lover. Good is good, bad is bad. All my articles/posts are based on facts.
- tapirl 2y agoI only post facts. :D
- arp242 2y agoYou need to stop doing this. It's now at the point where you're derailing every other Go thread with this. Quite frankly, it's becoming obsessive. I'm not saying you can never mention this, but you need to stop derailing every other Go thread. In many cases you post it more than once (two here). In other cases it's bizarrely off-topic (e.g. the Russ Cox resigning thread).
- tapirl 2y ago> You need to stop doing this. It's now at the point where you're derailing every other Go thread with this. This is not true. I haven't posted any comments in many Go threads. I only comment when it is related. And most gophers have not been aware of the problems of the new semantics of 3-clause "for;;" loops and it looks Go official don't have the intention to let them know. So I do it. I think this is good for the Go community.
- foldr 2y agoThe loop variable change doesn't break existing code because the new behavior kicks in only if you update the Go version in go.mod.
- tapirl 2y agoIt is not that simple. For some Go scripts without go.mod involved, Go 1.22.n toolchains break backward compatibility for sure. Go core team have admitted this but refused to fix it for Go 1.22.n toolchains: https://github.com/golang/go/issues/66092 https://github.com/golang/go/issues/66092 And, even for the Go code with go.mod involved, there are some behavior change cases which will be not detected in time when you update the Go version in go.mod. Please read https://go101.org/blog/2024-03-01-for-loop-semantic-changes-in-go-1.22.html https://go101.org/blog/2024-03-01-for-loop-semantic-changes-... for such cases. Now, no tools can detect some of the cases. The more serious problem than behavior changes is, with the new 3-clause "for;;" loop semantics, it is more error-prone to use loop variables. Making the semantic change (on 3-clause "for;;" loop) might be the worst decision made in Go history.
- foldr 2y agoYou've made your point about the new for loop behavior many times. As others have also pointed out, people just don't agree with you about this. They're not going to suddenly start agreeing if you keep posting the same thing over and over again. (Now that I type this out I'm sure I could stand to learn the same lesson on a few topics!)
- tapirl 2y agoThe facts in my comments are for the people who need them. Maybe you are not one of them. But then why do you so care about it?
- linhns 2y agoHow many go scripts nowadays come without go.mod? I would hazard a guess of only 0.00001%. And since it’s without go.mod, it shouldn’t be used anyway.