Desde hace algún tiempo, vengo escuchando sobre Elixir y la verdad no le había prestado atención porque con Ruby tenía lo suficiente para hacer lo que necesitaba. Sin embargo, últimamente he estado sintiendo presión social para aprender Elixir
Elixir es un lenguaje dinámico y funcional diseñado para construir aplicaciones escalables y mantenibles.
Creo que el mejor recurso para aprender que es Elixir es yendo directamente a la fuente, por lo que recomiendo leer (completo) Elixir-School
No había tenido previamente ninguna experiencia con Functional Programming (al menos no conscientemente) y Ruby me acostumbro a ver todo como un objeto por lo que tuve que hacer un esfuerzo en romper el OOP. Hay una serie de artículos de Charles Scalfani(@cscalfani) que me ayudaron bastante a comprender este tema: So You Want to be a Functional Programmer
Hay que dedicarle un tiempo a esa sección y derrepente sentirás que la programación funcional es más natural que la orientada a objetos. Llegados a este punto, hay que leer obligatoriamente la guía “Elixir Getting Started Guide” mientras lo leía, se me hacía necesario aplicar algunos elementos para entender mejor su funcionamiento, por lo que empecé a utilizar Exercism para realizar algunos ejercicios. También realicé completo el elixir-koans lo cual es muy util para entender algunos comportamientos.
La sintaxis de Elixir está inspirada en Ruby y esa es una de las cosas que más me agrada, lo otro que le da un plus es que la comunidad apenas está creciendo, por lo que representa una oportunidad para aportar en el desarrollo.
Aqui dejo un ejemplo del famoso HolaMundo
para Ruby y Elixir respectivamente
Luego en irb
Con Elixir no es muy diferente, sólo que en vez de module
se usa defmodule
(las clases no existen), para cada inicio de bloque hay que usar do
, los valores predeterminados de una variable se definen con \\
y para usar puts
hay que hacer referencia al módulo que lo contiene IO
a menos que lo hagas con alias
pero no voy a profundizar en eso por ahora.
Luego en iex
Como pueden notar, se parecen tanto que parece lo mismo, de verdad recomiendo empezar ya a aprender Elixir.
Actualmente estoy leyendo “Elixir in Action” para profundizar un poco más en el tema.
OJO: Recomiendo también unirse al canal en #Slack elixir-lang