¿Qué es Project Valhalla y por qué llega a JDK 28?
Tras 12 años de desarrollo desde 2014, Project Valhalla finalmente aterriza como funcionalidad preview en JDK 28 (marzo de 2027) con una modificación de 197.000 líneas de código que reescribe cómo Java maneja la identidad de objetos. Para founders que operan servicios backend en JVM, esto representa la optimización de rendimiento más significativa en una década.
La pieza central es JEP 401 (Value Classes and Objects), confirmada por la ingeniera de Oracle Lois Foltan para integración en la rama principal de OpenJDK. A diferencia de los objetos tradicionales, las value classes eliminan la identidad de objeto: dos instancias se comparan por sus valores, no por su referencia en memoria.
¿Qué son las value classes y cómo funcionan?
Una value class es un tipo cuyos objetos no tienen identidad. Esto significa que el JVM puede almacenar los valores de forma más compacta, evitando el overhead típico de los objetos referencia. Los campos deben ser final y el tipo se comporta como «valor puro», similar a un int pero con estructura de objeto.
👥 ¿Quieres ir más allá de la noticia?
En nuestra comunidad discutimos las tendencias, compartimos oportunidades y nos ayudamos entre emprendedores. Sin humo, solo acción.
👥 Unirme a la comunidadEn modo preview, el JDK migra clases existentes como Integer y LocalDate para que se comporten como value classes. Los desarrolladores también podrán declarar sus propias value classes para tipos de dominio que representan datos puros: coordenadas, montos de dinero, timestamps o IDs compuestos.
El modelo técnico permite tres optimizaciones clave:
- Menor huella de memoria: al no requerir identidad, el JVM almacena valores de forma más compacta
- Mejor localización en caché: menos saltos de punteros y datos más contiguos hacen que iterar sea más eficiente
- Menos desreferenciación: acceder al dato requiere menos cargas desde memoria porque el valor puede estar «aplanado» (flattened) en estructuras o arrays
¿Qué mejoras de rendimiento ofrecen las value classes?
Las cifras varían según el caso de uso, pero los benchmarks publicados muestran resultados significativos. En una demo de OpenJDK sobre heap flattening, un benchmark con LocalDate mostró una mejora de casi 3x en velocidad al activar preview y permitir el aplanado de valores en arrays.
Sin embargo, la mejora no es automática en todo el código. El beneficio aparece especialmente en:
- Estructuras de datos densas y colecciones grandes
- Arrays iterados secuencialmente
- Cómputo intensivo sobre tipos de datos puros
- Servicios con alto volumen de instancias pequeñas y de vida corta
Para lógica de negocio tradicional con pocas instancias, el impacto será marginal. La ganancia real está en componentes con alta densidad de objetos: procesamiento de pagos, pipelines de eventos, sistemas de trading o analítica en tiempo real.
¿Qué son los genéricos especializados y tipos no anulables?
Los genéricos especializados representan la siguiente capa de Project Valhalla. Permitirían que List<int> o List<Point> se representen de forma especializada por el JVM, evitando el coste de boxing/unboxing y tratando los tipos según su representación real, no como referencias homogéneas.
Los tipos no anulables (non-nullable types) son tipos que el lenguaje y JVM pueden garantizar que nunca serán null. Esto es crítico para Valhalla porque un valor que nunca puede ser null y que no tiene identidad se optimiza más agresivamente: el JVM asume mejores invariantes de representación y reduce comprobaciones.
Ambas funcionalidades son evoluciones posteriores. JEP 401 se centra primero en value classes; la especialización total de genéricos y los tipos no anulables llegarán en fases siguientes del proyecto.
Timeline del proyecto y estado actual
- 2014: Project Valhalla inicia desarrollo
- Agosto 2022: Se crea JEP 401
- 2025-2026: Builds early-access y pruebas públicas disponibles
- JDK 27: Septiembre 2026 (sin Valhalla)
- JDK 28: Marzo 2027 (JEP 401 como preview)
- JDK 29: Septiembre 2027 (probable LTS, pero Brian Goetz advierte que JEP 401 probablemente seguirá en preview)
El arquitecto de Java Brian Goetz ha señalado que esperar que JEP 401 salga de preview para JDK 29 sería «optimista». Esto significa que los equipos deben planificar una fase de evaluación prolongada antes de usar value classes en producción crítica.
¿Qué significa esto para tu startup?
Si tu startup opera servicios backend en Java/JVM, Project Valhalla ofrece oportunidades concretas de optimización, pero requiere evaluación cuidadosa.
Para startups en etapas tempranas:
- Evalúa en entornos de prueba: Descarga builds early-access de OpenJDK y prueba JEP 401 con tus cargas reales. No asumas ganancias generalizadas sin benchmarking propio.
- Identifica hot paths: Usa profilers para encontrar componentes con alta densidad de objetos (colecciones grandes, iteraciones frecuentes, modelos de datos puros). Ahí es donde value classes puede generar impacto.
- Considera el coste de migración: En preview, deberás recompilar partes del código y verificar compatibilidad con librerías, frameworks y sistemas de serialización. Para equipos pequeños, prioriza optimizaciones estructurales en hot paths específicos, no migraciones masivas.
Para startups en crecimiento o scale-ups:
- Procesa datos masivos: Si tu carga incluye procesamiento de pagos, eventos, trading o pipelines analíticos, las value classes pueden reducir presión de GC y mejorar throughput. El ahorro en memoria puede traducirse en menos instancias y menor coste de infraestructura.
- Diseña APIs internas con semántica de valor: Una clase puede expresar «esto es un valor» en vez de «esto es un objeto con identidad», acercando el código a la intención semántica y facilitando optimizaciones futuras.
- Planifica adoption gradual: Dado que JEP 401 probablemente seguirá en preview en JDK 29 (LTS), establece un roadmap de evaluación de 12-18 meses antes de considerar adopción en producción crítica.
Acciones concretas para implementar hoy:
- Benchmark tu carga actual: Usa herramientas como JMH (Java Microbenchmark Harness) para medir rendimiento de componentes críticos. Identifica dónde la densidad de objetos impacta latencia o uso de memoria.
- Prueba builds early-access: Inside.java publicó una guía oficial para probar JEP 401 con builds de early-access. Configura un entorno aislado y evalúa compatibilidad con tu stack actual.
Conclusión
Project Valhalla representa el cambio de lenguaje más significativo en Java en una década. Con 197.000 líneas de código modificadas y mejoras de rendimiento de hasta 3x en casos específicos, las value classes en JDK 28 ofrecen a founders y equipos backend una herramienta poderosa para optimizar servicios de alta densidad de datos.
Sin embargo, siendo una funcionalidad preview que probablemente permanecerá así en JDK 29 (LTS), la adopción requiere evaluación cuidadosa, benchmarking propio y planificación a largo plazo. Para startups que operan en JVM, el momento de experimentar es ahora; el momento de migrar producción crítica llegará cuando el ecosistema madure.
Fuentes
- Project Valhalla, Explained: How a Decade of Work Arrives in JDK 28
- Java’s biggest language change in a decade is finally landing in JDK 28
- Java’s Project Valhalla finally lands a preview in JDK 28
- Try Out JEP 401 Value Classes and Objects
👥 ¿Quieres ir más allá de la noticia?
En nuestra comunidad discutimos las tendencias, compartimos oportunidades y nos ayudamos entre emprendedores. Sin humo, solo acción.
👥 Unirme a la comunidad













