El proyecto Leyden, destinado a acelerar la creación de empresas en Java
El proyecto Leyden, que ha recibido luz verde, tratará de mitigar los problemas de lentitud de arranque y rendimiento introduciendo imágenes estáticas en la plataforma Java
Una propuesta cocinada a fuego lento. La iniciativa para solucionar los problemas de Java, como la lentitud de arranque, la lentitud de rendimiento y el gran tamaño de la plataforma, está ahora en marcha. El proyecto Leyden, que se lleva debatiendo desde hace más de dos años, abordará estos problemas introduciendo imágenes estáticas en el JDK y la plataforma Java. En un post de OpenJDK del 20 de mayo, Mark Reinhold, arquitecto jefe del grupo de la plataforma Java en Oracle, decretó que había llegado el momento de dar los primeros pasos e iniciar el proyecto.
Imágenes estáticas
Una imagen estática es un programa independiente, derivado de una aplicación, que ejecuta esa aplicación y ninguna otra. La imagen estática sirve como un mundo cerrado con respecto a las clases que puede cargar. En tiempo de ejecución, no puede cargar clases desde fuera de la imagen, ni puede crear clases dinámicamente. La restricción del mundo cerrado limita estrictamente el dinamismo natural de Java, especialmente en lo que respecta a las funciones de reflexión y carga de clases en tiempo de ejecución, de las que dependen muchos marcos y bibliotecas de Java existentes.
No todas las aplicaciones se adaptan bien a esta restricción y no todos los desarrolladores están dispuestos a vivir con ella, dijo Reinhold. En lugar de adoptar la restricción del mundo cerrado desde el principio, Reinhold propuso un enfoque gradual e incremental, explorando un espectro de restricciones. Las optimizaciones resultantes serán probablemente más débiles que la restricción del mundo cerrado. Pero las optimizaciones deberían ser aplicables a una gama más amplia de código existente. A largo plazo, los desarrolladores del proyecto probablemente adoptarán la restricción de mundo cerrado completa para producir imágenes totalmente estáticas. El proyecto se apoyará en gran medida en los componentes existentes del JDK, como la JVM HotSpot, el compilador C2, el uso compartido de clases y datos de aplicaciones y la herramienta de código jlink.