Comentarios de implementación
Este es un ejemplo de comentario complejo, que contiene referencias a múltiples localizadores del documento, así como a direcciones adicionales.
Un comentario como este es un documento con entidad propia, que puede tener comentarios, versiones alternativas (como traducciones), etc. como cualquier otro documento externo.
Al trabajar con un formato interno, podemos ampliar la semántica de los elementos (particularmente de los enlaces de anotación).
Los comentarios/anotaciones tienen la problemática de saber a qué versión o versiones de la referencia son aplicables. Por ejemplo no es lo mísmo marcar una falta de ortografía que refutar una información errónea.
Si los documentos están sujetos a revisión, así puede surgir el problema de que los comentarios pueden dejar de estar vigentes en la nueva versión. No solo habría que notificar a los autores, si no que habría que identificar qué elementos subyacentes han cambiado para advertir de irregularidades. De otra manera un provocador podría jugar a "torear" a otros interlocutores, publicando primero algo horrible que suscitara una fuerte condena, para después sustituir el contenido inicial para hacer quedar mal a los adversarios.
Información
Anotación sobre sección 3.1.5 de "Normativa de Codificación Java".
Título: Lista incorrecta.
Tipo: Crítica dura, referencia autorizada(oracle.com), corrección, etiquetas(ncj.evidencia)
Contiene anotaciones adicionales:
  • Corrección: Supresión "threadsafe"
  • Corrección: Supresión "byvalue"
  • Corrección: Inserción "También son keywords throws ..."
  • Corrección: Supresión "En Java existen palabras ..."
Comentario
 

La lista de palabras clave descrita es errónea. No es que haya cambiado en el tiempo, si no que ya era errónea cuando se redactó inicialmente (Java 1.1, año 2000 o anterior).

La lista correcta y actualizada se puede encontrar en la documentación oficial sobre las palabras reservadas en Java

Las palabras byvalue y threadsafe no son palabras reservadas, y nunca lo han sido. [Sugerida corrección]

Las palabras throws y volatile sí son palabras reservadas (desde Java 1.0), y han sido omitidas. [Sugerida corrección]

Las palabras assert (1.4), enum (5.0), strictfp (1.2) son de incorporación posterior.

Por otro lado se están distinguiendo las palabras que se reservan para un posible uso futuro en Java (sección 3.1.6). Quizás no sea una distinción pertinente desde el punto de vista del programador. Sin embargo las palabras goto y const incluidas en la lista de palabras clave, siempre han sido reservadas y nunca utilizadas. Por el contrario todas y cada una de las palabras mencionadas como reservadas, en realidad no lo son. Se podría comprobar como cualquier compilador Java da por buena la siguiente declaración:
int cast, future, generic, inner, operator, outer, rest, var;

 

Si se me permite hacer un juicio, a mi modo de ver este fallo garrafal es inaceptable en una normativa de codificación, y deja en mal lugar a sus autores, sus revisores y a sus acérrimos defensores.

-- Javier Aranda 18/11/2011 20:02 CET --