Ir al contenido principal
Bethemesh
BiografíaHistoria de la informática

Brendan Eich: JavaScript, del prototipo de Netscape al estándar web

Cómo Brendan Eich creó el primer JavaScript en Netscape y participó en su transformación en el lenguaje estandarizado de la Web.

Publicado el 17 de agosto de 2026Lectura : 19 minPor Equipo Bethemesh
Principiante
Retrato de Brendan Eich, creador de la primera versión de JavaScript
Mostrar el contenido
  1. Dar comportamiento a las páginas web
  2. Diez días para un prototipo, meses para un lenguaje
  3. Decisiones rápidas convertidas en contratos duraderos
  4. Un lenguaje atrapado en la guerra de navegadores
  5. Por qué JavaScript sobrevivió a sus defectos
  6. De Mozilla a Brave
  7. Por qué Brendan Eich sigue importando
  8. Cronología
  9. Preguntas frecuentes
  10. ¿Creó realmente Brendan Eich JavaScript en diez días?
  11. ¿Es JavaScript una versión de Java?
  12. ¿En qué se diferencian JavaScript y ECMAScript?
  13. ¿Por qué utiliza prototipos JavaScript?
  14. ¿Creó Brendan Eich Node.js?
  15. ¿Por qué no se eliminan los antiguos defectos?
  16. Antes de JavaScript: un ingeniero de lenguajes
  17. 1995: la Web necesita un lenguaje de scripting
  18. Los famosos «diez días»
  19. Mocha, LiveScript y JavaScript
  20. Sintaxis de familia C, ideas de Scheme y Self
  21. Funciones de primera clase
  22. Prototipos en lugar de clases
  23. Un lenguaje dinámico dentro del navegador
  24. Netscape frente a Microsoft
  25. ECMAScript: de función del navegador a estándar
  26. TC39: JavaScript se convierte en obra colectiva
  27. La compatibilidad da forma al lenguaje
  28. Primeros años difíciles
  29. ECMAScript 4: el futuro que no llegó
  30. ES5: consolidar
  31. AJAX cambia las expectativas
  32. Los motores JavaScript se convierten en una carrera tecnológica
  33. Mozilla: del legado de Netscape a una comunidad abierta
  34. Firefox y la competencia entre navegadores
  35. Node.js: JavaScript sale del navegador
  36. npm y la explosión del ecosistema
  37. ECMAScript 2015: el lenguaje cambia de escala
  38. Las clases no eliminan los prototipos
  39. Promesas y async/await
  40. Brendan Eich y SpiderMonkey
  41. La Web es más grande que JavaScript
  42. Comparación con Java
  43. Comparación con Python
  44. Comparación con la orientación a objetos basada en clases
  45. Eich no creó solo el JavaScript moderno
  46. 2014: controversia y salida de Mozilla
  47. Brave Software
  48. Una invención creada bajo restricciones
  49. Los errores pueden convertirse en contratos
  50. JavaScript como infraestructura mundial
  51. El legado de Brendan Eich
  52. Preguntas frecuentes
  53. ¿Quién creó JavaScript?
  54. ¿JavaScript fue creado realmente en diez días?
  55. ¿Por qué se llama JavaScript?
  56. ¿Qué lenguajes influyeron en JavaScript?
  57. ¿Creó Brendan Eich ECMAScript?
  58. ¿JavaScript sigue utilizando prototipos aunque tenga class?
  59. ¿Trabajó Brendan Eich en Mozilla?
  60. ¿Qué es SpiderMonkey?
  61. ¿Qué relación tiene Eich con Brave?
  62. ¿Por qué sigue siendo importante Brendan Eich?

Brendan Eich creó la primera versión de JavaScript, pero la frase «un lenguaje creado en diez días» exige una precisión. En mayo de 1995 produjo en diez días un prototipo para Netscape. El lenguaje desplegado, normalizado y utilizado hoy es el resultado de tres décadas de correcciones, compromisos y trabajo colectivo.

Ese origen bajo presión explica mucho de JavaScript. Netscape necesitaba un lenguaje accesible en el navegador, distinto de Java pero capaz de complementarlo. Eich tuvo que reunir ideas de varias tradiciones bajo una sintaxis reconocible.

Dar comportamiento a las páginas web

Brendan Eich nació en Pittsburgh en 1961. Estudió matemáticas e informática y obtuvo un máster en la Universidad de Illinois en 1986. Antes de Netscape trabajó en compiladores y sistemas en Silicon Graphics.

En 1995, la Web estaba formada sobre todo por documentos. El navegador solicitaba HTML y lo mostraba. Validar un formulario o cambiar contenido solía exigir contactar al servidor y cargar otra página.

Netscape, entonces líder, quería un lenguaje sencillo para autores de páginas. Paralelamente colaboraba con Sun en torno a Java, orientado a aplicaciones más estructuradas. El futuro JavaScript debía ser ligero, interpretarse en la página y funcionar sin cadena de compilación.

Diez días para un prototipo, meses para un lenguaje

Eich entró en Netscape en abril de 1995. En mayo construyó Mocha. Los diez días corresponden a esa demostración, no a un lenguaje definitivo concebido de una vez.

Después se llamó LiveScript y finalmente JavaScript. El nombre acompañó un acuerdo con Sun y aprovechó la atención sobre Java, aunque ambos lenguajes diferían en diseño, tipos y ejecución.

JavaScript mostraba una superficie próxima a C: llaves, expresiones y controles familiares. Debajo, Eich añadió funciones de primera clase inspiradas en Scheme y un modelo de objetos por prototipos próximo a Self.

Una función puede almacenarse, transmitirse o devolverse, propiedad ideal para eventos como clics o entradas. En el modelo prototípico, un objeto delega la búsqueda de propiedades a otro. La sintaxis posterior de clases no eliminó esta base; ofrece una forma más familiar de usarla.

Decisiones rápidas convertidas en contratos duraderos

Netscape quería un lenguaje acogedor y familiar para programadores de C y Java. Eich adoptó tipado dinámico: una variable puede recibir distintos valores y muchas conversiones ocurren al ejecutar.

Esto facilita scripts pequeños, pero algunas conversiones sorprenden. JavaScript también distingue menos categorías numéricas que Java y usa principalmente coma flotante. Son compromisos iniciales entre aprendizaje, plazo y expresividad.

Eich escribió además el primer motor, futuro SpiderMonkey. Diseñar sintaxis e intérprete simultáneamente aceleró las pruebas, pero dejó poco tiempo para corregir incoherencias. Cuando páginas públicas dependen de un comportamiento, cambiarlo rompe sitios. Detalles de la primera implementación se volvieron obligaciones de compatibilidad.

Un lenguaje atrapado en la guerra de navegadores

JavaScript apareció en Netscape Navigator 2. Microsoft produjo JScript para Internet Explorer. Los navegadores añadieron objetos propios mientras el modelo de documento seguía inestable.

El problema superaba el lenguaje. JavaScript define valores, funciones y operaciones; el navegador aporta documento, eventos y red. Confundir estas capas dificulta identificar incompatibilidades.

Netscape sometió el lenguaje a Ecma International en 1996. La primera edición de ECMA-262 apareció en 1997 como ECMAScript, convirtiendo JavaScript en la implementación más conocida de una especificación independiente.

La normalización no resolvió todo. ECMAScript 4 fracasó por desacuerdos. El compromiso produjo ECMAScript 5 en 2009 y ECMAScript 2015 con módulos, promesas, clases sintácticas y nuevas declaraciones. La especificación evoluciona hoy anualmente.

Por qué JavaScript sobrevivió a sus defectos

La compatibilidad web es decisiva. Un sitio antiguo debe funcionar en un navegador reciente. Los errores históricos no siempre pueden eliminarse; se documentan, evitan o complementan.

Esto explica conversiones implícitas, dos valores principales para la ausencia de dato, antiguas reglas de alcance y el comportamiento de this. También explica la continuidad de la plataforma.

En los años 2000, las peticiones asíncronas permitieron actualizar interfaces sin recarga completa. Desde 2008, motores como V8 aceleraron la ejecución mediante compilación JIT. En 2009, Node.js usó V8 fuera del navegador para servidores y herramientas.

Eich no creó estas evoluciones. Su aportación inicial hizo posible una plataforma transformada después por estándares, navegadores y comunidades.

De Mozilla a Brave

Tras la compra de Netscape por AOL, Eich participó en Mozilla y fue uno de sus principales responsables técnicos. Firefox, lanzado en 2004, recuperó competencia en torno a un navegador abierto y los estándares.

En 2014 fue brevemente director general de Mozilla y dimitió durante una controversia pública por una donación política de 2008. El episodio pertenece a su trayectoria profesional, sin confundirse con la historia técnica de JavaScript.

En 2015 cofundó Brave Software, que desarrolla un navegador centrado en bloquear rastreadores y un modelo publicitario alternativo. Prolonga su actividad en navegadores, pero es distinto de JavaScript y su normalización.

Por qué Brendan Eich sigue importando

La aportación más duradera de Eich fue dar a la Web un lenguaje integrado cuando aún podía seguir siendo un sistema de documentos. Sus decisiones permitieron programación por eventos y páginas dinámicas con una barrera mínima: bastaba un navegador.

JavaScript es hoy más riguroso, amplio y rápido que el prototipo de 1995. Su historia muestra que un lenguaje popular no es solo el plan de su creador: se convierte en contrato entre especificación, implementaciones, herramientas, programas y usuarios.

Cronología

  • 1961: Brendan Eich nace en Pittsburgh.
  • 1986: obtiene un máster en informática en la Universidad de Illinois.
  • Abril de 1995: entra en Netscape.
  • Mayo de 1995: construye Mocha en diez días.
  • Septiembre de 1995: se anuncia LiveScript.
  • Diciembre de 1995: se adopta el nombre JavaScript.
  • 1996: el lenguaje se somete a Ecma International.
  • 1997: se publica la primera ECMA-262.
  • 1998: Eich participa en la creación de Mozilla.
  • 2005: Ajax populariza aplicaciones web dinámicas.
  • 2009: aparecen ECMAScript 5 y Node.js.
  • 2015: aparecen ECMAScript 2015 y Brave Software.
  • Hoy: ECMAScript evoluciona anualmente y JavaScript sigue siendo el lenguaje nativo universal de la Web.

Preguntas frecuentes

¿Creó realmente Brendan Eich JavaScript en diez días?

Construyó el primer prototipo en diez días en mayo de 1995. El lenguaje comercial evolucionó antes de salir y sus especificaciones e implementaciones llevan décadas desarrollándose.

¿Es JavaScript una versión de Java?

No. Sus nombres y parte de la sintaxis confunden, pero difieren en tipos, objetos y entornos. El nombre JavaScript respondió sobre todo al contexto comercial de 1995.

¿En qué se diferencian JavaScript y ECMAScript?

ECMAScript es el estándar publicado por Ecma. JavaScript es el nombre habitual de sus implementaciones, enriquecidas en el navegador con API web.

¿Por qué utiliza prototipos JavaScript?

Eich se inspiró en Self para que los objetos delegaran directamente en otros. La sintaxis moderna de clases sigue apoyándose en cadenas de prototipos.

¿Creó Brendan Eich Node.js?

No. Ryan Dahl creó Node.js en 2009. Utiliza V8 para ejecutar JavaScript fuera del navegador.

¿Por qué no se eliminan los antiguos defectos?

Porque cambiar su comportamiento rompería páginas. La compatibilidad ascendente es fundamental para la Web; los estándares suelen añadir mecanismos mejores sin retirar los antiguos.

Antes de JavaScript: un ingeniero de lenguajes

Brendan Eich nació en Pittsburgh en 1961 y estudió matemáticas e informática antes de obtener un máster en la Universidad de Illinois Urbana-Champaign.

Antes de Netscape trabajó en empresas como Silicon Graphics y MicroUnity. Su trayectoria le permitió conocer compiladores, lenguajes y sistemas de bajo nivel. Este contexto es importante porque la famosa historia de la creación acelerada de JavaScript puede dar la impresión equivocada de que un programador sin experiencia improvisó un lenguaje desde cero.

Cuando Eich llegó a Netscape en 1995 ya conocía los compromisos reales de diseñar e implementar lenguajes.

1995: la Web necesita un lenguaje de scripting

La Web de mediados de los noventa era muy diferente de la plataforma de aplicaciones actual. Las páginas eran principalmente documentos y Netscape Navigator se encontraba en el centro de una intensa competencia entre navegadores.

Netscape quería páginas más interactivas.

Necesitaba un lenguaje suficientemente accesible para integrarlo directamente en HTML. Eich tenía interés por Scheme, pero las presiones comerciales y técnicas favorecían una sintaxis que resultara familiar a los programadores procedentes de C y Java.

Esa tensión explica parte de la identidad de JavaScript: apariencia de lenguaje de la familia C, funciones de primera clase y objetos basados en prototipos.

Los famosos «diez días»

La historia de JavaScript suele resumirse diciendo que Brendan Eich lo creó en diez días.

La afirmación es correcta en un sentido limitado y engañosa si se interpreta literalmente.

En mayo de 1995, Eich construyó efectivamente el primer prototipo del lenguaje que se convertiría en JavaScript en un plazo extraordinariamente corto. Pero el JavaScript moderno no fue diseñado completamente durante esos diez días.

El prototipo fue un punto de partida. Durante más de treinta años el lenguaje fue corregido, normalizado, ampliado y reinterpretado por muchísimas personas.

Los diez días explican las restricciones del origen, no toda la historia.

Mocha, LiveScript y JavaScript

El lenguaje se llamó primero Mocha y después LiveScript.

A finales de 1995 adoptó el nombre JavaScript.

Java recibía entonces una atención enorme y la elección generó una confusión que todavía existe: JavaScript no es una versión simplificada de Java.

Java, asociado a James Gosling, posee un sistema de tipos, una arquitectura y una historia muy diferentes.

La similitud de los nombres refleja sobre todo el contexto comercial de los años noventa.

Sintaxis de familia C, ideas de Scheme y Self

JavaScript utiliza llaves, operadores y muchas formas sintácticas familiares para programadores de lenguajes derivados de C.

Sin embargo, debajo de esa superficie aparecen influencias distintas.

Las funciones son valores de primera clase, siguiendo tradiciones funcionales como Scheme. Los objetos utilizan delegación mediante prototipos, muy influida por Self, en lugar de un modelo convencional centrado en clases.

Esta combinación explica por qué tantos desarrolladores entendieron mal JavaScript al tratarlo como un «Java pequeño».

Funciones de primera clase

Una función JavaScript puede almacenarse en una variable, pasarse como argumento, devolverse desde otra función o crearse dinámicamente.

La decisión resultó extraordinariamente importante.

Los callbacks se hicieron fundamentales para la programación dirigida por eventos del navegador. Más adelante, cierres léxicos, funciones flecha, promesas y patrones asíncronos se apoyaron en un lenguaje donde las funciones habían ocupado un lugar central desde el principio.

Una de las decisiones del prototipo apresurado resultó sorprendentemente duradera.

Prototipos en lugar de clases

El modelo original de objetos de JavaScript se basa en delegación mediante prototipos.

Un objeto puede heredar comportamiento a través de la cadena de prototipos de otro.

El modelo puede resultar extraño a desarrolladores formados en lenguajes orientados a objetos basados en clases, pero ofrece mucha flexibilidad.

La sintaxis class, añadida mucho después, hizo ciertos patrones más familiares sin sustituir el mecanismo fundamental.

Esto conecta JavaScript con la historia de la programación orientada a objetos y recuerda que la orientación a objetos nunca tuvo un único modelo posible.

Un lenguaje dinámico dentro del navegador

JavaScript tiene tipado dinámico.

Las variables no permanecen ligadas a un tipo declarado como ocurre en muchos lenguajes estáticos. Los objetos pueden ampliarse durante la ejecución y las conversiones implícitas forman parte del comportamiento histórico.

La flexibilidad facilita el scripting rápido, pero también produce trampas famosas.

Gran parte de la evolución posterior intenta proporcionar patrones más claros y seguros sin romper la enorme cantidad de contenido Web que depende de comportamientos antiguos.

Netscape frente a Microsoft

Cuando Microsoft desarrolló Internet Explorer introdujo su propia implementación compatible, JScript.

El peligro era evidente: si cada navegador desarrollaba una variante distinta, los autores tendrían que crear páginas y scripts específicos.

La cuestión superó rápidamente a Eich y Netscape.

Para que la Web siguiera siendo una plataforma común, el lenguaje debía salir del control exclusivo de un fabricante.

ECMAScript: de función del navegador a estándar

Netscape presentó el lenguaje para su normalización en Ecma International.

El estándar ECMAScript publicó su primera edición en 1997.

La distinción es importante. ECMAScript designa la especificación normalizada; JavaScript es el nombre conocido de las implementaciones y del ecosistema.

La normalización permitió que varios motores y navegadores apuntaran a una semántica común.

Fue uno de los acontecimientos decisivos de la historia de JavaScript.

TC39: JavaScript se convierte en obra colectiva

ECMAScript evoluciona dentro del comité TC39.

Eich sigue siendo una figura histórica central, pero JavaScript dejó pronto de ser «su» lenguaje en el sentido de que una sola persona pudiera decidir su futuro.

Representantes de navegadores, empresas y comunidades desarrollan propuestas mediante un proceso por etapas.

La gobernanza moderna demuestra cómo un lenguaje nacido bajo una presión extrema puede evolucionar durante décadas sin ser sustituido por completo.

La compatibilidad da forma al lenguaje

JavaScript afronta una restricción especialmente severa: no romper la Web.

Una página antigua puede seguir públicamente accesible décadas después. Los navegadores no pueden eliminar simplemente cada comportamiento histórico que hoy parezca extraño.

Algunas peculiaridades se convierten por ello en obligaciones de compatibilidad.

El contraste con Python es interesante: la transición Python 2 a Python 3 aceptó incompatibilidades importantes para corregir decisiones antiguas. Un lenguaje incrustado en la Web pública tiene mucha menos libertad para realizar un reinicio semejante.

Primeros años difíciles

A finales de los noventa y comienzos de los 2000, JavaScript tenía mala reputación entre muchos desarrolladores profesionales.

Las incompatibilidades entre navegadores eran frecuentes. Los scripts se asociaban a efectos visuales superficiales, ventanas emergentes y validaciones sencillas.

El lenguaje se consideraba secundario.

Sin embargo, su ventaja decisiva ya existía: estaba disponible prácticamente en todos los navegadores.

La distribución universal terminaría siendo tan importante como sus cualidades de diseño.

ECMAScript 4: el futuro que no llegó

La historia de JavaScript incluye también futuros abandonados.

ECMAScript 4 proponía una transformación ambiciosa con numerosas funcionalidades. Los desacuerdos sobre complejidad, compatibilidad y dirección impidieron finalmente que se convirtiera en el siguiente estándar de la forma prevista.

El fracaso es instructivo.

Evolucionar un lenguaje desplegado masivamente exige más que buenas ideas: requiere implementaciones viables, compatibilidad y acuerdos entre organizaciones competidoras.

ES5: consolidar

ECMAScript 5, publicado en 2009, fue una etapa importante de consolidación.

Normalizó y mejoró varios aspectos del lenguaje, incluido el modo estricto y nuevas capacidades de biblioteca.

Mientras tanto, la propia Web estaba cambiando.

Las aplicaciones se volvían más ricas, los motores JavaScript mucho más rápidos y el navegador se transformaba en una verdadera plataforma de aplicaciones.

AJAX cambia las expectativas

Durante los años 2000, las técnicas agrupadas bajo el nombre AJAX demostraron que una página podía intercambiar datos con un servidor sin recargar completamente el documento.

Aplicaciones como Gmail y Google Maps ayudaron a cambiar las expectativas.

JavaScript dejó de limitarse a pequeñas interacciones añadidas a páginas estáticas.

Se convirtió en el lenguaje que coordinaba aplicaciones importantes dentro del navegador.

Eich no creó esta evolución posterior, pero confirmó la importancia histórica de disponer de un lenguaje programable universal en la Web.

Los motores JavaScript se convierten en una carrera tecnológica

A medida que las aplicaciones Web ganaron importancia, el rendimiento se volvió estratégico.

Los fabricantes invirtieron enormemente en motores como SpiderMonkey de Mozilla, V8 de Google y JavaScriptCore de Apple.

Compilación just-in-time, optimización dinámica y técnicas sofisticadas transformaron el rendimiento.

Un lenguaje diseñado en 1995 para scripts relativamente pequeños terminó ejecutando aplicaciones de una complejidad inimaginable en sus comienzos.

Mozilla: del legado de Netscape a una comunidad abierta

Tras el declive de Netscape, el proyecto Mozilla adquirió una importancia creciente.

Eich ayudó a crear la Mozilla Foundation y ocupó importantes responsabilidades técnicas.

Mozilla desarrolló Firefox y defendió una Web abierta en una época en la que la dependencia de una única plataforma de navegador constituía un riesgo real.

El papel de Eich se amplió así más allá de JavaScript hacia los navegadores y los estándares Web.

Firefox y la competencia entre navegadores

Firefox contribuyó a recuperar una competencia fuerte en el mercado durante los años 2000.

Esa competencia fue esencial para JavaScript.

Varios motores tuvieron que implementar los mismos estándares, mejorar rendimiento y reducir divergencias.

Un lenguaje Web saludable no depende únicamente de una buena especificación, sino de implementaciones independientes que puedan contrastarse con el mismo contenido.

Node.js: JavaScript sale del navegador

En 2009 Ryan Dahl presentó Node.js, construido sobre el motor V8 de Google.

El acontecimiento amplió radicalmente el territorio de JavaScript.

El lenguaje pudo utilizarse fácilmente en servidores, herramientas de línea de comandos, sistemas de build y automatización.

JavaScript comenzó a cubrir gran parte de la pila de software.

No era el objetivo del prototipo de Netscape, pero demuestra cómo un lenguaje ampliamente distribuido puede escapar de su contexto original.

npm y la explosión del ecosistema

Node.js estuvo acompañado por el crecimiento de npm y de un gigantesco ecosistema de paquetes.

La abundancia aceleró el desarrollo, pero introdujo problemas nuevos: árboles profundos de dependencias, seguridad de la cadena de suministro, fragmentación y mantenimiento.

La historia moderna de JavaScript ya no puede entenderse únicamente mediante la especificación.

Incluye gestores de paquetes, transpiladores, frameworks, bundlers, pruebas y múltiples runtimes.

ECMAScript 2015: el lenguaje cambia de escala

ECMAScript 2015, conocido como ES6, fue una de las mayores modernizaciones de JavaScript.

let, const, funciones flecha, clases, módulos, promesas, iteradores y muchas otras características cambiaron considerablemente la experiencia diaria.

La versión muestra la enorme distancia recorrida desde el primer prototipo.

Pero la evolución siguió siendo principalmente aditiva: el nuevo JavaScript debía convivir con la antigua Web.

Las clases no eliminan los prototipos

La sintaxis class resulta familiar a desarrolladores procedentes de Java, C++ o C#.

Sin embargo, no sustituye el modelo fundamental de prototipos.

Los objetos y métodos creados mediante clases siguen apoyándose en cadenas de prototipos.

La distinción es históricamente importante: JavaScript pudo añadir una superficie más familiar sin borrar su modelo conceptual original.

Promesas y async/await

La programación del navegador es naturalmente asíncrona y dirigida por eventos.

Los callbacks son potentes, pero pueden volverse difíciles de organizar cuando muchas operaciones dependen unas de otras.

Las Promises y posteriormente async/await proporcionaron abstracciones más estructuradas.

Su adopción ilustra la evolución moderna: patrones surgidos de la experiencia se formalizan y se integran gradualmente en el estándar.

Brendan Eich y SpiderMonkey

Eich está estrechamente asociado con SpiderMonkey, el motor JavaScript original de Netscape que hoy continúa en el ecosistema Mozilla.

Un lenguaje es más que una especificación.

Una implementación debe analizar código, ejecutarlo, administrar memoria, optimizar rutas frecuentes y conectar el lenguaje con su entorno.

SpiderMonkey recuerda que Eich fue simultáneamente diseñador de lenguaje e ingeniero de implementación.

La Web es más grande que JavaScript

JavaScript funciona junto con otras tecnologías.

HTML describe la estructura, CSS la presentación y las API Web proporcionan acceso al DOM, red, almacenamiento, medios y numerosas capacidades.

La distinción evita una confusión común: no todo objeto disponible desde JavaScript en un navegador forma parte de ECMAScript.

JavaScript triunfó en parte porque ocupa el centro programable de una plataforma mucho mayor.

Comparación con Java

Los nombres favorecen la confusión, pero las filosofías son muy distintas.

Java fue diseñado como lenguaje de tipado estático alrededor de una máquina virtual y un modelo de objetos basado en clases.

JavaScript nació como lenguaje dinámico de scripting para el navegador, con funciones de primera clase y prototipos.

Con el tiempo adquirieron algunas características superficialmente parecidas, pero sus arquitecturas y ecosistemas siguen siendo distintos.

Comparación con Python

Python, creado por Guido van Rossum, comparte con JavaScript el tipado dinámico y la importancia de funciones y objetos.

Sus historias son casi opuestas.

Python creció como lenguaje generalista diseñado deliberadamente alrededor de la legibilidad. JavaScript obtuvo primero su posición porque venía integrado en el navegador y se convirtió en el lenguaje estándar de la Web.

Uno muestra la fuerza de una filosofía coherente; el otro, el poder extraordinario de la distribución y la compatibilidad.

Comparación con la orientación a objetos basada en clases

JavaScript forma parte de la historia de la programación orientada a objetos, pero su modelo original difiere del de las clases de Java.

La diferencia refleja la influencia de Self y recuerda que la orientación a objetos nunca tuvo una definición única.

La sintaxis de clases añadida posteriormente no debe ocultar la originalidad histórica del modelo.

Eich no creó solo el JavaScript moderno

Es correcto decir que Brendan Eich creó JavaScript.

Sería incorrecto afirmar que diseñó solo el JavaScript moderno.

El lenguaje actual resulta de décadas de estándares, motores competidores, propuestas TC39, bibliotecas, frameworks y experiencia de millones de desarrolladores.

Su biografía es interesante precisamente porque muestra cómo una creación individual puede transformarse en infraestructura colectiva fuera del control de su creador.

2014: controversia y salida de Mozilla

En 2014 Eich fue nombrado CEO de Mozilla Corporation.

Su nombramiento provocó una controversia pública relacionada con una donación política realizada años antes en apoyo de la Proposición 8 de California, que pretendía prohibir el matrimonio entre personas del mismo sexo.

Después de un periodo muy breve como CEO, Eich dimitió.

El episodio pertenece a su biografía pública, pero es distinto de la evaluación técnica de JavaScript. Incluirlo permite mantener una cronología completa sin convertir la historia de su trabajo informático en un debate político.

Brave Software

En 2015 Eich cofundó Brave Software.

La empresa desarrolló el navegador Brave con énfasis en ámbitos como privacidad, bloqueo de determinadas formas de seguimiento y un enfoque diferente de la publicidad en línea.

La nueva etapa devolvió a Eich al ámbito que había definido gran parte de su carrera: el navegador Web.

También demuestra que, veinte años después de JavaScript, siguió trabajando sobre plataformas, estándares, privacidad y economía de la Web.

Una invención creada bajo restricciones

Una de las lecciones más interesantes de JavaScript es que las invenciones duraderas no siempre nacen de condiciones ideales.

Eich disponía de muy poco tiempo. El lenguaje debía encajar en una estrategia comercial, parecer suficientemente familiar y funcionar dentro de un navegador en plena competencia.

Las restricciones produjeron compromisos criticados durante décadas.

También produjeron una combinación poco habitual de conceptos que resultó extraordinariamente adaptable.

Los errores pueden convertirse en contratos

Cuando un lenguaje es joven, un diseñador puede corregir un comportamiento extraño.

Cuando se ejecuta en miles de millones de páginas, ese comportamiento puede convertirse en un contrato aunque nadie lo diseñara igual hoy.

Esta es una característica fundamental de JavaScript.

La compatibilidad explica por qué sobreviven ciertas peculiaridades mientras se añaden nuevas construcciones para escribir código más claro y seguro.

El lenguaje suele evolucionar por capas, no mediante sustitución.

JavaScript como infraestructura mundial

JavaScript ya no se limita a scripts de navegador.

Se utiliza en aplicaciones Web, servidores, herramientas de desarrollo, aplicaciones de escritorio híbridas, entornos móviles, automatización y muchos contextos integrados.

Eso no significa que sea siempre el mejor lenguaje para cualquier tarea.

Demuestra el efecto acumulativo de tres fuerzas: disponibilidad universal en navegadores, estándar abierto y ecosistema gigantesco.

El legado de Brendan Eich

El legado de Brendan Eich no depende de que el prototipo de 1995 fuera perfecto.

Consiste en haber creado, bajo restricciones extraordinarias, un núcleo suficientemente expresivo para sobrevivir a usos que nadie podía prever.

Funciones de primera clase, objetos basados en prototipos, dinamismo e integración con el navegador proporcionaron una base que una comunidad mundial transformó después.

Su historia demuestra también una verdad general sobre los lenguajes exitosos: terminan superando a sus creadores.

JavaScript moderno es menos la obra de una sola persona que una capa fundamental de la Web mantenida por estándares, motores, organizaciones y desarrolladores de todo el mundo.

Preguntas frecuentes

¿Quién creó JavaScript?

Brendan Eich creó el primer prototipo de JavaScript en Netscape en 1995. El lenguaje moderno resulta de décadas posteriores de evolución colectiva.

¿JavaScript fue creado realmente en diez días?

El primer prototipo fue construido en aproximadamente diez días en mayo de 1995. El lenguaje actual evolucionó durante más de treinta años después.

¿Por qué se llama JavaScript?

El nombre se adoptó en el contexto de la enorme popularidad de Java en 1995. JavaScript y Java son, sin embargo, lenguajes diferentes.

¿Qué lenguajes influyeron en JavaScript?

Su sintaxis superficial utiliza formas familiares de la familia C, las funciones reflejan influencias como Scheme y el modelo de objetos basado en prototipos recibió una fuerte influencia de Self.

¿Creó Brendan Eich ECMAScript?

Participó en el proceso histórico de normalización, pero ECMAScript es un estándar desarrollado colectivamente mediante Ecma y TC39.

¿JavaScript sigue utilizando prototipos aunque tenga class?

Sí. La sintaxis class se apoya en el sistema de prototipos del lenguaje.

¿Trabajó Brendan Eich en Mozilla?

Sí. Ocupó importantes responsabilidades técnicas en Mozilla y fue brevemente CEO en 2014.

¿Qué es SpiderMonkey?

SpiderMonkey es el motor JavaScript nacido en Netscape y actualmente asociado con Mozilla Firefox.

¿Qué relación tiene Eich con Brave?

Cofundó Brave Software en 2015 y se convirtió en su director ejecutivo.

¿Por qué sigue siendo importante Brendan Eich?

Porque el lenguaje cuyo primer prototipo creó se convirtió en el lenguaje de programación universal del navegador y en una tecnología utilizada mucho más allá de las páginas Web del cliente.

Fuentes y referencias

  1. 1.Allen Wirfs-Brock et Brendan Eich — JavaScript: The First 20 Years
  2. 2.Ecma International — ECMAScript Language Specification
  3. 3.Mozilla — A re-introduction to JavaScript
  4. 4.Computer History Museum — Brendan Eich oral history

Colección

Lenguajes de programación

  1. 01Grace Hopper: de los primeros compiladores a COBOL
  2. 02John Backus: FORTRAN, la notación BNF y el rechazo del código máquina
  3. 03Dennis Ritchie: el lenguaje C en el corazón de Unix
  4. 04FORTRAN: demostrar que un compilador podía competir con el ensamblador
  5. 05El lenguaje C: hacer portables los sistemas sin ocultar la máquina
  6. 06Niklaus Wirth: de Pascal a Oberon, diseñar mediante la simplicidad
  7. 07Bjarne Stroustrup: diseñar C++ sin renunciar al rendimiento
  8. 08Pascal: aprender a programar haciendo visible la estructura
  9. 09C++: de C with Classes a un lenguaje de propósito general
  10. 10Programación orientada a objetos: objetos, mensajes y abstracciones reutilizables
  11. 11Guido van Rossum: crear Python para que el código sea legible
  12. 12Brendan Eich: JavaScript, del prototipo de Netscape al estándar web
  13. 13James Gosling: el ingeniero que dio origen a Java
  14. 14Python: legibilidad, baterías incluidas y un ecosistema mundial
  15. 15Java: escribir una vez, ejecutar en cualquier lugar
  16. 16JavaScript: el lenguaje que hizo interactiva la Web
  17. 17Ken Thompson: de Unix a Go, la simplicidad como método
  18. 18John McCarthy: Lisp y la idea de programar con símbolos
  19. 19Alan Kay: Smalltalk y el ordenador como medio personal
  20. 20Barbara Liskov: la abstracción que hizo modular el software
  21. 21Robin Milner: ML, la prueba asistida y los lenguajes de la interacción
  22. 22Brian Kernighan: AWK, Unix y el arte de explicar el código
  23. 23Anders Hejlsberg: de Turbo Pascal a C# y TypeScript
  24. 24Larry Wall: Perl, el lenguaje que conectó las herramientas de Internet
  25. 25Yukihiro Matsumoto: Ruby y la felicidad del programador
  26. 26Rasmus Lerdorf: PHP y la democratización de la Web dinámica

¿Te ha resultado útil este artículo?