Inspiración: Jeremy Ashkenas

Hola,

Hoy voy a hablar de cosas de las que no acostumbro: JavaScript y personas.

Quiero ponerme en el lado humano de la movida esta porque si no nos despistamos y pensamos que nuestras librerías, herramientas y mierdas no los hace un ser humano y, ya de paso, aprovechar para presentar a una persona admirable por su forma de pensar y enfocar sus soluciones.

Hablemos de Jeremy Ashkenas.

¿Por qué mola tanto este tío?

Mola porque es el autor de Backbone.js, Underscore.js, CoffeeScript, LiveScript (con otros coautores) y otras cosas locas. Hoy hablaré un poco de estos proyectos y os contaré por qué son tan interesantes.

Para empezar es extremadamente interesante la forma en la que publica los proyectos porque a parte de publicar lo que se suele hacer, con una documentación muy clara y limpia con un montón de ejemplos, publica una versión del código fuente con anotaciones que puedes leer a un lado mientras analizas el código del proyecto en el otro.

Por ejemplo, en CoffeeScript.

Creo que esto viene muy bien para que todos aprendamos de su modo de trabajar de forma sencilla y para que los novatos puedan leer pequeños bloques de código de producción con lo que hace al lado.

Documentation is like sex. When it is good, it is very, very good; and when it is bad, it is better than nothing. – Dick Brandon

Ese es el primer detalle, ahora vamos proyecto a proyecto.

UnderScore

Underscore es una librería de javascript que aporta mucha rapidez a la hora de desarrollar. Funciona sobre JQuery y aporta un montón de funciones para facilitar el trabajo del desarrollador: map, filter, invoke así como cosas más avanzadas como templating y otras cosas molonas.

En esta librería se empieza a notar cómo le gusta trabajar a este señor, empieza a asomar la programación funcional.

Link al proyecto

BackBone

Backbone es un framework muy cremas. Se basa en UnderScore y en JQuery para aportar una estructura para crear aplicaciones web que cojan sus contenidos desde una API REST.

Está basada en la estructura Model-View, no Model-View-Controller como se suele decir por ahí. Investigad qué es eso de Model-View.

Esta librería también hace uso de la programación funcional pero quizás no sea tan evidente. Lo que sí que hace es reducir de forma drástica la cantidad de código que hay que escribir y facilitar la comprensión de lo que se escribe separando en todo momento las diferentes etapas o capas del programa.

Link al proyecto

CoffeeScript

Este es un lenguaje de programación que transpila a JavaScript (ECMAScript5). Sirve para desarrollar más rápido y tener soporte para cosas que JavaScript no tiene de forma nativa pero pueden desarrollarse a mano. En realidad lo único que hace es aportar sintactic sugar a JavaScript pero lo hace con tanto estilo que casi lo convierte en un lenguaje distinto.

La transpilación esta lo que significa es que en lugar de compilar contra binario o bytecode o lo que fuera, este lenguaje de programación se transforma a JavaScript para que otras herramientas (Browsers o Node.js, por ejemplo) puedan ejecutarlo. Hay muchos más lenguajes que hacen este mismo truco: ClojureScript, ELM, TypeScript, LiveScript y muchos más. Cada uno de ellos aporta estilos diferentes sobre la idea principal de JavaScript.

CoffeeScript a mí me parece la joya de la corona. La idea principal de este lenguaje es sacar partido de JavaScript haciendo que se parezca lo máximo a Python o Ruby, que son lenguajes de programación con los que se prototipa muy rápido. De esta forma, escribimos menos y hacemos más.

Además tiene una cosa muy loca que es el Literate CoffeeScript que es una forma de usar una especie de templating en MarkDown, en el que solamente se ejecutan las partes marcadas como código fuente.

A mí me ha gustado mucho.

Con la aparición del nuevo estándar (ECMAScript6) ya no tiene tanto sentido porque casi todas las cosas que CoffeeScript aportaba han sido añadidas al lenguaje pero la forma de escribirlo sigue molando cantidad y las ideas detrás de este lenguaje siempre van a quedar para que aprendamos de ellas.

Os recomiendo que investiguéis acerca de los lenguajes transpilados a JavaScript, así como de ECMAScript y de qué diferencia tiene con JavaScript y por qué. No quiero entrar en eso ahora mismo.

Link al proyecto

LiveScript

Sin entrar mucho en detalle, LiveScript es como CoffeeScript pero basado en Haskell en lugar de Python o Ruby.

Y ya.

Tiene otra idea pero sigue siendo más de lo mismo: explotación de herramientas con un sabor concreto.

Link al proyecto

Conclusiones

Este señor es, evidentemente, un visionario de la movida. Muchas cosas que se han añadido a ES6 vienen de su trabajo con CoffeeScript y LiveScript, y sus librerías tienen bastante éxito.

En general todo lo que he contado aquí es sencillo, está bien explicado, tiene una documentación muy buena y es siempre legible y cómodo. Es un ejemplo de cómo hacer las cosas y una forma de trabajar muy interesante.

Se nota que ha trabajado en estas cosas y ha creado librerías para sí mismo y ha aprovechado para que los demás puedan aprender de ellas y utilizarlas.

Su buen gusto para la programación funcional y el prototipado rápido es lo que me ha llamado la atención de este señor. Tiene una colección de obras realmente bonita e impresionante.

La verdad es que llegué a muchos de sus proyectos de forma independiente y con el tiempo descubrí que eran de la misma persona. No me sorprendió lo más mínimo. Tienen un estilo inconfundible.

Esto no es un: copiad a este señor por favor. Es un: deberíamos aprender de él y aplicar lo que nos guste de sus soluciones en nuestros proyectos.

Espero que os haya gustado la recopilación y el formato de la entrada. He dejado muchas cosas abiertas a la investigación para fomentar que analicéis y aprendáis por vuestra cuenta también.

Cualquier duda, comentario o lo que sea: me decís.

Saludos.

PD: Y gracias a Jeremy por la colección de herramientas tan interesantes y por la genial documentación.

Anuncios

Un pensamiento en “Inspiración: Jeremy Ashkenas

  1. Single-page apps: Razones y herramientas – Free Hacks!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s