On Mon, Apr 25, 2022 at 1:19 PM Brian Goetz <brian.go...@oracle.com> wrote:
> Changing from a B2 -> B3 changes the default spelling from "L" -> "Q". > Why does this have to be done atomically? > > (First note that I'm thinking in terms of source compatibility, if that makes a difference.) I mostly just mean that anyone anywhere might be counting on the type being nullable. Is it possible to fix all that code ahead of time to be nullness-agnostic, i.e. the very same code works whether the type is nullable or not? I feel like it would be hard to get *everything* that way. > 6. It's very nice when the *new syntax* corresponds directly to the *new > thing*. That is, until a casual developer *sees* `.val` for the first time, > they won't have to worry about it. > > That's nice initially but a few releases after B3 values are available > will we still want the syntax to highlight (scream?) "new thing”? > > Yes, that’s the risk. (Still, primitives today LOOK DIFFERENT from class > names.) > Indeed I could have phrased it that way: it's nice when the thing that IS different is the thing that LOOKS different. It's not the language wearing its history on its sleeve. It's a good outcome in perpetuity imho. -- Kevin Bourrillion | Java Librarian | Google, Inc. | kev...@google.com