OpenJDK
De Wikipedia, la enciclopedia libre
OpenJDK es la versión libre de la plataforma de desarrollo Java
Tabla de contenidos |
[editar] Historia
En 1995 la versión 1.0 de JDK 1.0 es liberada por Sun Microsystem, con la promesa de “Escribe una vez, ejecuta en todas partes”, iniciando un capitulo importante en la industria de desarrollo de software. Para 1998 la versión 1.1 recibió 2 millones de descargas.
Es posible crear Software libre con Java, ya que es un lenguaje de programación con una especificación abierta. Sin embargo, depende para su ejecución de software no libre. Esta situación fue nombrada como “la trampa de Java” por Richard Stallman, pues aunque el programa desarrollado sea Software Libre, este puede encontrar dificultades para distribuirse en entornos de Software Libre. Esto provocó que en todas las distribuciones GNU/Linux la máquina virtual java no está incluida, pues el único mecanismo legal era descargarla de www.java.com.
En agosto del 2006, Sun modifico su licencia, de forma que puediera incluirse el binario de la máquina virtual java en distribuciones GNU/Linux.
Se crearon diversos proyectos para implementar la Máquina Virtual Java con licencia libre, entre los que destacan Kaffe (www.kaffe.org) y Armony (http://harmony.apache.org/) así como GCJ (http://gcc.gnu.org/java/) que permite compilar los archivos java en bytecodes y en código nativo. Para el desarrollo de las librerías base se creo el proyecto GNU Classpath (http://www.gnu.org/software/classpath/)
La política de Sun Se crea el JCP, dónde el desarrollo se apoya en una comunidad. Sin embargo, incluye algunas restricciones, pues a los miembros de dicha comunicad, firman un contrato de confidencialidad.
Desde 1998, Sun crea un proceso de desarrollo abierto para la tecnología Java, a través del programa Java Community Process. El programa ha evolucionado desde entonces, permitiendo un desarrollo cada ves más abierto de la plataforma Java bajo la licencia JRL(http://java.net/jrl.csp). Para el 2006, la versión Java SE 6 se realizo con una gran participación de la comunidad. Sin embargo, Sun se mostraba indeciso en la licencia con la que sería liberada, aunque se consideraba la CDDL utilizada por OpenSolaris.
El 13 de noviembre del 2006, después de 10 años de desarrollo, Sun anuncia la liberación de las versiones Java SE 6 y SE 7 bajo licencia GPL v2 (http://www.gnu.org/philosophy/java-trap.html). Al proyecto se le nombró OpenJDK e incluyó inicialmente la máquina virtual java HotSpot, el compilador de Java javac y el sistema de ayuda JavaHelp 2.0. Anuncia así mismo la liberación del resto de la plataforma a lo largo del primer semestre del 2007, con excepción de unos pocos componentes con problemas de licenciamiento ajenos a Sun.
[editar] Desarrollo del Proyecto
El proyecto se aloja en https://openjdk.dev.java.net/, la comunidad de desarrollo tiene como portal http://community.java.net/jdk/ además de los blogs que se pueden consultar en http://planetjdk.org. Las listas de correo se pueden encontrar en https://openjdk.dev.java.net/lists.html.
Se tiene además un canal IRC en on irc.oftc.net #openjdk, así como un Wiki para promover ideas en http://wiki.java.net/bin/view/JDK/OpenJDKWiki. Los reportes de errores se realizan a través del sitio http://bugs.sun.com
La herramienta que se utiliza para el desarrollo es NetBeans IDE, que utiliza una licencia Common Development and Distribution License (CDDL) y utiliza CVS como repositorio. El crecimiento del JDK y de NetBeans IDE están íntimamente vinculados, pues comparten la misma comunidad de desarrollo. Para contribuir con el proyecto a través de parches, debe firmarse el convenio Sun Contributor Agreement (SCA). Los cambios en el lenguaje se controlan a través del “Java Community Process”
[editar] Estructuras Organizativas de decisión
La comunidad OpenJDK [[1]] incluye dos secciones, una pública, dónde se encuentra el proyecto OpenJDK entre otros. Y una sección privada dónde solo se puede participar si se cuenta con membresia y se ha aceptado la licencia JRL [[2]]. Aunque los proyectos JDK6 y JDK7 se encuentran en la sección pública, mantienen una licencia JRL.
Es posible registrar un nuevo proyecto, que debe pasar por una etapa de incubación en el jdk-incubator[[3]] hasta que este lo suficientemente maduro.
Se pueden tomar dos roles en ésta comunidad:
- Desarrollador. Que utiliza la API y las herramientas para crear aplicaciones. No contribuye con código en el JDK.
- Contribuidor. Es aquel desarrollador que a firmado la Sun Contributor Agreement [[4]] y tiene la habilidad de aportar con parches y mejoras en el código fuente.
Desde 1998 el desarrollo de la plataforma Java de Sun se realiza mediante el programa denominado “Java Community Process” [[5]] coordinado por Process Management Office. Cuenta con cerca de 700 miembros, los cuales realizan propuestas a través de documentos formales llamados Java Specification Requests. Actualmente existen 926 JSR de las cuales 90 están en desarrollo para la nueva versión de la plataforma.
JSR incluye grupos de expertos que revisan los JSR que se incluyen en la lista oficial.
Existen dos comités ejecutivos (EC) para las ediciones de la plataforma Java, Standard/Enterprise, and Micro Edition. Ellos realizan las aprobaciones del proceso y de los JSR que se desarrollarán.
[editar] Industria Relacionada
Sun Microsystem, como creador del lenguaje de programación Java y de la plataforma JDK, mantiene fuertes políticas para mantener una especificación del lenguaje [[6]] así como de la máquina virtual [[7]] a través del JCP. Es debido a este esfuerzo que se mantiene un estándar de facto.
Son inumerables las compañias que desarrollan aplicaciones para Java. La industria de la telefonia celular es fuertemente influenciada por la tecnología Java.
El Entorno de Desarrollo Eclipse ha tomado un lugar importante entre la comunidad de desarrolladores Java.
[editar] Estado Actual
En el 2005 se calcula en 4.5 millones el número de desarrolladores y 2,500 millones de dispositivos habilitados con tecnología Java.
[editar] Radiografía
El análisis de acuerdo al modelo de estimación de costes COCOMO con el que se calcula un estimación del costo de producción del software bajo un modelo de Ingeniería de Software cerrado. Aplicando la herramienta SLOCCount.
Concepto | valor |
---|---|
Total de líneas de código | 90,812 |
Años de desarrollo | 1.76 |
Esfuerzo persona-año | 12.96 |
Costo estimado de desarrollo | $ 3,073,916 |
Para tener un estimado de los costes se toma en consideración el salario de 56.286 $/año, que es el salario promedio de un programador en los Estados Unidos y luego se multiplica ese resultado por 2,40 que incluye cualquier gasto extra diferente de los programadores como pueden ser: luz, teléfono, papeleria etc.
Lenguaje | Líneas de código | % |
---|---|---|
Java | 88,346 | 97.28% |
sh | 2,466 | 0.10% |
Estas son las tablas correspondientes a HotSpot
Concepto | valor |
---|---|
Total de líneas de código | 475,290 |
Años de desarrollo | 3.40 |
Esfuerzo persona-año | 129.37 |
Costo estimado de desarrollo | $ 17,476,249 |
Lenguaje | Líneas de código | % |
---|---|---|
cpp | 376211 | 79.15% |
java | 87585 | 18.43% |
ansic | 8614 | 1.81% |
asm | 1724 | 0.36% |
sh | 1156 | 0.24%) |
[editar] Referencias
"GNU General Public License", http://www.fsf.org/licenses/gpl.html
"Sun Opens Java", http://www.sun.com/2006-1113/feature/story.jsp
“Libre pero encadenado - La trampa de Java”, http://www.gnu.org/philosophy/java-trap.es.html
"GNU Classpath", http://www.gnu.org/software/classpath/ [[