Movimiento en Elixir

En estos últimos días ha habido un gran revuelo en el mundo Erlang con respecto a Elixir. Ha habido varios detonantes, pero el que los ha unificado todos y los ha comentado desde su experiencia, tras una semana de hacer pruebas con Elixir ha sido Joe Armstrong, padre de Erlang, en un artículo denominado A week with Elixir.

Elixir en boga

Como comenta Joe, el primer detonante es el anuncio por parte de Pragmatic Programmers de que está disponible un libro sobre Elixir en su haber. Está en versión beta y dicen que no saldrá hasta que no saldrá de versión beta hasta que no se publique Elixir 1.0. Según Dave Thomas, amante de Ruby, así vio su acercamiento a Elixir:

Hace unos meses estaba charlando con Corey Haines. Estaba lamentando el hecho de que quería encontrar una manera de mostrar a la gente conceptos de programación funcional sin el tipo de trampas académicas que esos libros parecen atraer. Me dijo que volviera a examinar Elixir. Lo hice, y me sentí de la misma manera que sentí cuando vi por primera vez Ruby.

Joe Armstrong llamó a Dave Thomas y mantuvieron una conversación en la que Joe se sorprendió de la fascinación con la que Dave le comentaba cómo era Elixir, así que decidió tomarse una semana para investigarlo. Después de la semana, pudo aportar algunas experiencias y comentarios con José Valim (se pueden ver en su blog) y concluye diciendo:

Esta ha sido mi primera semana con Elixir, y estoy muy emocionado. Elixir tiene una sintaxis que no da miedo y combina las buenas características de Ruby y Erlang. No es Erlang y no es Ruby, y tiene ideas propias.

Joe también comenta que hablando con Simon St. Laurent (autor de Introducing Erlang) le desveló que estaba trabajando en un libro de Elixir para O’Reilly. Esto desvela que si grandes compañías editoriales se hacen eco de este lenguaje, es que dará mucho de qué hablar en muy poco tiempo.

Update 2013–06–14: ya hay una versión early release del libro de Simon St. Laurent en O’Reilly, Introducing Elixir.

Dynamo y Benchmarks

Hace pocos días, José Valim publicó en su gist un código para hacer un benchmark entre dynamo y otros sistemas parecidos en otros lenguajes. La verdad es que la gestión de Dynamo comienza a ser digna de mención, sobretodo teniendo en cuenta que su madurez es menor que el resto de software presentados.

Los benchmarks son sistemas que deben de observarse bien ya que muchos de ellos prueban a niveles en los que ciertos sistemas aún no despuntan con respecto al resto y las pruebas pueden ser no lo suficientemente extensas para poder apreciar lo que en realidad un sistema puede llegar a hacer. Por eso el título del gist de José Valim es Lies, Damned Lies and Benchmarks. Teniendo en cuenta el rendimiento con pocas rutas parece que Dynamo es el óptimo y sin embargo al ampliar el tamaño de rutas a tratar se ve un descenso significativo del rendimiento. Tema en el que José Valim está inmerso y a medida que Dynamo vaya madurando se irán viendo mejoras.

Dynamo es un framework que permite realizar programación web. Incluye un gestor de rutas, controladores y vistas. En muchos casos muy parecido a Sinatra, mezcla la simplicidad con la potencia y todo ello sobre la plataforma de Erlang y la sencillez de Elixir.

Erlang y Elixir

Elixir, como lenguaje sobre la plataforma Erlang, permite también agregarse dentro de proyectos de Erlang, con lo que podemos sumar la potencia de que disponen proyectos Erlang y agregar funcionalidad y/o código en Elixir para simplificar, clarificar o potenciar ciertas partes de nuestro código.

Con este plugin para rebar, según se puede ver en la discusión que abrí hace poco para comentar el hecho de mezclar código, se puede ver el cómo incluir código de Elixir en nuestros proyectos.

Conclusiones

Como se ha dicho desde el principio, ya lo comenté hace tiempo en la discusión que mantuvieron Yariv Sadam con Toni Arcieri y Damien Katz, la sintaxis de Erlang no es algo que apasione. Al estar derivada de Prolog y muy distante de otras anotaciones como la de C, PHP, Java, … hace que los programadores no se sientan (en su mayoría) cómodos codificando en Erlang.

En Elixir veo una nueva forma de realizar las cosas que ya se hacen con Erlang y sobre la plataforma de Erlang con una nueva sintaxis y mejores prácticas aplicadas al propio código. Eso siempre es bueno, sobretodo por poder agregar un nuevo sabor a la plataforma y una nueva opción a la hora de programar código para la máquina virtual de Erlang.