There's also a different way to look at this:
Now, a type declaration using '=' has finally become like any other declaration: It simply binds a name to a type, and that name denotes exactly that type.
In fact, our prior "named type" declaration was always doing more, we just never talked about it a whole lot (though the section on type declarations is pretty explicit about it): It creates a new type _first_, before the identifier is bound to it (this is somewhat similar to a variable declaration, which also does two things: it reserves space for a variable, i.e., it "creates" the variable, and then binds the name to that variable).
It just so happened that the language doesn't have any specific operator to create such a new type besides using a type declaration; and thus each such newly created type had a name and vice versa. We didn't bother coming up with an explicit term for that type, and because of the 1:1 relationship with names, we called them named types.
Now, a named type is simply a type with a name. And that is just fine. It actually simplifies a lot of things.
We just need a way to refer to these newly created types. We've been alluding to this for a while now; and the design doc mentions this as well. As an aside, other languages do exactly the same. Modula-3 has the notion of a "branded" type, and in C++ the equivalent is a named struct or class. In all these cases, the type name is just a name that happens to point to a type that's been created on the spot and that's different from any other type.
So yes, there's a terminology change. And yes, it's annoying for long-time Go users. But it's also the long-time Go users who will get over this very quickly. And the new Go users (of which there are going to be way way more then existing Go users, assuming Go use continues to grow), they won't care because they just get used to the new terminology.
In summary: Let's agree on a spec change and then let's just get over it.
- gri