Hey guys, I just published the Go 1.x / Go 2.x proposal to "Immutable Types" that I've been working on for the past month and it's now official:<p>https://github.com/golang/go/issues/27975<p>Please be sure to check it out and feel free to join the conversation! Even if this feature is never introduced to the language specification - reading the design document will make you a better Go developer, that I guarantee!<p>original design document: https://github.com/romshark/Go-1-2-Proposal---Immutability
Hi,<p>my humble opinion: how much would "Immutable Types" add to the language? How much complexity would it add?
Things can already be made immutable from outside by hiding them in private variables/struct elements.<p>The question is: why did Go became successful without having "Immutable Types"? (or "Reference Types", ADTs too please?)
Maybe those things are just frills, "nice to have" features.<p>Example like "type ImmutableMapAndKey const map[const * const Object] const * const Object" looks like really ugly Go to me... this is starting to look like C++...<p><a href="https://www.youtube.com/watch?v=cQ7STILAS0M" rel="nofollow">https://www.youtube.com/watch?v=cQ7STILAS0M</a>
(why Golang is Sucessful by Creator of Golang Rob-pike)<p>P.S.: I wouldn't mind having "Immutable Types", "Reference Types", ADTs, etc. in Go. But not if it means abandoning simplicity of the language.