James Gosling suele ser presentado como el «padre de
Java». La fórmula es cómoda, pero oculta
la pregunta que hace interesante su trabajo: ¿cómo ejecutar el mismo
software en máquinas muy distintas sin renunciar a la seguridad
necesaria para dispositivos conectados?
A principios de los noventa, Gosling buscó una respuesta con un pequeño
equipo de Sun Microsystems. El resultado no nació como lenguaje web ni
como invento solitario. Oak, futuro Java, formaba parte del proyecto
Green, un experimento colectivo sobre informática integrada. Su traslado
a la Web le daría después visibilidad mundial.
Programar más allá de la estación de trabajo
James Arthur Gosling nació cerca de Calgary, Canadá, en 1955. Tras
estudiar en la Universidad de Calgary, se doctoró en Carnegie Mellon en
1983. Su tesis trataba la manipulación algebraica de restricciones, pero
su trayectoria mostraba ya interés por las herramientas, incluido un
editor relacionado con la historia de Emacs.
Entró en Sun Microsystems en 1984. Sun vendía estaciones Unix y apostaba
por las redes. A finales de la década, vio que la informática podía
extenderse a aparatos de consumo: terminales, mandos y equipos con
procesadores variados.
La diversidad planteaba un problema. El código compilado para un
procesador debía adaptarse o recompilarse para otro. Los lenguajes
habituales también exponían operaciones de memoria capaces de causar
errores difíciles de detectar, muy costosos en dispositivos distribuidos
a gran escala.
Del proyecto Green a Oak
En 1991, Patrick Naughton, Mike Sheridan y James Gosling iniciaron
Green. Gosling consideró C++, pero juzgó
difícil garantizar la simplicidad, portabilidad y robustez buscadas.
Diseñó Oak, llamado así por un roble visible desde su oficina.
Oak conservó una sintaxis familiar para C y C++ y eliminó fuentes de
complejidad. Usaba memoria automática, no ofrecía aritmética general de
punteros y organizaba los programas en clases. Se compilaba a un formato
intermedio, el bytecode, no a instrucciones de un procesador.
Una máquina virtual adaptada a cada sistema ejecutaba el bytecode.
El compilador producía un programa común y la máquina gestionaba las
particularidades. La verificación y un entorno controlado intentaban
limitar lo que podía hacer un programa descargado.
El equipo construyó el terminal experimental Star7 y el personaje Duke.
El mercado previsto no se materializó: Oak tenía una arquitectura
prometedora, pero aún no un terreno de adopción.
La Web cambió la trayectoria
En 1993 y 1994, la Web llegó al público. Los navegadores mostraban
documentos en ordenadores muy distintos, justo el entorno heterogéneo
para el que servía Oak.
El equipo reorientó su trabajo. Oak debía cambiar de nombre porque ya
estaba protegido; Java fue anunciado en 1995 junto con HotJava. Los
applets mostraron que un mismo bytecode podía descargarse y ejecutarse
en varios sistemas.
«Write once, run anywhere» resumía la ambición. No significaba que
todas las plataformas se comportaran igual: bibliotecas, gráficos,
versiones y rendimiento podían diferir. Era un contrato arquitectónico
que trasladaba gran parte de la adaptación a la plataforma Java.
Los applets desaparecieron porque los complementos generaron problemas
de seguridad, rendimiento e interoperabilidad. Pero Java encontró un
lugar duradero en aplicaciones empresariales, servidores, herramientas e
indirectamente Android.
Un lenguaje definido por sus compromisos
Java no inventó por separado los objetos, el recolector ni las máquinas
virtuales. Su éxito procede de combinarlos en un conjunto coherente y
accesible.
El tipado estático detecta algunos errores antes de ejecutar. La memoria
automática evita liberar cada asignación manualmente, sin eliminar todas
las fugas. Las excepciones estructuran errores. La biblioteca estándar
proporcionó abstracciones comunes para redes, archivos, interfaces y
concurrencia.
Estos cambios tienen costes. La máquina virtual añade una capa; el
recolector puede introducir pausas; la compatibilidad a largo plazo
dificulta simplificar el pasado. Los compiladores JIT, nuevos
recolectores y versiones posteriores redujeron progresivamente esas
limitaciones.
Interpretar bytecode podía ser más lento que compilar directamente. Las
máquinas virtuales adoptaron la compilación en tiempo de ejecución o
JIT: observan el programa, identifican zonas frecuentes y las traducen a
código optimizado.
La estrategia convierte una debilidad aparente en adaptación. Un
compilador estático conoce el programa antes de lanzarlo; una máquina
virtual observa caminos, tipos y carga reales. Puede optimizar y
revertir decisiones si cambian sus hipótesis.
La seguridad evolucionó igual. Los applets usaban un sandbox para
limitar archivos y sistema. Las vulnerabilidades mostraron que una
frontera compleja nunca es garantía absoluta. Java conservó verificación
y aislamiento, pero dejó de tener el navegador como entorno principal.
Desde 2006, Sun publicó gran parte de Java como software libre mediante
OpenJDK. No eliminó marcas ni tensiones, pero permitió a varias
organizaciones mantener distribuciones compatibles. Java pasó de
producto dirigido por Sun a plataforma apoyada por empresas y
comunidades.
El papel de Gosling en una obra colectiva
Gosling fue el principal diseñador y uno de los portavoces más visibles.
La especificación, bibliotecas, máquina virtual y ecosistema son obra de
muchos ingenieros y comunidades. Patrick Naughton, Mike Sheridan, Bill
Joy, Guy Steele y equipos sucesivos tuvieron funciones distintas.
Precisarlo no reduce su aportación. Fijó una dirección: legibilidad,
portabilidad y verificación con suficiente familiaridad para atraer a
quienes conocían la familia C.
Tras la compra de Sun por Oracle, Gosling se marchó en 2010. Trabajó
brevemente en Google y después en Liquid Robotics y Amazon Web Services.
Java continuó evolucionando sin depender de una persona.
Por qué James Gosling sigue importando
Su legado supera el número de programas Java. Aparece en una idea hoy
familiar: distribuir software en una forma intermedia y confiar
portabilidad, optimización y parte de la seguridad a un entorno común.
La JVM aloja lenguajes como Kotlin, Scala y Clojure. Su longevidad
demuestra que la infraestructura superó al lenguaje inicial y que la
sintaxis no basta: herramientas, especificaciones, bibliotecas,
compatibilidad y comunidad determinan la vida de un lenguaje.
Cronología
- 1955: James Gosling nace cerca de Calgary.
- 1977: se gradúa en informática en la Universidad de Calgary.
- 1983: se doctora en Carnegie Mellon.
- 1984: entra en Sun Microsystems.
- 1991: comienza Green con Naughton y Sheridan; diseña Oak.
- 1992: se muestra el terminal Star7.
- 1994: Oak se reorienta hacia la Web.
- 1995: se anuncian Java y HotJava.
- 1996: se publica JDK 1.0.
- 2002: Gosling y el equipo reciben el ACM Software System Award.
- 2006: Sun anuncia Java libre; OpenJDK se convierte en referencia
abierta.
- 2010: Gosling deja Oracle tras la compra de Sun.
- Hoy: Java y la JVM siguen siendo plataformas esenciales para
software duradero.
Preguntas frecuentes
¿Creó James Gosling Java él solo?
No. Fue su principal diseñador, pero Java nació de Green y de numerosos
equipos posteriores. Contribuyentes externos también moldearon la
especificación y el ecosistema.
¿Por qué Oak pasó a llamarse Java?
Oak ya estaba protegido como marca. El equipo eligió otro nombre antes
del anuncio de 1995. «Java» no describe una característica técnica.
¿Están relacionados Java y JavaScript?
No. Java se compila a bytecode para una máquina virtual; JavaScript fue
creado en Netscape para el navegador. Su nombre aprovechó la visibilidad
de Java.
¿Qué significa «Write once, run anywhere»?
Un programa compilado debería ejecutarse en cualquier máquina virtual
compatible. Es un objetivo de portabilidad, no una garantía de gráficos,
bibliotecas o rendimiento idénticos.
¿Sigue utilizándose Java sin applets?
Sí. Los applets desaparecieron, pero Java continúa en servidores,
sistemas empresariales, herramientas e infraestructuras. La JVM también
ejecuta otros lenguajes.
¿Cuál es la aportación más duradera de Gosling?
Combinó lenguaje y ejecución en un contrato de portabilidad creíble. La
longevidad de la JVM demuestra que esa arquitectura importa tanto como
la sintaxis.