JEPs proposed to target JDK 9

David M. Lloyd david.lloyd at redhat.com
Mon Oct 27 14:23:53 UTC 2014


On 10/24/2014 11:01 AM, Brian Goetz wrote:
>>> Feedback is more than welcome, as are reasoned objections.  If no such
>>> objections are raised in one week's time (i.e., by 2014/10/30 23:00
>>> UTC),
>>> or if they're raised and then satisfactorily answered, then per the JEP
>>> 2.0 process proposal [1] I'll target these JEPs to JDK 9.
>>
>> I still object to removing _ (one of only two legal single-symbol
>> identifiers in Java) as an identifier.  I believe that if a special
>> identifier is desired, a new, previously unused character should be used
>> instead, such as #.  This has the advantage of not breaking existing
>> frameworks (including two of my own), as well as being visually distinct.
>
> I realize that you don't like this choice; you were even in the room
> when the decision was made (you were on the JSR-335 EG), and you raised
> this concern at the time.  And it was considered, and discussed.  Of
> course, not everyone will agree with the decision; that's what happens
> when you have 9 million opinions, especially on something as
> opinion-prone as syntax.

To clarify for outsiders, on this particular issue there were only two 
opinions that I am aware of: mine and Brian's.  I recall that most of 
the input to this seemed indifferent and Brian simply made a ruling, 
which was his right as specification lead, but I don't recall that there 
was really a lot of due reasonable consideration of alternatives.

>> I do not believe that referencing existing non-Java languages is a valid
>> reason for doing this.
>
> This is a valid opinion, and certainly "but language X does it this way"
> is not a strong enough reason to do anything.  However, the use of _ as
> an "I don't care" token is nearly universal in languages supporting
> pattern-matching, and we concluded that its eventual possible use for
> such features outweighed the very small number of "but my codebase
> already uses it!" concerns.

Again, I think this was largely you speaking with the group's voice.  In 
fact the only non-neutral feedback I've ever gotten from anyone external 
(granted with a small informal sample group) has been that using a new, 
previously unused symbol (specifically #) is better than breaking 
compatibility.

> (Observation: this is one of the very few times we've made the conscious
> choice to make an incompatible language change for the sake of making
> things better in the long run.  When we do this, people complain; when
> we don't do this, people complain.)

It should be emphasized here that making an incompatible language change 
is not in any way *necessary* to make this particular improvement; in 
this case, language compatibility would be broken purely for a 
subjective style choice.  I don't oppose the improvement itself (not on 
these grounds anyway), but it should never be implied that removing _ 
from the identifier space is necessary to make this change.

> So, I understand your concern, and I'm not saying your concern is
> totally invalid (every issue has many sides), but you are not now
> bringing any *new* information to the discussion -- this concern was
> raised and understood and considered at the time the decision was made,
> and nothing has really changed since then, so I see no reason to to pull
> the emergency brake cord on this train-already-in-motion.

Again, as far as I know this issue has only two sides.

-- 
- DML


More information about the jdk9-dev mailing list