Uno de los mercados más populares actualmente es el de la programación funcional, con más desarrolladores adoptando cada vez más lenguajes con el pasar de los tiempos.
A los populares Scala, Erlang o Clojure, se les suma un lenguaje bastante más joven pero que está demostrando su valor para la fabricación de aplicaciones escalables y mantenibles.
Se trata de Elixir, un lenguaje creado por José Valim en 2011 y que corre sobre la máquina virtual BEAM de Erlang, a pesar de poseer una sintaxis moderna. Gracias a este acoplamiento, el lenguaje resulta ser sólido y bastante funcional, lo que permite distintas aplicaciones sin ningún tipo de contratiempo.
Elixir, por ello, acaba siendo bastante dinámico, con fallos recibidos durante la misma ejecución. Sin embargo, este dinamismo no resta fuerza a Elixir, lo que evita que ocurran varios casos posibles en otros lenguajes como JavaScript, que ofrecen un tipado más débil.
Un ejemplo de esto es la operación [1 + “1”], que arroja un error en Elixir pero es válida en JavaScript.
Adquirir Elixir no es para nada complicado, ya que sólo será necesario seguir las instrucciones disponibles en su página web para su instalación en Windows, Mac o Linux.
Además, ya concluida la instalación, no será necesario la realización de configuraciones extras. Con sólo escribir “iex” en la línea de comando, podremos acceder al Read-Eval-Print-Loop, o REPL, que permite la ejecución de instrucciones en Elixir. Más allá, desde acá es completamente posible escribir una aplicación completa.
Sin embargo, la mejor función de Elixir es OTP, siglas de “Open Telecom Platform”, que se trata de una selección de librerías y funciones provenientes de Erlang que facilitan la el trabajo con programaciones concurrentes.
Como está diseñada sobre un modelo de actores, los procesos son completamente independientes, sin compartir ninguna información. Por ende, cuando se requiere de la comunicación entre procesos, será necesario el uso de mensajes por buzón.
La consecuencia son procesos muy livianos y con casi nulo consumo de recursos, permitiendo una excelente potencia que nos permite arrancar miles de procesos antes de experimentar la más mínima penalización.