Pestañas

viernes, mayo 23, 2008

Un poco de Java.

En este post quiero comentar algunas cosas sobre el lenguaje de programación Java. Gracias a este lenguaje conseguí mi primer trabajo (oficialmente, quiero decir, con contrato) y sigo utilizándolo habitualmente. Parte de los programas desarrollados durante mi tesis doctoral han sido en este lenguaje. Para entender un poco de que va, el primer párrafo del artículo de la Wikipedia sobre Java viene al pelo:
"Java es un lenguaje de programación orientado a objetos desarrollado por Sun Microsystems a principios de los años 90. El lenguaje en sí mismo toma mucha de su sintaxis de C y C++, pero tiene un modelo de objetos más simple y elimina herramientas de bajo nivel, que suelen inducir a muchos errores, como la manipulación directa de punteros o memoria."
En resumen, que permite hacer cosas difíciles de forma muy sencilla. De hecho, Java es el lenguaje más popular de 2007 y es muy utilizado en aplicaciones web y en entornos empresariales. Otra de las grandes virtudes de Java es que no depende del sistema operativo: Windows, Linux, Mac ("write once, run everywhere"). Para evitar esa dependencia, Java utiliza una "máquina virtual", que es lo que hace que los programas desarrollados con el lenguaje tengan fama de lentos (no es para tanto, sobre todo con los ordenadores actuales).

Aquí es donde entra el gran problema con Java. El lenguaje ha sido desarrollado por Sun Microsystems, que es una empresa privada. Y durante estos años ha mantenido una licencia privada que no permite a los programadores de código abierto realizar una versión de la máquina virtual (o del lenguaje) que sea software libre, es decir, que los usuarios puedan ejecutar, copiar, distribuir, estudiar o cambiar el programa. Pero lo curioso es que, en realidad, Java es medio-libre. Puede distribuirse libremente (todos nos lo descargamos, aunque solo sea por los plugin del navegador), se puede acceder al código... ¿a todo el código? No, a todo el código no. Y es aquí donde viene la llamada "trampa del Java":
"Si usted escribe un programa en Java sobre la plataforma Java de Sun, está expuesto a usar funcionalidades exclusivas de Sun sin ni siquiera darse cuenta. Para cuando se dé cuenta, quizás las haya estado usando durante meses, y rehacer el trabajo le tomaría más meses. Podría decir «volver a empezar es demasiado trabajo». Entonces su programa habrá caído en la trampa del Java; será inusable en el mundo Libre."
[Nota: con "mundo Libre", se refiere al mundo del Software Libre, no al mundo libre de los "Presidents of the United States of America", claro]

Sun sabe perfectamente que liberar su código es beneficioso, una de las cosas para las que serviría que Java fuese abierto es para que distribuciones libres de Linux, como Ubuntu, pudiesen incorporar Java por defecto, con el consecuente aumento de la difusión de Java que eso supondría. Por ejemplo, la maravillosa plataforma OpenOffice (¿quién sigue utilizando Microsoft Office? ¿tu? ¡Cámbiate YA!) es código abierto y está desarrollada por Sun. A partir de 2006, Sun se propuso liberar Java mediante el proyecto OpenJava o OpenJDK (se puede participar en el proyecto aquí). Sin embargo, a pesar de que el proyecto sigue en pie y funcionando, va muy lento y Java sigue sin ser totalmente libre. El año pasado, hacia mayo del 2007, se anunciaba que Java ya iba a ser liberado, pero no ocurrió. Ahora, en abril de este año, se ha vuelto a anunciar que Sun quiere sacar la versión libre ya. A ver si es verdad, porque el tema no esta muy claro que digamos:

java_chiste

4 comentarios :

Dabidovich! dijo...

Esta misma semana, y después de muuuuuuucho tiempo sin javear, he estado en un curso de AJAX, y la verdad es que, aún pasados los años, recordaba los fundamentos suficientes para hacer los servlets correspondientes para entenderse con el javascript del navegador.

A pesar todos los "peros" que tenía, aquí seguimos teniendo a Java, más versátil y popular que el primer día.

Alf dijo...

De JAVA no tengo ni idea, y en la votación que sepas que he puesto a ese sucedaneo postmodelno de la Thatcher que es Espe.

Franwerst dijo...

Uhm.. cada día me pica un poco más la curiosidad del Java... sobre todo de cara a hacer aplicaciones que se puedan ver con el navegador.

Yo me tiré por el lado de python que también se ha desarrollado bastante, es multiplataforma y tiene la ventaja de ser de código abierto. Pero para hacer cosillas en la web no me entero mucho todavía, y veo que Javascript es más popular. Si tengo un poco de tiempo (juas, juas, me parto...) le echaré un vistazo a lo del java y te pediré algo por donde empezar...

eulez dijo...

Ey Fran, pues yo estoy en las mismas con el python. Pero ahí esta el intermedio con Java: Jython. A mí también me gustaría ponerme con este algún día. Y sobre todo me gustaría saber de lo que dice Dabidovich, de AJAX. Tiene que ser chulísimo eso de hacer ventanitas web que se mueven por el navegador...