Buscar
Social
Ofertas laborales ES
« JavaHispano en Slack | Main | Manual de Uso Avanzado de Anotaciones Java »
domingo
dic312017

Se aproxima el final de una época

 

Sí, ya sé que suena pomposo, pero os ruego q me permitáis sólo por esta vez utilizar este título: honestamente creo que la situación lo permite...

Corren tiempos convulsos para Java, y para demostrarlo permítaseme que repase algunos de los acontecimientos recientes de esta plataforma.

Según el índice TIOBE, Java sigue siendo el lenguaje más utilizado, pero ha pasado de un flamante 21% de hace unos años a un 13% y con una clara tendencia a la baja desde 2016. Sólo C ha tenido una importante subida en 2017. https://www.tiobe.com/tiobe-index/ 

NetBeans, el que siempre ha sido el IDE oficial, fue donado por Oracle a la Apache Software Foundation y sigue en periodo “incubating” aproximadamente desde abril de 2017.
https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=65873923
http://incubator.apache.org/projects/netbeans.html

Por otra parte la misma Oracle ha donado Java EE a la Fundación Eclipse. Lo que ha creado multitud y muy dispares reacciones. Personalmente opino que debió hacerlo hace mucho, aunque, desde mi punto de vista, algunos detalles son claramente mejorables.
https://www.muylinux.com/2017/09/18/oracle-java-ee-fundacion-eclipse/

Aquí podéis lee el comunicado de la propia Oracle: https://blogs.oracle.com/theaquarium/opening-up-ee-update

Pero lo que realmente me… no sé cómo decirlo… ¿molesta? ¿preocupa? ¿indigna? es que todo apunta a que Java no es una prioridad para Oracle.
http://www.zdnet.com/article/oracle-abandons-netbeans-to-apache/

Por otra parte, como tampoco lo fue Solaris: quizás el mejor S.O. que se haya escrito nunca.
https://www.xataka.com/historia-tecnologica/asi-es-como-oracle-ha-sometido-a-sun-microsystems-a-una-muerte-larga-y-agonica

Todo esto, pienso, se enmarca dentro de una reestructuración importante que Oracle ha acometido en segunda mitad de 2017: se han cerrando departamentos que muchos consideramos clave, se ha despidiendo a un porcentaje importante de la plantilla y se han abandonado líneas de negocio que yo no sé si eran mucho o poco rentables económicamente, pero que tenían una gran rentabilidad en términos de prestigio empresarial.  

Y como noticia anecdótica, mencionaré una reciente, según la cual algunas universidades de EE.UU. han cambiado el tradicional Java por JavaScript como lenguaje de iniciación a la programación. Vale, Java quizás no fuese el más apropiado (en mis tiempos se usaba Pascal), pero WTF: ¿De verdad que JavaScript es más apropiado como lenguaje de iniciación a la programación?
https://magnet.xataka.com/preguntas-no-tan-frecuentes/las-universidades-de-eeuu-al-fin-lo-han-reconocido-empezar-a-programar-por-java-es-una-mala-idea

Todo esto también se nota en nuestra comunidad de JavaHispano: este website tiene menos visitas diarias y menos actividad en general que hace apenas do o tres años. La culpa es de todos nosotros que no somos tan activos como lo éramos antes: entono el “mea culpa” porque hace mucho que no aporto nada: no tengo excusa.

Aprovecho para recordar a todos mis amigos de JH, no nombraré a nadie porque eso suele salir mal: siempre me olvido de alguien a quien estimo un montón. Algunos pasaron momentos delicados de salud, otros iniciaron un nuevo proyecto emocional (algunos se casaron), muchos cambiaron de trabajo y tengo entendido que incluso alguno ganó un buen dinero con las criptomonedas. A todos, un abrazo enorme y mis mejores deseos tanto en lo profesional como en lo personal.

Algunos pensarán que todo esto apunta al colapso inminente de Java como lenguaje de programación (lo de la plataforma es harina de otro costal: hay demasiado código sensible ejecutándose en contenedores Java EE y esto seguirá así muchísimos años). Bueno, es imposible predecir con certeza el futuro, pero como a mi siempre me ha gustado hacer futuribles, aquí va mi apuesta: a Java le quedan varios años de hegemonía y un montón más estando en el ‘top’ 3 de la lista. Así que, si hay muchos programadores que se ganan honradamente la vida utilizando lenguajes que se encuentran fuera del ‘top’ 5, a nosotros aún nos quedan muchas líneas que escribir…

Es más, apuesto a que muchos de esta comunidad se jubilarán programando principalmente en Java. 

Entonces ¿A qué viene tanto revuelo y por qué en los últimos años parece haber un progresivo desapego hacia Java? Personalmente pienso que esto no obedece (como inicialmente se podría pensar) a reflexiones sesudas, análisis concienzudos ni elaboradas estrategias de migración hacia entornos más favorables. Pienso que se debe a algo mucho más simple y más humano: la envidia y el hartazgo. Cuando algo o alguien alcanza una posición de supremacía aplastante, es sólo cuestión de tiempo que los demás aunen esfuerzos para destronar al rey. Y por otro lado, los humanos nos cansamos de todo, necesitamos cambiar de vez en cuando; por muy bueno que algo sea, al cabo de un tiempo empezaremos a buscarle “faltas“ y acabaremos abandonándolo por otra cosa.

Y puestos a hacer futuribles, mi céntimo sobre cuál será el próximo lenguaje que suscitará todas las alabanzas, es para Kotlin. Creo que no sobrepasará a C ni a C++, pero sí creo que se va a convertir en un éxito.

Por último y en lo personal, os diré que desde octubre pasé a engrosar la lista de parados de mi país: a mis 56 años y después de 32 años de carrera profesional, habiendo estado los últimos 12 años en SUN y Oracle. Evalué las condiciones del último ERE (he pasado por 7) y me apunté a la lista de voluntarios. Es verdad que económicamente mi situación actual no tiene nada que ver con la anterior (yo era uno de esos antiguos ingenieros que estaba pagado como tal), pero joder, tengo todo el tiempo del mundo y eso no está pagado.

Enfin, queridos compañeros no quería que se pasara este año sin aportar algo a la comunidad: hace demasiado tiempo que no lo hacía. Así que desde mi pueblo (Marbella, Málaga) y con fecha 31 de diciembre de 2017 os mando a todos un abrazo enorme y mis mejores deseos, ahora y siempre.

peyrona.

 

PrintView Printer Friendly Version

EmailEmail Article to Friend

Reader Comments (6)

Personalmente creo que el análisis es incorrecto. Según he leído Oracle sacará a partir de ahora una nueva versión de Java SE cada 6 meses, comenzando por Java SE 10 en marzo de 2018.

El hecho de pasar Java EE a la fundación Eclipse está por ver qué tal sale, pero no tiene por qué salir mal.

Por otro lado, si tuviese que apostar por los que pueden ser los lenguajes de programación con más crecimiento en los próximos años apostaría por Rust de Mozilla y Go de Google.

enero 1, 2018 | Unregistered CommenterAlberto

Pues a mí no me preocupa mucho lo que haga Oracle con Java, si no que me preocupa lo que haga la "comunidad" con él. A Java le queda mucho, pero tiene que espabilar si no quiere que le superen, y el problema que veo es que está evolucionando para satisfacer a los que nunca estarán satisfechos y se va a quedar desactualizado para lo que de verdad importa, que son las aplicaciones empresariales. Las empresas no montan peticiones en internet para poner lambdas en el lenguaje. Si las necesitan, usan lo que las tenga y punto. Y el azucar sintáctico no es que les quite el sueño.

Las últimas versiones tienen lambdas y un follón enorme para partir los programas en módulos llamado jigsaw, que ya veremos por donde sale, porque de momento el netbeans con Java9... en fin. No digo que esto no esté bien, pero ¿qué ámbito empresarial que no se cubría antes con Java se cubre ahora que hay lambdas y jigsaw? ¿Cuál? ¿Qué se ha ganado? ¿Cuántas aplicaciones se van a migrar a java gracias a que ahora hay lambdas? ¿Cuántos programadores van a dejar scala, c++ o python para pasarse a Java?

En cambio por donde va la industria es por usar cantidades de datos a lo bestia y a ser posible en tiempo real, y ¿eso lo puede hacer Java? Pues no. Lo del tiempo real no lo puede hacer porque el GC te va a congelar la aplicación de vez en cuando (o puedes dejarte como un 10% de CPU con GC customizado que lo congela poquito pero muy a menudo) y lo de usar muchos datos pues sí, pero siempre que haya memoria en abundancia para que el GC no se líe.

En bigdata o loquesea-learning se usará python cuando el ingeniero que lo programa sea más matemático que ingeniero (que me parece muy bien, cada uno sabe de lo que tiene que saber) y C++ cuando lo que haga falta sea exprimir la máquina aunque solo sea porque en C++ puedes decidir cuándo se libera la memoria para mentener el footprint controlado. Y además, puedes usar los cientos de núcleos de una tarjeta gráfica para hacer cálculos.

Java seguirá existiendo y nos dará de comer mucho tiempo, porque Java se ha convertido en el nuevo-Cobol, con millones de aplicaciones empresariales por ahí, pero el camino por el que apunta lo más puntero de la industria se le va a escapar porque no es tan sencillo de usar como python (y no tiene que serlo, es bueno lo de sentarse a planificar lo que vas a hacer) ni tan potente como C++. Lo de la sencillez no se puede arreglar ni se tiene que arreglar, pero con añadir un "delete" al lenguaje que libere inmediatamente la memoria que tú quieras ya se podía darle un mordisco al pastel de C++. Así podrías encargarte de que tu enorme List con millones de registros de vida efímera tuviera el tamaño justo para mantener los objetos "vivos" en vez de crecer a la espera de que el GC congele la aplicación para quitarle la carne muerta, mientras dejas que el GC se encargue del resto de objetos que no te importan demasiado. Y no creo que poner un "delete" sea más complicado que poner lambdas o módulos.

Lo que importan son las aplicaciones empresariales, y cada vez me encuentro más sitios donde están usando cosas que no son Java porque Java no aguanta el tipo, y además es en los sitios donde están haciendo lo que suena más fuerte en la industria. Y el bigdata y el loquesea-learning no es el último buzzword como lo fue el XML o la inyección de dependencias, si no lo que va a mover esto de las teclas durante los próximos años.

Por eso a mí no me importa mucho lo que pueda hacer Oracle, porque si Oracle ve negocio en un área se las apañará para que Java (o lo que tenga) cubra ese hueco. A mí lo que me preocupa es que un día de estos Ruby tenga greenOmelettes y la "comunidad" no descanse hasta que Java también las tenga, porque va a ser emplear esfuerzos en añadir azucar sintáctico y nada más.

enero 1, 2018 | Registered Commenternilojg

Oracle sacará a partir de ahora una nueva versión de Java SE cada 6 meses

¿Y eso es algo bueno?

enero 2, 2018 | Registered Commenterjavierpaniza

No sé si será bueno o no, pero no tiene mucho sentido que JSRs pequeños se vean retrasados porque haya otros JSRs grandes (como pueden ser jigsaw o las lambdas) planteados para la próxima versión. Linux se actualiza cada 6 meses y no le va mal.

enero 2, 2018 | Unregistered CommenterAlberto

Por otra parte la misma Oracle ha donado Java EE a la Fundación Eclipse. Lo que ha creado multitud y muy dispares reacciones. Personalmente opino que debió hacerlo hace mucho, aunque, desde mi punto de vista, algunos detalles son claramente mejorables.
https://www.muylinux.com/2017/09/18/oracle-java-ee-fundacion-eclipse/

Creo que éste fue un golpe serio para NetBeans. Yo esperaría que de aquí en adelante, Eclipse sea el IDE "oficial" para desarrollo de Java EE.

enero 8, 2018 | Registered Commenterantoniovl

En mi opinión si es importante que el lenguaje Java se adapte a los nuevos tiempos y tendencias, quizás no sea buena idea que copie toda chorrada que saquen otros lenguajes pero esta muy bien que evolucione. Creo que Java 8 fue una buena muestra de ello y estoy convencido de que los value types de Java 10 también conseguirán que mejore el lenguaje, sin embargo en mi opinión el proyecto jigsaw necesita asentarse mejor (hay un soporte muy pobre por parte de las herramientas y la situación de Netbeans no ayuda nada), en un contexto donde se tiende a hacer las aplicaciones más pequeñas (microservicios y serverless) modularizar java, reducir los binarios y tiempos de arranque puede ser lo que marque su futuro a medio plazo como lenguaje top y como plataforma.

Otras mejoras "sencillas" pueden venir de incorporar ideas de librerías populares como ocurrió con jodatime o a otro nivel con spring framework, creo que detrás del proyecto vavr hay muchas buenas ideas y convendría contar con ellas en el core de java y la idea de incorporar el delete de @nilojg me parece muy interesante. Yo soy muy fan de lombok y me encantaría que se incorporase al lenguaje buena parte de su "azúcar sintáctico". Spring boot me parece un gran proyecto del que se pueden sacar muchas ideas para el ámbito empresarial.

Python tiene sus virtudes, pero también tiene sus defectos, y no creo que debamos ser tan críticos con Java cuando lo comparamos con Python sin serlo también con Python.
Por otro lado, Python está mucho mejor orientado al machine learning que Java, pero matlab/octave partía con mucha ventaja con respecto a todos en el campo del Machine learning y sin embargo ahí está Python con tensorFlow marcando tendencia. Creo que Java podrá tener su oportunidad cuando la comunidad Java se enfoque en el machine learning como ya ocurrió con el Big Data con Hadoop y Spark .

Con respecto a la envidia o hartazgo hacia Java, yo no lo veo de ese modo, las nuevas generaciones siempre trataran de ser disruptivas con respecto a las anteriores y no se conforman con asumir los defectos de las tecnologías lideres, es algo positivo que impulsa la innovación, se corre el riesgo de reinventar la rueda a cada generación, pero solo de forma parcial, y eso nos llevará a lenguajes más potentes, expresivos y sencillos; de los cuales Java siempre podrá adquirir ideas y mejorar.

Bueno @Peyrona con tanto bagaje y tiempo libre como el que tienes ahora, seguro que encuentras algo en lo que dedicar tu tiempo que te haga feliz ;).

enero 9, 2018 | Registered Commenterdperezcabrera

PostPost a New Comment

Enter your information below to add a new comment.

My response is on my own website »
Author Email (optional):
Author URL (optional):
Post:
 
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>