> On May 8, 2020, at 11:26 AM, Jonathan Gibbons <jonathan.gibb...@oracle.com> 
> wrote:
> 
> On 5/7/20 11:48 AM, Dan Smith wrote:
>> This isn't a one-time change. I'm sure there's more work to do in JLS and 
>> JVMS, as the need arises, and various other parts of the ecosystem 
>> (reflection APIs, javac error messages, javadoc output, JDK code internals, 
>> third-party tools, etc.) may want to similarly make changes, as needed and 
>> practical.
> 
> I presume we will not try and change the names of declarations in the public 
> API, right?  Do you have any suggestions on how to "handle" these 
> declarations, such as some boilerplate text to correlate the declared name 
> with the standard terminology?

Sure, what we're talking about is "preferred terminology". Where there are 
compatibility constraints requiring a different terminology, a change is 
unlikely to be worthwhile. (Any particular examples you're wondering about, 
though?)

On the other hand, there's text like this from the java.lang.Class javadoc that 
could definitely use revision: "An enum type and a record type are kinds of 
class; an annotation type is a kind of interface."

So, generally, I'd just suggest using the appropriate terminology in text, and 
*maybe* including a note about how API names are different "for historical 
reasons". (I'm not sure there's really a need most of the time, though. I don't 
think there's anywhere in java.lang.Class where we say "Class isn't such a 
great name for this abstraction, what we actually mean is ...".)

> What is the expected timeline for this work to start making it into JDK 
> releases?   For example, when should we be looking to update the javadoc tool 
> to use the new terminology in the places where the tool is responsible for 
> generating content?  "Annotation Type" is the primary/biggest example that 
> comes to mind.

As I've explained earlier in the thread, the goal here isn't really to invent 
some new terminology, it's to iron out inconsistencies. So I don't think 
there's any need to, say wait for JLS changes to be finalized before talking 
about "annotation interfaces" in javadoc. People should understand what that 
means.

But I can understand wanting to wait—in which case, there's a dependency on 
these changes in order for records to be final. Assume that's JDK 16.

On the other side, I don't think there's anything wrong with waiting. Like all 
technical debt, there's an opportunity, but not necessarily an obligation, to 
make some changes here. Fixing it *eventually* is probably a good idea, but it 
may not be urgent.

Reply via email to