¿Por qué se hace referencia a Java versión 1.X como Java X?

58

Vi que Java 1.2 también se conoce como Java 2. ¿Se refieren "Java 1.x" y "Java x" (por ejemplo, "Java 1.6" y "Java 6") a la misma versión de Java?

Y si es así, ¿por qué la necesidad de esta dualidad?

Federico Zancan
fuente
77
Razones de marketing?
14
Aún mejor que Mozilla Firefox. Más de 10 versiones principales en menos de dos años.
Andrzej Bobak
2
Sí, razones de marketing. Esta pregunta SO es sobre el mismo tema.
Joachim Sauer
2
Uno podría expresarlo de manera diferente: ¿por qué Sun (y ahora Oracle) lanzó actualizaciones importantes (Java 5, 6, 7 y pronto 8) como lanzamientos puntuales (1.5, 1.6, 1.7 y pronto 1.8)?
Joachim Sauer
3
@AndrzejBobak Google Chrome es peor, se acerca a 20 versiones en 2 años
Izkata

Respuestas:

64

Sun Microsystems tenía en aquel entonces el mal hábito de pasar por numerosos cambios de nomenclatura para sus productos y, en primer lugar, usar un nombre confuso.

¿Qué hay en un nombre o qué significa "Java"?

Originalmente, el término "Java" se usaba para describir indiscriminadamente:

  • la lengua ,
  • la plataforma ,
  • y algunos otros se referían a JVM y Java Class Lib como solo Java también.

Número interno y externo

Con respecto a los números de versión, como otros señalaron, fue en parte debido al marketing, y en parte porque simplemente sentían que Java había hecho tal progreso, una actualización de versión principal era más adecuada (para Java 1.2 / Java 2, y cuando Java 1.5 / Java 5)

Entonces, lo que llamamos Java 2 fue en realidad Java 1.2 a 1.4. Java 3 y Java 4 nunca existieron, y pasamos directamente a Java 5, ya que intentaron explicarlo aquí (desde esta página sobre nombres y versiones ).

Probablemente también estaba un poco bien para no meterme con su numeración interna utilizada en sus sistemas de seguimiento y desarrollo. Tiendo a pensar en ello como 1.x = versión de idioma y X = versión de idioma y producto. Tiene sentido, ya que los usuarios normales no necesitan preocuparse por incrementos menores y actualizaciones, ya que fomentan las actualizaciones automáticas, y estos no deberían introducir ningún cambio en el idioma o el código de bytes.

Tenga en cuenta también que se vuelve más extraño cuando mira versiones menores y actualiza números. Por ejemplo, teníamos un Java 1.3.1 y posterior Java 1.4.1 y 1.4.2.

Actualizaciones

Sin embargo, no hubo 1.xy desde entonces, siempre ha sido 1.x.0_UPDATE:

Tenga en cuenta también que también verá actualizaciones a las que se hace referencia con cualquiera de estas convenciones de nombres:

  • como 1.5.0_22 o 1.7.0_04 (tenga en cuenta los 0s de relleno en la versión de actualización, alineados en 2 dígitos),
  • pero también 1.5.0u22 o 1.7.0u4 (tenga en cuenta que los 0s de relleno han desaparecido, ¡sí!).

Y para mayor confusión y para mantenerse al día con la tradición de Sun Microsystems, Oracle ahora lanza anuncios como este.

Nombres de productos

Tenga en cuenta también que no solo se acostumbraron a cambiar la numeración, sino también los nombres de las ofertas de productos. Entonces, Java 2 tiene J2SE (Java 2 Standard Edition), J2EE (Java 2 Enterprise Edition) y J2ME (Java 2 Mobile Edition). Desde la introducción de Java 5, estas convenciones y acrónimos se han eliminado (aunque algunos tienen una capacidad de recuperación increíblemente larga, principalmente gracias a las agencias de reclutamiento tontas que no tienen idea de lo que están hablando) a favor de Java SE, Java EE y Java ME , que a veces se abrevian, pero no deberían oficialmente, a JSE, JEE (bastante común) y JME.

Lea esta página para obtener más información sobre el sistema de versiones actual utilizado por Sun Microsystems y ahora Oracle desde Java 1.3.1 .

(Para obtener puntos de bonificación, intente buscar el historial de NetBeans ahora para ver que también fue renombrado algunas veces).

Ellos no se conocen

También están luchando para decidir si deben actualizar las referencias existentes o no. Por ejemplo, esta página sobre versiones anteriores utiliza el antiguo sistema de numeración para versiones anteriores, pero los nombres de productos más nuevos (Java SE 1.1, 1.2, 1.3 y 1.4 no se publicaron con esta convención de nomenclatura).

Tal vez solo están jugando con nosotros por diversión. ¿Quién sabe?

¿Qué pasa con el JVMS y JLS?

También se divirtieron nombrando y numerando allí, por supuesto.

La especificación del lenguaje Java solía publicarse con un sistema de versiones de "edición" de libros, siguiendo los números de producto. Entonces:

  • Java 1 tenía su "Especificación de lenguaje Java",
  • Java 2 tenía su "Especificación del lenguaje Java, 2ª edición".

Hasta aquí todo bien.

Excepto que la "Especificación del lenguaje Java" se reeditó más tarde cuando se introdujeron cambios de idioma en Java 5 (lo cual tiene sentido, no publicará nuevas ediciones de libros solo por diversión). Como era la tercera vez que lo editaban, lo llamaron (tada!) "Java Langauge Specification, 3rd edition".

Pero obviamente, la gente comenzó a preguntarse por qué 1.3 y 1.4 no tenían una especificación de idioma, o por qué Java 5 se combinaba con una tercera edición de la especificación de idioma.

Entonces, Java 7 ahora lo llama "Especificación del lenguaje Java, Java SE 7 Edition", aunque a menudo nos referimos a este como JLS7 para abreviar y evitar RSI.


No son los únicos ...

Para diversión adicional, mire el error de nomenclatura de Microsoft Windows RT o la locura de nomenclatura y numeración de Apple con iPhones, iPads o incluso iPods.

haylem
fuente
"tenga en cuenta los ceros al final" ¿Qué ceros al final?
Samuel Edwin Ward,
@SamuelEdwinWard: lo siento, mezcla de idiomas allí. Me refiero a los prefijos 0 después del _ entre el número de versión y el número de actualización.
haylem
Realmente no creo que eso sea lo que significa Porte-Manteau o Portmanteau.
Grady Player
@GradyPlayer: tienes toda la razón, en realidad. Gracias por señalar eso. (editar: actualizado el encabezado, eso fue bastante tonto de mi parte).
haylem
5

La respuesta corta: marketing.

Una respuesta más larga: la forma abreviada (por ejemplo, Java 6) es la llamada "versión del producto" y es cómo se comercializa Java para los usuarios y en comunicados de prensa, etc.

La forma más larga (por ejemplo, Java 1.6.0) es la "versión de desarrollador". Se usa internamente y los desarrolladores de Java también lo encontrarán (por ejemplo java.version, la propiedad del sistema usa la forma larga).

Vea estas páginas para más información:

GenericJon
fuente
2

Porque el libro con el título "Learn Shiny New Java 3" se agotará antes que el libro con el título "What's new in Java 1.3".

Entonces sí, se trata principalmente de razones de marketing. Por otro lado, no veo un crimen severo aquí. Después de todo, en algunos productos, como Mozilla o Chrome, el número de compilación principal se incrementa constantemente, y otros se limitan a incrementar el número de compilación menor, aunque, a veces, se producen grandes cambios con cada nueva versión.

Algunos, como Apple, no quieren dejarnos, usuarios, con nombres aburridos como "Mac OS 10.6".

Y Sun solía estar bien con N alias en lugar de presentar la versión "Java Green Diplodocus".

shabunc
fuente
44
Nota al margen: nunca hubo un Java 3, fue Java 2 SE 1.3 (o J2SE 1.3). Solo con Java 1.5 / 5.0 / 5 se eliminaron los números "1.x" en marketing. Sí, a pesar de que Java 1.2 (¡y 1.3 y 1.4!) Se llamaron "Java 2" ... marketing, ¡sí!
Joachim Sauer
1

TheServerSide explica el cambio de "Java 1.x" a "Java x" de la siguiente manera :

Sun ha cortado el "1". cambiar J2SE 1.5.0 a J2SE 5.0. La razon del cambio? Sun afirma que "esta es la actualización más importante de la plataforma Java y el lenguaje de programación desde su lanzamiento inicial hace casi una década", y que esta versión es digna.

Aparentemente hubo conversaciones para cambiar el nombre a "J5SE", pero se pensó que la marca J2EE significa demasiado para cambiar.

¿No son divertidos los números de versión?

Lea el comunicado de prensa: Sun presenta el lanzamiento de la plataforma Java más importante y avanzado en 5 años

Nota: Oracle elimina el enlace en la cita anterior . Por lo que puedo decir, está disponible en prnewswire :

Sun Microsystems, Inc. (Nasdaq: SUNW), el creador
y defensor líder de la tecnología Java (TM), presentó hoy Java 2 Platform
Standard Edition (J2SE (TM)) 5.0, la actualización más significativa de la
plataforma Java y el lenguaje de programación desde su lanzamiento inicial hace casi una década
. Conocida como Project Tiger, esta plataforma Java actualizada ofrece una facilidad
de desarrollo dramática , nuevas funciones de monitoreo y administración de aplicaciones, un
enfoque dedicado en el soporte de cliente enriquecido para el escritorio de la PC y un
rendimiento récord ...


En aras de la exhaustividad, tenga en cuenta que el estilo de versión 1.X no se ha eliminado por completo .

"Versión 1.5.0" utilizada por los desarrolladores

J2SE también mantiene el número de versión 1.5.0 (o 1.5) en algunos lugares que solo son visibles para los desarrolladores, o donde los programas analizan el número de versión. Como se mencionó, 1.5.0 se refiere exactamente a la misma plataforma y productos numerados 5.0 ...

También tenga en cuenta que, como se señala en los comentarios, el término "J2SE" utilizado anteriormente se ha cambiado más tarde a "Java SE".

mosquito
fuente
44
Afortunadamente, dejaron caer los nombres "J2SE" (y luego "J2EE") a favor de "Java SE" y "Java EE". "J2SE 5.0" solo estaba siendo tonto.
Joachim Sauer