miércoles, 15 de julio de 2015

Java 8, mas complejidad al lenguaje

Ustedes han oido que luego me quejo del tema de Java 8

Bien, parte de mi queja, es que después de mucho tiempo, se incluyo el concepto de Lambda expressions.

Los que programan en Java, si recuerdan antes de la versión 8, teniamos que recurrir al fenómeno de clases anónimas. Les he de comentar cuanto trabajo me costaba explicar este concepto cuando daba clases.

Cuando vi Ruby y el concepto de bloques de código y el uso de yield, como conceptos propios del lenguaje, fue cuando aprecie el poder de la abstracción e incorporar como estructuras de primer nivel en el lenguaje.

El problema que ha sucedido con Java, es que muchos conceptos se HAN NEGADO modificar el lenguaje en su sintáxis para incorporar nuevas funciones.

Por ejemplo, expresiones regulares en Java es un problema hacerlo, y todo por el enfoque de querer ver todo como una clase-objeto. 

Pues lo mismo hicieron con las expresiones lambda. Aunque si agregaron algunos puntos de sintaxis, usando el operador ->, el cual de repente pareciera un apuntador, no se me hace natural este uso.

El problema es que el lenguaje Java cada vez se vuelve complicado, y por desgracia en manos de ORACLE, quien su foco ya no es similar al de SUN; ya que ORACLE presume que el lenguaje es necesario para el mundo del desarrollo.

Aun añoro los tiempos de 1995, cuando el lenguaje apareció y tumbo la complejidad de C++ y permitió la construcción de mucho software que era dificil de imaginar en esos tiempos.


Hoy en día, Java no lo veo como un gran apoyo para construir el nuevo tipo de sistemas, programación reactiva, o agilidad en el desarrollo Web, la consolidación de servicios hacia un modelo de nube.

El lenguaje se ha vuelto complejo y esclavizado por la sintáxis y no por la semántica.

En fin, esto no implica que no dejemos de aprender las nuevas funciones de Java 8, pero si se deja ver que dentro de poco, algo nuevo pasara en la comunidad de desarrollo.

Ignoro que lenguaje o ambiente de programación aparezca, pero intuyo que será un gran unficador de muchas ideas de lenguajes como Ruby o Erlang, integrando muchos conceptos de BDD-TDD, DSL, toolchaining, programación reactiva y soporte natural a procesamientos de tipo Web, Cloud, BigData, y basado en muchos estándares; con soporte a nuevos modelos de datos como NoSQL o InMemory Databases.

Veo en un futuro el fin del concepto de servidores de aplicaciones, de JEE, como tecnologías ya no necesarias, ya que ese ambiente de desarrollo incorporará el manejo natural de concurrencia, paralelismo y nubes.

Ahora, si alguno de ustedes se le predne mas el foco y cree que de aqui podamos derivar un proyecto nuevo para no esperar la revolución, sería mejor ...



No hay comentarios:

Publicar un comentario