¿Qué versión de Java utilizas en tus proyectos? ¿Y por qué?

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de benek

Navegando por la red,

Navegando por la red, encontré un artículo en el cual publican los resultados de una encuesta sobre la versión que más se está ocupando actualmente en los proyectos. La encuesta era acerca de desarrolladores de USA (y de la cual no recuerdo el link), en la que sobresalía el uso de la JDK 5.

Ahora me gustaría saber aquí en México como andamos en el uso de la JDK para desarrollar nuestros proyectos, ya sean personales o corporativos.

:-)

Imagen de ezamudio

razones

pero seria interesante ver por qué, no? sinceramente yo uso la 5 porque no tengo JDK 6 en Mac. En algunos deployments en Linux esta la version 6 pero echamos ahi lo que compilamos en la version 5.

Alguna vez tuvimos que regresar a la version 5 porque resulta que habia un bug en ConcurrentHashMap que lo hacia lentisimo y en la 5 no habia ese problema... y yo estaba usando esa clase.

Uno de mis proyectos open source (j8583) esta en JDK 5 tambien pero le puse compatibilidad hacia 1.4 porque algunos usuarios me lo solicitaron, aunque la version principal es en JDK 5.

Given the choice of dancing pigs and security, users will choose dancing pigs, every single time. - Steve Riley

Dando razones.

Para fines propios siempre utilizo JDK6, sin embargo en los proyectos con empresas utilizo JDK1.4 y esto se debe a que los servidores con los que trabajan muchas empresas ya son obsoletos y trabajan unicamente con esa versión imponiendo la restricción. Por eso vote por la 1.4 :-(

Imagen de ezamudio

JDK 6

Casi año y medio después ya puedo decir que estoy migrando de JDK 5 a JDK 6. Ya tengo Java 6 en mi mac, a 64 bits; el bug de ConcurrentHashMap ya fue resuelto hace tiempo. En producción ya llevo un rato usando JDK6 aunque están corriendo puras aplicaciones compiladas en JDK5. Y todavía no hemos usado ninguna característica específica de JDK6, solamente cosas de JDK5 como generics y anotaciones.
Sin embargo creo que el paso de JDK1.4 a JDK5 fue como pasar de VHS a DVD y el paso de JDK5 a JDK6 es como pasar de DVD a Blu-ray; las ventajas ya no son tan asombrosas y realmente no sientes que te pierdes de mucho por quedarte en la versión 5.

Imagen de cfpmx

Aunque los cambios no sean

Aunque los cambios no sean muchas veces sorprendentes, siempre es mejor estar actualizados para no desactualizarse ¿No creen?

Imagen de Jvan

Que buena deducción jajaja.

Que buena deducción jajaja. Pues creo que depende de lo que vallas a hacer, como mencionan arriba, muchas veces se requiere utilizar versiones anteriores porque es más facil eso, que migrar complatemante un sistema.

Lo que si es recomendable es que las cosas nuevas se realicen con las ultimas versiones y que se brinde la mayor compatibilidad con las versiones pasadas.

En lo personal uso la 1.5 para sistemas ya hechos y la 1.6 para nuevos requerimientos.

RE: Aunque los cambios no sean

Depende. Los clientes más importantes de Sun, Oracle, IBM prefieren ser conservadores. Para ellos es preferible la estabilidad y la compatibilidad, no quieren exponer sus aplicaciones a un problema debido a un bug en una versión nueva o a una incompatibilidad o falta de actualización en otros componentes. Cuando un consultor dice "empleamos tecnología de punta" o "la más avanzada tecnología", ya sé que no tiene experiencia trabajando con corporativos grandes, sino con más bien con empresas pequeñas que suelen (y pueden) ser más innovadoras.

Saludos

Javier Castañón

Re: Que buena deducción jajaja.

Lo que si es recomendable es que las cosas nuevas se realicen con las ultimas versiones y que se brinde la mayor compatibilidad con las versiones pasadas.

Lo que puede ser recomendable en un ambiente tal vez no lo sea en otro. La mayor compatibilidad con versiones pasadas se obtiene utilizando software de versiones anteriores también.

Por ejemplo, si tienes un centro de datos con decenas de servidores de aplicaciones de una versión 'x', y siguiendo el razonamiento que expones, una aplicación nueva debería desarrollarse sobre la versión 'X + 1' de dicho software. Entonces ya no tienes un estándar en cuanto a servidor de aplicaciones. Debes recapacitar a los administradores y en su caso a los desarrolladores en la nueva versión, debes mantener dos versiones, etc. Eso eleva los costos. Es recomendable para algunos, pero no para otros. Generalmente, mientras más grande, más lento.

Saludos

Javier Castañón

Quizás en web no

@ezamudio
Quizás en web no, pero por ejemplo en aplicaciones de escritorio el JDK 5 es muy difícil hacer un icono de bandeja del sistema, lo que con JDK 6 en 3 patadas lo sacas, y creo también que en Micro Edition tienes más ventajas usando la 6 que la 6 pero como dije para este último creo =)

Por cierto, raro ver un programador que utilice Mac como su plataforma de cabecera.

Imagen de ezamudio

Mac raro?

Crees que sea raro? Yo cada vez veo más programadores con Mac. Y también con Linux. Donde predomina Windows obviamente es en .NET pero para Java y varios otros lenguajes/plataformas, Mac es bastante común creo yo.

Si, bastante; bueno cuando

Si, bastante; bueno cuando alguien me dice que programa con una Mac, seguro es para usar XCode y hacer aplicaciones para iP(hone/od); ¿Pero para Java?; en Java siempre había visto sólo Linux y muy raro alguien que usa Windows.

Imagen de ezamudio

Encuesta

Creo que es buen tema para una encuesta, veamos qué usan los miembros de esta comunidad.

Dado que soy novato uso la

Dado que soy novato uso la ultima version por que no se de que me pierdo al no usar otras versiones

Imagen de karl

Pues la tendencia me parece es a la 6 pero depende ...

Yo actualice mi server apache-tomcat a la 6 y el performance y funcionamiento bajo Linux ha sido adecuado por mas de 4 meses, sin embargo al desarrollar bajo Linux con kernel 2.6 Mandriva, empece a ver problemas con las fallas de Segmentacion (Segmentation Fault) en la versión 6, ajuste mi aplicación a la versión 5 y desaparecierión los problemas de Segmentation gault, entonces tienes que sopesar que es mas importante para el ambiente de producción, algo que funcione "esperanzadoramente con menos fallas" o algo más propicio a fallas... pero también como developer siempre estas buscando hacer las tareas similares o rutinarias de maneras mas sencillas ocn nuevas versiones... esperemos que la version 6 para Linux madure...

Imagen de ezamudio

madure?

Yo diría que Java 6 para Linux está bastante maduro. Tal vez estás usando una versión vieja de Tomcat que depende de Java 5...

Imagen de JavaMan

JDKs

Las grandes empresas tienen miedo de migrar sus aplicativos hecho en JAVA 1.3 y 1.5 a JAVA 5 ... (se orinan de miedo), cuando la verdad JAVA 5 soporta todo lo anterior (eso es lo bueno). En mi opinión el JDK más usado por marcar una grandiferente el el JAVA 5 en todo el mundo a mi gusto trabajo y prefiero JAVA 6. Java 1.4 tambien he trabajado con el pero me parece ya muy militado.

Saludos.

Imagen de JavaMan

RESPONDIENDO

Es verdad el problema con los servidores antiguos y su no soporte para un JDK moderno es un gran problema !

Imagen de erika m

porque es la que me gusta mas

porque es la que me gusta mas

Imagen de Eduardo Vargas

Yo uso la 6

Últimamente uso la 6, principalmente por políticas de la empresa. Hace un año tuve que usar la 7, también por políticas de seguridad, de una empresa en donde estaba desarrollando.

Esta encuesta es del 2008,

Esta encuesta es del 2008, estaria interesante que volvieran(mos) a votar para ver el cambio :)

Imagen de ezamudio

yo ya

ya cambié mi voto a Java 7

Imagen de rodrigo salado anaya

Done!

El mío igual ya cambio a 7!

Imagen de Sr. Negativo

Java 7

Igual ya cambié a Java 7

Imagen de beto.bateria

Esta mas viejitaaaaaa esta

Esta mas viejitaaaaaa esta cuestion....

Re: ¿Qué versión de Java…

Pese a que existe Java 11 ( :-o ), uso Java 8 en mis proyectos.

o

Imagen de ezamudio

Y seguimos

Estoy en Java 8, y en uno de los proyectos estoy preparando las cosas para migrar a Java 11. Me he topado con varias broncas de distinta índole, pero en general puedo comentar esto:

  • Súbanse a Gradle 5 (si usan gradle)
  • Súbanse a Spring 5 (si usan Spring)
  • Súbanse a Spring Boot 2.1 (si usan SB)
  • Súbanse a Groovy 2.5 (si usan groovy)
  • Investiguen qué soporte para Java 11 tienen todas sus dependencias, al menos las directas
  • Documenten todo su proceso de actualización
    • En mi caso, hice un branch   en el repo y le hago merge de master periódicamente; en ese branch es donde modifico lo necesario para que las cosas funcionen. Si me salen errores extraños en uno de los módulos al compilar o al ejecutar pruebas, lo documento y me lo salto para ver qué otras cosas fallan, para tratar de encontrar errores comunes al final y arreglarlos.

      A la fecha tengo algunas broncas con cosas muy particulares como bouncy castle, y un servicio de Spring Boot que no levanta por una bronca en el application context (un bean duplicado o algo así).

      ¿A ustedes cómo les va de su migración a Java 11?

Imagen de Sr. Negativo

Sigo con el JDK 8

Migré un proyecto que tenía en Java 7 al 8 y costó un poco. Ni hablar de usar el JDK 9, 10 y el 11 todavía.

Estoy pensando vivir como ermitaño durante dos o tres años y después ver que tanto han cambiado las cosas en el mundo Java. Tal vez en un futuro sea el mismo jdk el que se migre automáticamente en nuestros proyectos y actualice las herramientas que utilizamos.

Imagen de apolonioluis

en Java 11 cuesta la licencia?

según leí en este articulo si cuesta:

la opción que proponen es OpenJDK 11