JavaScript Orígenes

En estos últimos días estuve escuchando muchas críticas hacia el lenguaje JavaScript, la mayoría de forma jocosa, pero aún así no menos mal intencionadas. Comentarios como "Es un lenguaje del cliente", "Es un mal lenguaje", "No hay que luego usar JavaScript" hacen que me rasque la cabeza y me pregunte por qué la gente tiene esa concepción negativa del lenguaje.

Unas de las razones, a mi parecer, es que mucha gente no conoce el verdadero origen del lenguaje. Dicen que si verdaderamente queremos entender por qué alguien es como es, debemos primero que nada conocer su historia, de donde viene y el recorrido que tuvo.

De ahí que el objetivo de este post es arrojar un poco de luz en los inicios del lenguaje para que todos podamos mirarlo con "otro par de lentes" a la hora de juzgarlo.

Historia de JavaScript

JavaScript es uno de los lenguajes más populares del momento. Básicamente todas las páginas que usamos y vemos hoy en día en internet tiene algún pedazo de código JavaScript corriendo por detrás. La WEB como la conocemos hoy en día no hubiera sido posible si no fuera por JavaScript.

El lenguaje nace en Netscape, una rama creada a partir de estudiantes que estuvieron involucrados en el proyecto Mosaic, que fue uno de los primeros web browsers en soportar múltiples protocolos. Netscape decide contratar a Brendan Eich (foto más abajo), con la intención de crear un nuevo lenguaje para su futuro nuevo navegador. Este lenguaje debería proveer funcionalidades similares a HyperCard para el navegador, y lograr que éste sea más parecido al Desktop.

Bajo esa premisa Brendan les dice a la gente de Netscape que va a crear un lenguaje parecido a Scheme, el lenguaje funcional más influyente tal vez de todos los tiempos. Netscape acepta el trato y contrata a Brendan pero luego de un tiempo, cuando ven el aspecto que tenía Scheme, le dicen que es muy feo y que quieren algo más parecido a Java, que era el BOOM en ese momento. Como consecuencia Brendan crea la primera versión de JavaScript y lo llama en su momento LiveScript, en la respetable cantidad de tiempo de DOS SEMANAS.

B

Para ser algo creado en dos semanas el lenguaje era absoultamente brillante. Brendan tomó la sintaxis de Java (por órden de Netscape), el modelo funcional de Scheme y algunos conceptos de Self (que en su momento era un lenguaje Orientado a Objetos derivado de Smalltalk, extremadamente poderoso y sin el concepto de Clase e instanciamiento de una Clase, lo cual le hacía tener una performance increíble).

Con esta mezcla inteligente nace LiveScript en medio de la primera guerra de los browsers, durante la cual Netscape decide unir fuerzas con Sun Microsystems para derrotar al Internet Explorer de Microsoft. Una de las decisiones que tuvieron que tomar en esta unión fue cuál de sus dos lenguajes poner como lenguaje del browser; Java el buque insignia de Sun o LiveScript. Al final se decidieron por LiveScript.

Cuentan las anécdotas que alguien del equipo de Netscape en forma de broma y para poner el dedo en la nariz de Sun, una vez dijo; "Llamémosle al lenguaje JavaScript en lugar de LiveScript". Y esa broma luego resultó ser el nombre definitivo del lenguaje y lo que hasta hoy en día causa miles de confusiones en las mentes de los programadores de todas las edades.

Por supuesto para que Netscape pudiera adoptar ese nombre tuvo que pagar una patente a Sun, quien registró el nombre de Java como trademark en respuesta a la broma de Netscape.

Al mismo tiempo, en el otro lado de la vereda, Microsoft fiel a su estilo se encontraba haciendo una ingeniería reversa de JavaScript, ya que el lenguaje se estaba volviendo extremadamente popular. Esta ingeniería reversa fue tan buena que hasta lograron copiar los bugs que tenía el lenguaje, y el resultado fue el lenguaje denominado JScript.

Como reacción a lo que hacía Microsoft y a la creciente popularidad de JavaScript, Netscape decide estandarizar el lenguaje. Primero va a la W3C que en pocas palabras no le "aguantaban luego" a los de Netscape, y como era de esperarse reciben una negativa de parte de este comité. Por eso deciden ir a ECMA (European Computer Manufacturers Association) para estandarizar el lenguaje. Por algún motivo bastante extraño y que nadie sabe explicar, Netscape no quería que el lenguaje se estandarice bajo el nombre de JavaScript, entonces el primer gran estándar del lenguaje se termina llamando ECMAScript.

Para ordenar y resumir la ensalada de lenguajes mencionados arriba, son tres; LiveScript, JScript y ECMAScript, que básicamente son sinónimos de un sólo lenguaje; JavaScript.

En definitiva JavaScript es un lenguaje de una rica historia, llena de decisiones tomadas por el camino, que hacen que hoy tenga muchas buenas y malas partes. Donde las partes malas se deben principalmente a su papá-sintáctico que fue Java y a que fue diseñado en tan corto tiempo. Lo concreto es que, si bien es cierto que tiene muchas cosas parecidas a Java en la sintaxis, eso es lo ÚNICO que le relaciona al lenguaje. Esto es algo que hay que tener bien claro y no confundir: JavaScript no es un sub-conjunto de Java, no es una extensión de Java, no es Java client-side y no fue creado por la gente de Sun.

Referencias