Está en la página 1de 4

JAVA

libre
abierto
La liberizacin de Java
empez en 1998, con la
creacin del JCP
04
artculo
Revista del Instituto Tecnolgico de Informtica
05
JAVA libre. JAVA abierto.
La liberacin de Java
El da 13 de noviembre de 2006 Sun Microsystems anunci la
liberacin de ciertas implementaciones de la plataforma Java de
desarrollo de aplicaciones [Sun]. Hasta ahora, Sun haba liberado
algunos grandes productos y sistemas como la suite ofimtica
OpenOffice, el entorno de desarrollo NetBeans o el sistema operativo
OpenSolaris, entre otros. Con la liberacin de Java, Sun se convierte
en el mayor participante de la comunidad de software libre. Para
poder evaluar el impacto de este hecho, conviene conocer algunos
datos acerca la difusin de la plataforma Java a nivel mundial. Por
ejemplo, se estima que en todo el mundo hay unos cinco millones
de desarrolladores que utilizan la plataforma Java y que sta est
presente en unos cuatro mil millones de dispositivos y en ocho de
cada diez dispositivos mviles, como telfonos, agendas electrnicas
y organizadores personales.
El anuncio llega despus de varios aos en los cuales algunas
personas y entidades y la comunidad del software libre en general
han venido pidiendo de forma insistente la liberacin de la conocida
plataforma de desarrollo de software. En particular, Richard Stallman,
fundador e idelogo de Free Software Foundation, escribi, en 2004,
un conocido artculo sobre la denominada trampa de Java ("Java
Trap", en el original, [JTr]) a propsito de la licencia con la que Sun
ha venido distribuyendo la plataforma Java. Dos meses antes, la
empresa IBM, por medio de su vicepresidente Rod Smith, envi a
Sun una carta abierta [IBM] en la que ofreca su colaboracin a
Sun para iniciar un proyecto conjunto para liberar la plataforma
Java.
A pesar de todas estas presiones por parte de la comunidad y los
principales fabricantes de software, el motivo oficial por el cual
Sun finalmente se ha decidido a publicar la plataforma Java bajo
una licencia libre es el de fomentar la implicacin y participacin
de la comunidad en general en el desarrollo y evolucin de Java.
Este paso final empez a darse en junio de 2006, durante la
conferencia JavaOne, cuando Sun anunci que la liberacin de Java
ya no era un asunto cuya realizacin estuviera todava por decidirse
sino que tendra lugar antes o despus y que nicamente quedaban
por resolver algunas cuestiones acerca de la forma en que iba a
producirse.
Sin embargo, aunque parezca un proceso relativamente reciente
y a pesar de que algunas voces acusen a Sun de utilizar la liberacin
de Java como una respuesta a otras compaas, la liberacin de
Java empez en 1998, con la creacin por parte de Sun del Java
Community Process (JCP), un comit formado por compaas
relacionadas principalmente con el software y, en menor medida,
compaas del mundo del hardware y algunas personas particulares.
Los objetivos del JCP estn relacionados con la democratizacin
de la plataforma Java, mediante la participacin de diversas personas
y entidades en la toma de decisiones y en la redaccin y aprobacin
de las especificaciones tcnicas relativas al lenguaje Java, a la
librera estndar y a numerosas libreras adicionales.
La licencia elegida
La forma en que Sun libera la plataforma Java es similar a la utilizada
habitualmente en la comunidad del software libre, en multitud de
aplicaciones, libreras y sistemas operativos. Los productos liberados
incluirn un documento en el que se recogen un conjunto de
clusulas conocidas habitualmente como la licencia del producto.
Emili Miedes De Elas
La reciente liberacin de la plataforma Java, iniciada de forma oficial el pasado mes de noviembre, garantiza nuevas
libertades tanto a los usuarios como a los desarrolladores de esta tecnologa. En este artculo, presentamos las
claves de este acontecimiento que permitir un progresivo acercamiento entre las comunidades de la tecnologa
Java y el software libre.
La nueva licencia facilitar
todava ms la expansin de la
plataforma Java
Actualmente, existe un gran nmero de licencias consideradas libres
y tambin diversas entidades y organizaciones que promueven el
uso de licencias libres. Dos de las entidades ms conocidas son la
fundacin Free Software Foundation (FSF) [FSF] y la Open Source
Initiative (OSI) [OSI]. Ambas mantienen sendas listas de licencias
que consideran libres ([LlF, LlO]). La licencia elegida por Sun ha sido
una variante de la licencia GNU GPL [GPL], en su segunda versin
(GPLv2), publicada originalmente en 1991 y utilizada por ejemplo,
por el sistema operativo GNU/Linux.
Sobre la eleccin de esta licencia se ha escrito y discutido
ampliamente en distintos crculos. Tanto es as que algunos
representantes de Sun se han visto obligados a publicar notas y
pequeas entrevistas en las que argumentan a favor de esta licencia.
Oficialmente, existen dos motivos principales detrs de la eleccin
de la licencia GPL. En primer lugar, la licencia GPL es probablemente
la licencia libre ms conocida y difundida a nivel mundial, por lo que
su adopcin facilitar todava ms, si cabe, la expansin de la
plataforma Java. En segundo lugar, Sun pretende conseguir que en
el caso de que alguien modificara partes del software liberado por
Sun para crear un producto nuevo y lo distribuyera, la licencia le
obligue a publicar el cdigo fuente de las modificaciones realizadas,
de manera que el resto de la comunidad pueda beneficiarse de ellas.
Existen otros motivos por los cuales se habra elegido esta licencia.
Por ejemplo, el uso de la licencia GPL, la misma que utiliza el sistema
operativo GNU/Linux, facilitar sin lugar a dudas, la incorporacin
de la plataforma Java de Sun en las distribuciones ms populares
de este sistema operativo.
La Classpath Exception
Segn la licencia GPL, una aplicacin que enlaza, aunque sea de
forma dinmica, con otra aplicacin o librera que haya sido publicada
bajo licencia GPL se convierte en un trabajo derivado de dicha
aplicacin o librera, y por tanto, su publicacin debe hacerse bajo
la propia licencia GPL.
En la prctica, los requerimientos impuestos por la licencia GPL
obligaran a los fabricantes que publican aplicaciones Java a distribuir
sus productos bajo licencia GPL, lo que les obligara a publicar el
cdigo fuente de dichos productos. Dado que esta obligacin resultara
inadmisible para la prctica totalidad de productos Java propietarios
(privativos), Sun decidi incorporar a la licencia GPL una modificacin
conocida como la "Classpath Exception" [ClE].
La Classpath Exception es una clusula que la FSF decidi aplicar
a su proyecto GNU Cl asspath. Este proyecto persi gue l a
implementacin de la librera estndar de Java (segn las
especificaciones del JCP) que, junto con otras herramientas libres
como el compilador gcj y la mquina virtual Kaffe permitiran conseguir
una plataforma Java completamente libre. El motivo por el cual la
FSF aadi esta clusula a la licencia GPL utilizada por GNU Classpath
fue precisamente el de permitir a cualquier desarrollador o fabricante
de software Java distribuir sus productos sin necesidad de publicarlos
bajo licencia GPL.
A grandes rasgos, esta modificacin permite explcitamente a una
aplicacin, enlazar (esttica o dinmicamente) con una librera GPL.
Mediante esta excepcin el fabricante que distribuye un producto
Java queda exento de la obligacin de publicar la aplicacin bajo
licencia GPL y puede aplicar la licencia que considere ms conveniente
(incluso una comercial y completamente cerrada, como hasta ahora).
A propsito de esta excepcin, tambin ha habido discusiones ya
que hay quien afirma que esta excepcin no es realmente necesaria
en algunos casos. Las razones que se argumentan es que, en la
inmensa mayora de aplicaciones Java, se hace uso exclusivamente
de la API pblica de la librera estndar de Java y que, como las
definiciones de clases e interfaces correspondientes estn publicadas
a travs del JCP, mediante especificaciones abiertas y pblicas, los
enlaces (dinmicos) que una aplicacin Java utiliza hacen referencia
a interfaces pblicas, que no estn sujetas a las restricciones de la
licencia GPL.
Sin embargo, el razonamiento no es estrictamente correcto. En la
prctica, el enlace se realiza mediante una implementacin concreta
de dicha API (la implementacin distribuida por Sun, bajo licencia
GPL), en el momento de compilar el cdigo fuente y producir un
conjunto de ficheros binarios (los ficheros .class). Independientemente
de que la API utilizada sea pblica y que el cdigo binario funcione
con cualquier implementacin de la misma, en el momento en que
se producen los ficheros binarios se est realizando un trabajo
derivado de la implementacin de la API utilizada, por lo que el
producto resultante, tal y como obliga la licencia GPL, debe publicarse
bajo dicha licencia GPL.
Adems, la excepcin tambin es necesaria en aquellos casos en
que un fabri cante di stri buya, j unto con su apl i caci n, l a
implementacin de la plataforma Java de Sun. Hasta ahora, Sun ha
permitido a los fabricantes de software Java, redistribuir, junto a
sus productos, su propia implementacin de la plataforma Java, sin
imponer excesivas restricciones serias, gracias a ciertas clusulas
de la licencia bajo la que se ha venido publicado sus kits de desarrollo
(JDK/SDK) y entornos de ejecucin (JRE).
Qu se est liberando
En el anuncio oficial, Sun anuncia la liberacin de varios productos
de sus distintas plataformas Standard Edition (Java SE) y Micro
Edition (Java ME), entre los que cabe destacar la mquina virtual
Java HotSpot y el compilador javacc. Sun tiene previsto liberar,
durante la primera mitad de 2007, el resto de componentes necesarios
que permitiran a los desarrolladores disponer de un kit de desarrollo
(JDK) completamente libre.
En cuanto a la plataforma Enterprise Edition (Java EE), Sun tiene
previsto, igualmente durante la primera mitad de 2007, aadir la
misma licencia (GPL junto con la Classpath Exception) a la licencia
CDDL propia de Sun con la que se distribuye esta plataforma, desde
2005, bajo el nombre de GlassFish ([GlF]).
En cuanto a las versiones del JDK de Java SE que se vern afectadas
por la nueva licencia, Sun ha indicado que inicialmente la licencia
se aplicar a la versin 7 del JDK (Java 7). El motivo por el cual se
ha rechazado la aplicacin de la nueva licencia libre a la primera
versin de Java 6, de reciente aparicin, no es otro que la falta de
tiempo para comprobar que el proceso de liberalizacin se llevara
a cabo correctamente. Fuentes oficiales aseguran que se espera
que durante 2007 pueda aplicarse la nueva licencia libre a las
siguientes versiones de Java 6.
La Classpath Exception permite
usar la plataforma Java como
hasta ahora
06
Junto con los productos software liberados, Sun ha ofrecido a la
comunidad varios portales web donde reunir a los desarrolladores
y usuarios en general interesados en la evolucin de Java y centralizar
el desarrollo de las nuevas versiones 6 y 7 de la plataforma Java.
El portal Communities en java.net ([Com]) es un portal dedicado a
agrupar a los usuarios en torno a distintos proyectos. Este portal
sirve de entrada a otros sitios web. El portal OpenJDK Community
([OJC]) es el subproyecto dedicado al JDK libre de Java, desde
donde es posible, por ejemplo, descargar el cdigo fuente de la
mquina virtual HotSpot o el compilador javacc. Tambin existen
otros portales ([JDK6, JDK7]) dedicados al desarrollo de los JDKs
6 y 7 respectivamente. En estos portales se centraliza el
mantenimiento del cdigo fuente, paquetes binarios y documentacin,
as como otros elementos comunes en este tipo de portales (listas
de correo, listas de errores, foros de discusin, etc.).
Otras alternativas libres
A continuacin se presentan algunos productos ms conocidos
(como mquinas virtuales Java o implementaciones de la librera
estndar de Java) publicados bajo alguna licencia libre.
- GNU Cl asspath (http://www.cl asspath.org/) es una
implementacin de la librera estndar de Java, que actualmente
ya cubre aproximadamente el 95% de la especificacin oficial
de la parte pblica de la librera.
- Kaffe (http://www.kaffe.org/) es una implementacin de la
mquina virtual Java, publicada bajo licencia GNU GPL, disponible
de serie en muchas distribuciones GNU/Linux (incluyendo Red
Hat, Fedora, Mandrake, SuSE, Debian y Gentoo) y BSD
(incluyendo FreeBSD, NetBSD y OpenBSD). Kaffe utiliza GNU
Classpath como librera estndar.
- SableVM (http://sablevm.org/) es otra implementacin de la
mquina virtual Java, publicada bajo licencia GNU LGPL. Al igual
que otras mquinas virtuales libres, SableVM utiliza GNU
Classpath como librera estndar.
- Apache Harmony (http://harmony.apache.org/) es un proyecto
hospedado por la Apache Software Foundation destinado a
proporcionar una implementacin libre de un kit de desarrollo
Java completo, incluyendo una mquina virtual, una librera
estndar, herramientas de compilacin y depuracin y utilidades
de documentacin, entre otros componentes. Actualmente, la
librera estndar que ofrece Harmony cubre ms del 95% de la
especificacin del API estndar de Java SE 5. Harmony se
publica bajo licencia Apache versin 2.
En [Lin] es posible encontrar una extensa lista con muchos otros
productos y proyectos que ofrecen alternativas libres.
Referencias
[Sun] Sun Anunci o ofi ci al : http://www.sun.com/2006-1113/feature/i ndex.j sp
[Jtr] http://www.gnu.org/philosophy/java-trap.html
[IBM] Carta abierta de IBM a Sun: http://www-128.ibm.com/developerworks/java/library/j-
openlet.html
[FSF] FSF http://www.fsf.org
[OSI] OSI http://www.opensource.org
[LlF] Licencias libres por FSF: http://www.gnu.org/licenses/
[ Ll O] Li cenci as l i br es por OSI : ht t p: / / www. opensour ce. or g/ l i censes/
[GPL] GNU GPL v2: http://www.gnu.org/copyleft/gpl.html
[ClE] Sobre la Classpath Exception: http://www.gnu.org/software/classpath/license.html
[Gl F] Proyect o Gl assFi sh (Java EE l i bre): ht t ps: / / gl assf i sh. dev. j ava. net /
[Com] Community Homepage: http://community.java.net/
[OJC] OpenJDK Homepage: https://openjdk.dev.java.net/
[JDK6] JDK 6 Homepage: https://jdk6.dev.java.net/
[JDK7] JDK 7 Homepage: https://jdk7.dev.java.net/
[Lin] http://www.kaffe.org/links.shtml
Revista del Instituto Tecnolgico de Informtica
07
Revista del Instituto Tecnolgico de Informtica Revista del Instituto Tecnolgico de Informtic
La liberacin de la plataforma Java de Sun responde al inters
general de la comunidad de desarrolladores Java en tener una
plataforma Java libre. En respuesta, Sun ha dado los primeros
pasos, liberando algunos componentes esenciales. Con la creacin
de diversas comunidades de desarrollo, Sun espera que ahora la
comunidad se implique en el desarrollo y evolucin de la plataforma
Java, no solo con el envo de informes de error y la solicitud de
nueva funcionalidad, sino adems, tambin con la participacin
directa y activa en el desarrollo y mantenimiento de los componentes
software liberados.
Si bien es cierto que la eleccin de la licencia ha sido muy
controvertida, tambin es cierto que la licencia elegida goza de
una amplia popularidad, por lo que Sun espera firmemente que sea
bien recibida por la comunidad Java en general. La licencia elegida
ofrece importantes garantas tanto a la propia Sun como a los
fabricantes de software Java, por lo que supone una buena solucin
de compromiso entre ambas partes.
En particular, la licencia ofrece a los fabricantes de software Java
los mismos derechos de uso que hasta ahora Sun vena ofreciendo,
sin imponer restricciones adicionales sobre la licencia que cada
fabricante decida aplicar a sus productos.
En la prctica, la liberacin de Java puede calificarse como
absolutamente positiva y se espera que, en trminos generales,
beneficie de forma indirecta a todos los usuarios y fabricantes de
software Java.
conclusiones
Conclusiones
C
o
n
c
l
u
s
i
o
n
e
s

También podría gustarte