There was even a comparison to `goto`...? What am I missing?
There was even a comparison to `goto`...? What am I missing?
With or without pointers, as a programmer you'll have to understand passing by value and passing by reference. Go just makes it explicit in a language construct.
Your second paragraph seems to invalidate your first?
Go pointers make references and values quite visible to the programmer, because in the real world it's not actually convenient to hide those details.
Go's pointers are certainly BETTER than C++ pointers, but I don't think that immediately makes it better. BOTH languages have value and reference semantics, and BOTH languages use syntax to dogwhistle that to programmers.
...that said, I don't really see the problem either, except in that it will make go less 'simple' to read and understand.
It will if you mark the alias as deprecated. Unfortunately, there seems to be no standard way to do that in Go.
Preventing it in the first place is a much more effective method.
I was thinking in terms of upgrading a library to a newer version. It’s nice to at least get warnings for everything you’ll need to update, even if it doesn’t make it any easier to actually do so.
Which probably will defeat the point of using Go... its main selling point for me it is its simplicity. If they keep making it more difficult to work with, I might just end up going back to C++
I honestly think you're just being dramatic here, there's no way Go catches up to C++ in that respect any time soon.
On this metric, Go scores 1 (just Go itself), and C++ scores 3 (C preprocessor, C++ itself, C++ templates).
Reflection especially with plugins, are essentially another language that is even more difficult to track down than macros (or templates). Though you can at least write Reflection using go.
I don't think the language as a whole is getting any simpler.
Most language designers generally say that if your language requires a sidecar development environment to be reasonably productive, you've failed at your design tasks. Tools should be time saving helpers, not requirements to understand and navigate even basic code structures.