crockford-javascript-goodparts

¿Quiénes son JavaScript y Douglas Crockford?

Aunque Crockford entró en la vida de JavaScript pasados muchos años, ambos están inextricablemente unidos. Hoy en día no podemos entender JavaScript sin Crockford, ni a Crockford sin JavaScript.

Sin embargo, como en toda historia interesante, es mejor que empecemos por el principio.

edificio-sun-microsystems

Al principio, había C++++

En 1992, en tiempos de Naranjito y de la Expo, Jim Gosling estaba sentado en su despacho en Sun Microsystems (curiosamente el edificio que hoy es ocupado por Facebook) intentando desarrollar un lenguaje que quería que fuese el sucesor de C++. Jim era muy buen informático, pero una calamidad eligiendo nombres, así que no se le ocurrió nada mejor que llamarlo C++++. Así, tal cual.

Lógicamente, sus amigos le avisaron de que no podía usar ese nombre, que tendría que buscar algo más molón. En un arrebato de inspiración, miró por la ventana y vio un roble (oak en Inglés), así que le llamó Oak (algo hemos mejorado).

Al poco rato, Gosling dejó Sun para meterse en una startup dedicada a crear contenido interactivo para la tele. Oak sería el lenguaje elegido para esa tarea revolucionaria. La empresa fracasó. De muy mala manera. Si fuese yo un hombre de mala leche, diría que esto ya presagiaba lo que iba a ser el futuro del tal Oak, pero no es el caso.

Jim volvió a Sun y sentado con unos amigos en una cafetería se pusieron a pensar cual había sido la causa del fracaso de la anterior startup. Aparentemente, una de las razones es que el nombre Oak no molaba. Así que mirando el menú, decidieron llamarlo Java (jerga norteamericana para café).

Sun decide que, dado al vil fracaso que Oak había sufrido a la hora de aportar interactividad a la televisión, era el candidato ideal para tener éxito trayendo interactividad a la web (que por aquel entonces empezaba).

netscape-navigator

Entra Netscape

Netscape por aquel entonces era el browser dominante y en gran parte imponía sus deseos sobre el estándar de html. Algo que el WW3C jamás le perdonó (luego veremos las repercusiones de esto).

Netscape también pensaba que era fundamental aportar interactividad a la web. Era la única forma de hacer frente a Microsoft y crear una plataforma ejecutable (la web) que hiciese irrelevante a Windows.

Así que, ni cortos ni perezosos, encargaron a uno de sus mejores ingenieros, Brendan Eich, que crease un lenguaje específico para esa tarea. Tenía que ser ligero y eficaz. Lógicamente, le dieron tiempo de sobra para hacerlo: 3 semanas.

Considerando eso, hay que reconocer que no lo hizo nada mal. El lenguaje se llamaba LiveScript y era una mezcla de dos lenguajes brillantes:

  • Scheme, un lenguaje funcional
  • Self, un lenguaje orientado a objetos que no necesitaba clases. Curiosamente, desarrollado en Sun.

LiveScript fue el primer lenguaje incluido en un browser y en un servidor de aplicaciones web (¿os suena de algo, desarrolladores de Node.js?). En ambos casos, productos de Netscape.

Pronto, Sun y Netscape se dieron cuenta de que por separado Microsoft se los comería con patatas, así que decidieron unirse. Pero las cosas empezaron a torcerse nada más empezar: Sun quería que Java fuese el protagonista, pero Netscape, con más tino, reparó en que hacía falta un lenguaje más ágil y ligero.

La cosa más o menos se «arregló» cuando Sun registró el nombre JavaScript para LiveScript. Aunque con ello, daba a entender que se trataba de una versión light de Java. Desgraciadamente, esta confusión sigue hasta el dia de hoy, con miles de búsquedas en San Google con «diferencias entre Java y JavaScript».

facepalm-star-trek

Por si alguien aún no lo sabe, Java y JavaScript se parecen tanto como King Kong borracho entrando en una cacharrería y una bailarina de ballet interpretando el Lago de los Cisnes.

Como si con todo lo que tenían encima no fuese suficiente, Microsoft asoma de nuevo y, mediante ingeniería inversa, sacó su propia versión del lenguaje, al que llamó JScript. Después empezaron a surgir versiones levemente incompatibles del lenguaje y con varios errores de implementación que le quitaban credibilidad al lenguaje.

Pero dejemos claro desde ya, que LiveScript de Netscape era una excelente lenguaje, especialmente si tenemos en cuenta que tuvo que ser desarrollado en 3 semanas. Netscape le vio las orejas al lobo y decidió que para no perder el control sobre el lenguaje tenía que convertirlo en un estándar. Lo normal, especialmente para una empresa californiana, era acudir al WW3C, lo cual le ofreció a éste la oportunidad que estaba buscando desde hacía años: hacerle un corte de manga a Netscape.
burns-malvado

A Netscape no le quedó más remedio que irse al otro lado del Atlántico, al European Computer Manufacturers Association (ECMA), con sede en Ginebra. De ahí que el nombre «de verdad» del lenguaje sea ECMAScript.

Un lenguaje incomprendido

A pesar de la estandarización, quien mandaba en ECMA seguía siendo Microsoft, y siguió interfiriendo en el lenguaje. Surgieron muchas implementaciones malas de ECMAScript, y los errores de implementación pasaron a ser parte de la especificación, por el deseo de Microsoft de no romper código existente (era preferible romperle los huevos a los desarrolladores).

Esto hizo que JavaScript / ECMAScript / LiveScript o cómo lo queráis llamar, haya pasado a ser el lenguaje más incomprendido, a la vez que el más usado de la historia.

Sin embargo, en el fondo de JS, hay una serie de premisas que hacen de él un lenguaje sencillo, potente y elegante:

  • Funciones de primer nivel
  • Tipado dinámico
  • Objetos de primer nivel que actúan como contenedores genéricos de valores y funciones.
  • Prototipado dinámico

Algo así como Forrest Gump: por muchos considerado un idiota irrecuperable, pero que ha tenido logros enormes, y si prestas atención a lo que dice, verás que en el fondo posee una gran sabiduría.

Entra Douglas Crockford

crockford-chuck-norrisLo que este lenguaje elegante, pero plagado de errores, en buena parte introducidos por Microsoft, necesitaba, era que alguien lo rescatase del desprecio e incomprensión generalizado en el que vivía.

Esta persona es Douglas Crockford: un producto típico del Silicon Valley y del norte de California. Se trata de un desarrollador autodidacta con aspecto de surfista entrado en años. Douglas empezó trabajando en Atari Labs, fundó y trabajó en innumerables startups, fue líder de tecnología en Lucas Arts (el empleo más friki que se me pueda ocurrir) hasta que un buen día, al trabajar en Yahoo se encontró con su media naranja: JavaScript.

Desde entonces, se convirtió en el principal evangelista de JavaScript y nos convenció a todos. Al principio con una serie de vídeos grabados en la sede de Yahoo en Santa Clara, que son de estudio obligatorio para cualquier desarrollador.

Al poco tiempo, sacó un libro que se convirtió en un clásico inmediato: “Javascript, the good parts”. Este es el trabajo inicial que sacó a JavaScript a la luz y a la respetabilidad: si te olvidas de las pifias que en su día metió a la fuerza Microsoft, tienes una lenguaje fantástico con el que desarrollar.

No satisfecho con eso, inventó el estándar de JSON usado en todo el mundo y la herramienta de JSLint.

Es sin lugar a dudas el Rey de Javascript.  Eso sí, el Rey de Bastos, ya que le gusta dar caña y no tiene miedo a sacudir con su cachiporra.

El éxito que hoy vive JavaScript, sería imposible sin el trabajo incansable de Crockford.

A dia de hoy, sigue siendo vecino mío, en la zona sur de la bahía. Ahora mismo trabaja en PayPal y esporádicamente reparte sabiduría —y a veces castigo— entre los mortales. Cada vez menos, y es que para aprender de los verdaderos maestros, a menudo tenemos que ir a buscarlos a los pantanos de Dagobah.

douglas-crockford-españa

Pero no en esta ocasión, ya que en el mes de Julio tú, yo y todos tendremos el lujo de tener a Douglas Crockford en España. Tal acontecimiento será en el KeepCoding Connect, donde podrás verlo en directo y empaparte de la sabiduría de este «mastermind» de la programación. Y por supuesto, gratis, porque en KeepCoding vemos el Connect como una fiesta friki, y cuando invitas a tus amigos a tu casa, no les cobras.

Así que inscríbete ya al KeepCoding Connect, el evento friki del año, antes de que se agoten las entradas. Lamentablemente el aforo es limitado. Ya sabes: Connect. Frikismo. Crockford. Madrid. 8 de julio. ¿Sí?

La próxima semana os hablaré de otro invitado de lujo del Connect: Rebeca Gelencser, una de las más conocidas recruiters del Silicon Valley que vendrá a contarnos cómo hacer posible el sueño de todo friki: plantar una pica en Tierra Santa. Pero esa es otra historia, que os contaré en unos dias.

Fernando Rodriguez

Acerca de Fernando Rodríguez Romero

Co-Founder & Trainer at @Keepcoding_es. Advanced iOS instructor at @bignerdranch. Previous life as pythonista and smalltalker. Coder, Speaker, Blogger, Dad&Cook

Share this:

3 comments, add yours.

Rodrigo

Muy buen articulo!
Y que visita ilustre tienen en Keepcoding.
Tengo una sana envidia, si estuviera en España sería de los primeros en apuntarme.

Saludos desde Chile.

    Fernando Rodriguez

    Fernando Rodriguez

    Autor

    Chucha, que estai relejos, weón! 😉

    Puedes seguir el streaming, pero no es lo mismo, créeme. 🙂

Pedro Fumero

Excelente artículo Fernando, desconocía mucha de la historia del lenguaje, que no deja de ser muy interesante, me parece absolutamente fantástico que uno de los lenguajes más utilizados hoy en día haya sido creado en apenas 3 semanas y por una sola persona, bastante impresionante! 🙂

Leave a comment