Java sigue los pasos de C#?

Luego de mucho tiempo sin postear quiero tocar un punto que genera debates acalorados y mi intención, valga la aclaración, no es iniciar ese debate aquí, mi intención es exponer mi percepción de la realidad y escuchar sus opiniones. Hace quince años o un poquito más Java era visto como una innovación y permítanme decirle que incluso me tuvo cautivado algunos años, era un lenguaje que emanaba promesas de ejecución multi-plataforma, un lenguaje que nos alejaba de los dolores de cabeza (necesarios en se entonces) de los punteros y que impulsaba la orientación a objetos en un mundo procedural y desordenado.

Hace ocho o diez años, Java era el ejemplo a seguir (y en otros sentidos a evitar) por un nuevo y raro espécimen de C llamado C#, Java lideraba el mercado junto a otros lenguajes que no le hacían sombra o bueno no la sombra suficiente, como ser Delphi (que buenos tiempos), pero después de todo Java era aquello que se tenía que mirar antes de seguir el camino, en esa época me encontraba trabajando en la Empresa Nacional de Telecomunicaciones de mi país y como era previsible se usaba Java y mas específicamente J2EE como plataforma de desarrollo, laburaba en la integración de un portal y SAP/R3, mediante un concepto incipiente en ese entonces, servicios web, en esa época prematura y emergente de la plataforma .NET ocurrió mi transformación y mi mirada definitiva hacia Microsoft, en aquella época donde compañeros de trabajo con mucha más experiencia que yo en Java y en la vida profesional, desmerecían el esfuerzo inicial de Microsoft, época en la que me anime a realizar una afirmación temeraria durante una reunión de colegas, “.NET en diez años tomaría el liderazgo como plataforma de desarrollo”.

Hoy a casi diez años de aquella osada frase, puedo afirmar que mi predicción se va cumpliendo, quizá aun no se tenga el liderazgo total como plataforma de desarrollo, pero puedo afirmar con total convicción, que los papeles han empezado a invertirse, hoy por hoy las miradas de “lujuria” no van en un solo sentido sino en ambos, hoy no es solo uno el que anhela lo que el otro tiene, Java ahora sigue o pretende seguir el ejemplo de lo que C# y .NET están apuntalando.

En este punto es necesario mencionar aquellos elementos que generan esos deseos lujuriosos que siente Oracle (nuevo dueño de Java), entre los más notables están:

  • La característica de ejecución multilenguaje en la plataforma .NET, actualmente Java es el lenguaje abanderado de J2EE y aunque existen varios otros lenguajes que se ejecutan sobre la JVM/JRE el objeto de deseo, son los lenguajes dinámicos introducidos recientemente por Microsoft en la plataforma, en este punto Java tiene limitaciones para la implementación del soporte en la modificación dinámica de clases y métodos, base para la construcción de lenguajes dinámicos, esto es una promesa pendiente para la versión 7 de Java.
  • Expresiones Lambda & LINQ, la elegancia y simplicidad de estas características dentro del .Net Framework 3.0 son irreproducibles en Java o J2EE, aunque actualmente existen intentos aislados y desde mi punto de vista, infructuosos, aun estamos un poco lejos de ver algo similar a LINQ en Java, encontramos a un sbql4j, un Quaere, un Guice, pero repito todos ellos intentos aislados e infructuosos, a excepción quizá de un concepto nuevo a ser introducido en la versión 7 de Java, llamado Closures un concepto similar a las expresiones lambda.

En estos dos simples ejemplos vemos como la realidad ha cambiado, pero quizá Uds. se preguntaran: ¿Son esos dos simples puntos, razón suficiente para afirmar que .Net dominara el mercado de desarrollo?, ¿Cual es la razón por la que sostengo mi afirmación inicial de un .Net dominante? Esta viene de leer y conversar con varios programadores de Java  que perciben al igual que yo, la lentitud de reacción, evolución y adaptación que sufre esta plataforma y esta sensación se ha visto acrecentada desde la reciente adquisición de SUN por parte de Oracle, tampoco no es un secreto que existen grandes diferencias entre aquellos que mantienen el lenguaje y aquellos que lo usan e incluso diferencias al interior de la coalición de compañías que usan J2EE y a su vez lo mantienen, esto otorga una ventaja innegable a .NET, que no tiene que satisfacer los deseos contradictorios de varias empresas, pues solo pertenece a Microsoft, lo cual permite que esta ultima sea comparada con una liebre a lado de una tortuga, por los mismos prestigiosos y reconocidos usuarios en el mundo J2EE. 

Quizá esta exposición puede ser criticada de trivial y superficial pero tampoco deseo entrar en una polémica de característica por característica, costo/beneficio, etc. Algunos también opinan que no existe debate o no debería existirlo, luego de comprender correctamente el concepto de inter-operabilidad, a todo esto les dejo algunos links: 

En cualquier sentido habrá que esperar la versión 7 de Java, que trae muchas promesas, pero mientras esta versión es ampliamente aceptada pasara un tiempo, un muy buen tiempo, en el cual seguramente Microsoft seguirá su imparable camino de innovación y mejora, que lo alejara más aun de J2EE y lo acercara cada vez a un estado dentro de mis pronósticos.

Protegiendo tus ojos con Visual Studio y otras cositas mas

Este post complementa uno anterior que hice y que es bastante popular sobre como proteger tus ojos con VS (http://geeks.ms/blogs/eortuno/archive/2008/10/26/protege-tus-ojos-con-temas-de-visual-studio.aspx), hoy curioseando la red encontre un excelente sitio que ademas de tener muchos temas para VS, tambien tiene Wallpapers con una calidad estupenda (http://vs2010wallpapers.com/) se los recomiendo. Estoy pensando armar mi propio tema para windows 7 o alguno sabe si existe ya uno para desarrolladores?

Un abrazo