The tale of Javascript. I mean ECMAScript
No puedo negar que soy un friki. Este post lo confirmará eternamente. Cuando estaba mirando las noticias de la red vi una referencia a una conferencia llamada The Tale of JavaScript. I Mean ECMAScript. (by Douglas Crockford) y me dije: ¡esto tengo que verlo!. Además soy un friki de la peor calaña porque el JavaScript (ECMAScript) es el lenguaje más denostado por programadores (yo mismo)
Pero precisamente por eso, por ser un lenguaje tan bastardo y bizarro, es muy interesante saber un poco más sobre el. Y Douglas Crockford (su página web deja ver que es un señor bien divertodo) parece el adecuado para hablar sobre el tema.
La historia de JavaScript comienza como Hypercard. ¿Con el Hypercard? Al menos parece que Tim Berners-Lee lo tuvo en cuenta. E Hypercard venía con un lengua de scripts (antecesor del AppleScript, pero eso ya es otra historia). Despues de muchas vueltas cuando el WWW comenzaba a tener éxito en Netscape quisieron añadir scripting a las páginas web. El encargado fue Brendan Eich:
He would like to write a Scheme interpreter. And they said, that's right, just the kind of thing we are thinking of. So they hired him. But before he started working, they found out what Scheme was... Don't do Scheme, we want something that people is gonna like.
Claro, al final esta exigencia acabó generando un pequeño bastardo, con una sintaxis parecida a la de Java, pero sin clases, si no con prototipos como el Self, pero con algun elemento de Scheme (lo de los lambdas, princiaplmente). Ah, y se llamó LiveScript.
Luego comenzaron las vueltas, el cambio de nombre a JavaScript (y la confusión ya que no tenía nada que ver lo uno con lo otro), en la época en que Netscape y Sun se aliaron contra Microsoft. Y tal vez por esto, despertaron al gigante, que sacó su propio navegadro y su propia versión:
They did an extremely careful job at reverse engineering the JavaScript engine. Copying at amazing fidelity a lot of the awful bugs that have been put in in heist
De aquí nació el JScript, y (no es una parte que me interese mucho, pero está contada de manera muy divertida por Douglas) finalmente que JavaScript acabase siendo ECMAScript.
Más interesante (y nunca me había dado cuenta de ello) es que relata que al final de las Browser Wars todo el mundo dejó abandonado el mundo WWW para intentar anticipar que sería lo nuevo. (Netscape, el inventor de JavaScript, despareció). Pues mientras nadie se preocupaba por esto (Microsoft estaba remoloneando), la gente se puso a usar como locos y a tope el JScript (porque de aquellas, y aún ahora en realidad la mayoría de la gente navega con Internet Explorer, así que el lenguaje que se usa hoy en día es el heredero de la copia de Microsoft).
All those things Microsoft put there intencionally for the purpose of creating interactive distributed applications could be used for interactive distributed applications.
La conferencia es mucho más que la historia del lenguaje. Un tema obvio que se trata es si el lenguaje es bueno o malo. Dado que, si bien es uno de los lenguajes más utilizados en el mundo (no solo en páginas web, si no que muchos sistemas lo utilizan como lenguade de scripts) es uno de los lenguajes que más odian los programadores.
The prototypal system is much more powerful. For years we were told that it was much less powerful, it was an oversimplification of the classical model. It was never that. It was an advancement over the classical model. And JavaScript was the language that brought this to the mainstream.... So if you use it the right way, programs will be significativally smaller than the classical model.
He aquí una de las partes más interesantes de la conferencia. Intenta explicar porque a pesar de todo, JavaScript puede ser un buen lenguaje. Y que cosas tiene positivas. De todas formas como el mismo admite, hay muchos problemas en el lenguaje y el mayor de todos, es que muchos de estos defectos se han incluido en el standard, con lo que todas las implementaciones los van a incluir.
Finalmente se habla de cual va a ser el futuro próximo de JavaScript, que cosas se le pueden añadir y que cosas no le hacen falta (Threads - no, Ficheros pseudocompilados - no, Incluir cosas que se parezcan al leguaje xxxxx - no, ...). Esta puede ser tal vez una de las mejores partes de la presentación (si uno es un programador de JavaScript, cosa que yo aún no me considero).
A lot people ask us: Can you make it more like _____ (some other language)? There are couple of motivations for that: 'I know that language, I don't know this one, and I really don't want to learn this one. So you should make it like that language that I said'. We probably are not gonna do that.
Y finalmente la clásica puya al HTML5:
We need to fix that. And the DOM is in the way of that. Unfortunately HTML5 is a big step in the wrong direction.
En general la presentación es a la vez amena y divertida. Estaba esperando a que hubiese una versión en Flash para poder insertarla en la página. Pero me he dado cuenta, que siempre he echado pestes contra el Flash. ¿Ahora voy a insertar un video Flash en la página? Venga, enlace a el fichero MP4 para que lo podais ver con vuestro reproductor favorito:
The Tale of JavaScript. I Mean ECMAScript. (by Douglas Crockford) MP4 (52:55)
Nota final cachonda: La conferencia está patrocinada por Microsoft (y ellos tambien son los que ofrecen el video) y aún así dentro de la conferencia hay un grito de guerra contra el Internet Explorer 6.
Internet Explorer 6.20 March 2010
