On Wed, Oct 24, 2018 at 10:05 AM, Michael Jones <michael.jo...@gmail.com> wrote:
>
> Agree on the industry dynamics observation--I remember too--but want to
> raise another point of view on 100% backwards compatibility: when Go was
> just a baby, in pre-1.0 days, there was exploration and new ideas. There was
> also "Go Fix" to rewrite "go of the past" as "go of today." This seemed
> genius to me in a systemic way; it meant that even bold changes could be
> easy and 100% reliable to change. It worked.
>
> I'd like to see this mindset extended in two ways: to rewrite Go to new
> idioms and to rewrite Go 1 to Go 2. On the idioms front, if the standard
> library now appreciates read-from over write-to, then let's autoidiomatize
> it. If new Go 2 error checking is introduced, let's design the rewrite
> system and the feature in concert.
>
> I like this mindset and wonder if it could be sufficient to allow
> introduction of breaking changes. This is my question here--would rewrite
> fool assurances be enough to feel compatible in the way sought by the OP?

`go fix` was cool and we should resurrect it where appropriate as we
change the language.

But I think that at this stage of the language evolution `go fix` is
not enough to permit redefinitions of code.  We can use `go fix` to
handle removals from the languages: cases that no longer work, that
can be rewritten to a form that will work.  But where we have cases in
which the same code works one way in Go 1.N and works a different way
in Go 1.N+1, `go fix` is insufficient, because we no longer know
reliably what meaning was intended by the author of the code.  Before
Go 1 we could assume that everybody always meant the current version,
whatever that was.  I don't think that is true today.

Ian

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to