Las implementaciones gratuitas de Java son proyectos de software que implementan las tecnologías Java de Oracle y se distribuyen bajo licencias de software libre , lo que los convierte en software libre . Sun lanzó la mayor parte de su código fuente de Java como software gratuito en mayo de 2007, por lo que ahora casi se puede considerar una implementación de Java gratuita. [1] Las implementaciones de Java incluyen compiladores, tiempos de ejecución, bibliotecas de clases, etc. Los defensores del software libre y de código abierto se refieren al software de máquina virtual Java libre o de código abierto como tiempos de ejecución gratuitos o tiempos de ejecución Java gratuitos .
Algunos defensores de este movimiento prefieren no utilizar el término "Java", ya que tiene problemas de marcas comerciales asociados. Por lo tanto, aunque se trata de un "movimiento de Java libre", ellos evitan el término "tiempos de ejecución de Java libres".
Mediados de la década de 1990 hasta 2006
El primer proyecto gratuito que ofreció partes sustanciales de la funcionalidad de la plataforma Java fue probablemente guavac, que comenzó algún tiempo antes de noviembre de 1995. [2] [3]
Desde entonces, el movimiento del software libre desarrolló otros compiladores de Java, sobre todo el compilador GNU para Java . Otros incluyen Eclipse Java Compiler (ECJ), que es mantenido por Eclipse Foundation , y Jikes , que ya no se mantiene activamente. Desde la versión 4.3 de GNU Compiler Collection , GCJ (su compilador Java) está utilizando el front-end del analizador ECJ para analizar Java. [4]
Ejemplos de entornos de ejecución gratuitos incluyen Kaffe , SableVM y gcj .
GNU Classpath es la principal biblioteca de clases de software libre para Java. La mayoría de los tiempos de ejecución gratuitos utilizan GNU Classpath como su biblioteca de clases.
En mayo de 2005, se anunció Apache Harmony , sin embargo, el proyecto eligió la licencia Apache , que en ese momento era incompatible con todas las implementaciones gratuitas de Java existentes.
Otro evento en mayo de 2005 fue el anuncio de que OpenOffice.org 2.0 dependería de las características de Java que las implementaciones de software libre no podrían proporcionar. Tras la controversia, OpenOffice.org adoptó una directriz que requería que funcionara con implementaciones gratuitas de Java.
Las aplicaciones notables que ya funcionaban con implementaciones de software libre de Java antes de noviembre de 2006 incluyen OpenOffice.org y Vuze , las cuales funcionan cuando se compilan con GCJ.
Anuncio de Sun de noviembre de 2006
El 13 de noviembre de 2006, Sun lanzó su compilador, javac , bajo la Licencia Pública General GNU . [5]
En septiembre de 2007, además de javac, Sun lanzó el código de HotSpot (la máquina virtual ) y casi toda la biblioteca de clases de Java como software gratuito.
Siguiendo su promesa de lanzar un JDK completamente compilable basado casi completamente en código fuente libre y abierto en la primera mitad de 2007, [6] Sun lanzó el código fuente completo de la biblioteca Class bajo la GPL el 8 de mayo de 2007, excepto algunas limitadas partes que fueron licenciadas por Sun de terceros que no querían que su código se publicara bajo una licencia de software libre. [7] Sun ha declarado que su objetivo es reemplazar las partes que siguen siendo propietarias y de código cerrado con implementaciones alternativas y hacer que la biblioteca de clases sea completamente gratuita y de código abierto. Dado que hay algún código sobrecargado en el JDK, Sun continuará usando ese código en versiones comerciales hasta que sea reemplazado por alternativas totalmente funcionales, gratuitas y de código abierto.
Después del lanzamiento del código de mayo de 2007
En mayo de 2008, la única parte de la biblioteca de clases que sigue siendo propietaria (4% en mayo de 2007 para OpenJDK 7, [8] [9] y menos del 1% en mayo de 2008 en OpenJDK 6 [10] [11] ) es la implementación SNMP . [12]
Desde el primer lanzamiento de mayo de 2007, Sun Microsystems , con la ayuda de la comunidad, ha lanzado como software libre (o reemplazado por alternativas de software libre) casi todo el código gravado:
- Todo el código del motor de audio, incluido el sintetizador de software , se ha publicado como código abierto. [12] [13] El sintetizador de software de código cerrado ha sido reemplazado por un nuevo sintetizador desarrollado específicamente para OpenJDK llamado Gervill , [14]
- Todas las clases de criptografía utilizadas en la biblioteca de clases se han publicado como software gratuito [15].
- FreeType ha reemplazado el código que escala y rasteriza las fuentes . [16] [17] [18]
- LittleCMS ha reemplazado el sistema de gestión del color nativo . [17] Hay una capa conectable en el JDK, de modo que la versión comercial puede usar el antiguo sistema de administración de color y OpenJDK puede usar LittleCMS.
- El renderizador Piscis de código abierto utilizado en el proyecto phoneME ha reemplazado el código rasterizador de gráficos anti-aliasing . [17] [19] [20] Este código es completamente funcional, pero aún necesita algunas mejoras de rendimiento, [21]
- El complemento de JavaScript ha sido de código abierto ( el motor de JavaScript en sí fue de código abierto desde el principio). [22]
Debido a estos componentes previamente gravados, no fue posible construir OpenJDK solo con componentes de software gratuitos. Para poder hacer esto antes de que toda la biblioteca de clases sea gratuita, y para poder empaquetar OpenJDK en Fedora Core y otras distribuciones gratuitas de Linux , Red Hat ha iniciado un proyecto llamado IcedTea . Básicamente es un híbrido OpenJDK / GNU Classpath que se puede usar para arrancar OpenJDK usando solo software libre. [23] [24]
En marzo de 2008, la distribución de Fedora 9 se lanzó con OpenJDK 6 en lugar de la implementación de IcedTea de OpenJDK 7. [11] Algunas de las razones declaradas para este cambio son:
- Sun ha reemplazado la mayoría de los gravámenes para los que IcedTea estaba proporcionando reemplazos (menos del 1% del código gravado permanece en la biblioteca de clases y este código no es necesario para ejecutar OpenJDK).
- OpenJDK 6 era una rama estable, mientras que OpenJDK 7 era inestable y no se esperaba que lanzara una versión estable hasta 2009.
- Sun ha obtenido la licencia de la marca comercial OpenJDK para su uso en Fedora. [ cita requerida ]
En junio de 2008, se anunció que IcedTea 6 (como la versión empaquetada de OpenJDK en Fedora 9 ) había pasado las pruebas del Kit de compatibilidad tecnológica y puede afirmar que es una implementación de Java 6 totalmente compatible. [25] [ cita requerida ]
En septiembre de 2013, Azul Systems lanzó Zulu, una compilación gratuita de código abierto de OpenJDK para Windows Server y Microsoft Azure Cloud. Las versiones posteriores agregaron soporte para Mac OS X , múltiples versiones de Linux y Java Platform, Standard Edition versión 8. Zulu está certificado como compatible con Java SE 8, 7 y 6 usando el Kit de compatibilidad de tecnología de la comunidad OpenJDK . [26]
Amazon ha lanzado Amazon Corretto, una distribución sin costo, multiplataforma y lista para producción del Open Java Development Kit. Se publica bajo GPL v2 con Classpath Exception . Hay disponibles versiones de soporte a largo plazo de Java 8 y Java 11. Se publicó por primera vez el 31 de enero de 2019 [27].
Ver también
- Java (plataforma de software)
- Javac
- HotSpot
- Apache Harmony
- OpenJDK
- GNU Classpath , GCJ y GIJ
- Te helado
- JamVM
- IKVM.NET
- Lista de máquinas virtuales Java
- Comparación de máquinas virtuales Java
Referencias
- ^ "OpenJDK y el proyecto IcedTea" . www.redhat.com (en coreano) . Consultado el 16 de diciembre de 2019 .
- ^ "Anuncio: guavac 0.2.5, un compilador gratuito para el lenguaje Java" . 1996-09-07. Archivado desde el original el 14 de agosto de 2009 . Consultado el 24 de junio de 2007 .
- ^ "Changelog de guavac, mostrando el primer lanzamiento sucediendo en enero de 1996" . Archivado desde el original el 28 de septiembre de 2007 . Consultado el 24 de junio de 2007 .
Wed Nov 22 05:43:07 1995 [...] CompilerMain.C, Compiler. C, Compiler.h, lexer.l, parser.y: Revisión inicial
- ^ "Serie de versiones GCC 4.3: cambios, nuevas funciones y correcciones" . Consultado el 8 de octubre de 2007 .
- ^ Sun elige la licencia GPL para el código Java
- ^ Preguntas frecuentes de OpenJDK Archivado el 2 de abril de 2007 en Wayback Machine.
- ^ "¡Open JDK está aquí!" . Sun Microsystems. 2007-05-08 . Consultado el 9 de mayo de 2007 .
- ^ Herron, David (4 de octubre de 2007). "Planes para OpenJDK" . Archivado desde el original el 11 de octubre de 2007 . Consultado el 9 de octubre de 2007 .
- ^ Fitzsimmons, Thomas (18 de mayo de 2007). "Planes para OpenJDK" . Consultado el 22 de mayo de 2007 .
- ^ Ángel, Lillian (13 de marzo de 2008). "OpenJDK para reemplazar IcedTea en Fedora 9" . Archivado desde el original el 18 de abril de 2008 . Consultado el 5 de abril de 2008 .
- ^ a b Wade, Karsten (13 de marzo de 2008). "¡OpenJDK en Fedora 9!" . redhatmagazine.com. Archivado desde el original el 21 de abril de 2008 . Consultado el 5 de abril de 2008 .
Thomas Fitzsimmons actualizó las páginas fuente de las notas de la versión de Fedora 9 para reflejar que Fedora 9 se enviaría con OpenJDK 6 en lugar de la implementación de IcedTea de OpenJDK 7. Fedora 9 (Sulphur) se lanzará en mayo de 2008.
- ^ a b "Fuente OpenJDK 6 b10 publicada" . 2008-05-30 . Consultado el 1 de junio de 2008 .
- ^ página del proyecto del motor de audio
- ^ "Gervill - Sintetizador de software" . Archivado desde el original el 4 de octubre de 2011 . Consultado el 1 de junio de 2008 .
- ^ "Crypto se ha agregado a OpenJDK" . 2007-09-27 . Consultado el 7 de octubre de 2007 .
- ^ página de proyecto del escalador de fuentes
- ^ a b c Página del proyecto Java2D
- ^ "Rasterizador de fuentes de tipo libre" . 2007-08-07 . Consultado el 24 de noviembre de 2007 .
- ^ phoneme.dev.java.net/ Archivado el 10 de junio de 2007 en la Wayback Machine.
- ^ página del proyecto graphics-rasterizer
- ^ Graham, Jim (3 de octubre de 2007). "Rasterizador de código abierto" . Sun Microsystems . Consultado el 9 de mayo de 2007 .
- ^ "Javascript está sobrecargado y no hay soporte para complementos de JavaScript" . IcedTea . 2008-03-11 . Consultado el 1 de junio de 2008 .
Resumen cambiante. JavaScript ya no está sobrecargado, pero aún necesitamos el soporte de liveconnect.
- ^ Andrew, Haley (7 de junio de 2007). "Repositorio de compilación experimental en icedtea.classpath.org" . Archivado desde el original el 11 de febrero de 2008 . Consultado el 9 de junio de 2007 .
- ^ Wielaard, Mark (7 de junio de 2007). "Repositorio de compilación experimental en icedtea.classpath.org" . Consultado el 9 de junio de 2007 .
- ^ Sharples, Rich (19 de junio de 2008). "Java es finalmente libre y abierto" . Archivado desde el original el 20 de junio de 2008.
- ^ http://www.azulsystems.com/products/zulu
- ^ Arun Gupta (31 de enero de 2019). "Amazon Corretto 8 ahora generalmente disponible" . Servicios web de Amazon . Consultado el 25 de julio de 2019 .
enlaces externos
- Libre pero encadenado: la trampa de Java
- Escapar de la trampa de Java: una hoja de ruta práctica hacia las alternativas de software libre y código abierto
- Los híbridos combinan GNU Classpath y OpenJDK
- Video de una hora de 2007 de un taller con desarrolladores de Sun, GGJ y GNU Classpath
- Problemas con las marcas comerciales de Java