Rompiendo las cadenas de IEx para programar en Elixir con archivos fuente
Hasta ahora, hemos estado usando IEx para probar y ejecutar código Elixir de forma interactiva, lo cual es muy útil para experimentar rápidamente. Sin embargo, llega un momento en que queremos ir más allá y dejar de escribir nuestro programa cada vez que lo ejecutamos. La idea es tener nuestro código ya escrito y guardado en un archivo para poder ejecutarlo tantas veces como queramos, sin tener que reescribirlo. Esto es fundamental, porque imagina si cada vez que encendemos el ordenador tuviéramos que programar el sistema operativo desde cero. La clave está en que el programa exista como un archivo que el ordenador pueda ejecutar repetidamente.
Para ello, lo primero que necesitamos es crear archivos de código fuente en Elixir. Esto es tan sencillo como usar cualquier editor de texto plano para escribir nuestro código y guardarlo con la extensión adecuada. No vale usar procesadores de texto como Microsoft Word o Google Docs, porque ellos añaden formato que no corresponde a código. En cambio, podemos usar editores como el bloc de notas, Sublime Text, Gedit, TextEdit o, mejor aún, Visual Studio Code.
Visual Studio Code es una excelente opción porque es gratuito, de código abierto y multiplataforma, lo que significa que funciona en Windows, macOS y Linux. Además, cuenta con extensiones específicas para Elixir, como ElixirLS, que nos facilitan la programación con autocompletado, ayuda contextual y otras herramientas que hacen la experiencia mucho más cómoda y productiva.
Una vez que tenemos nuestro editor listo, creamos un archivo con extensión .ex o .exs. La diferencia entre ambas es que los archivos .ex suelen usarse para código fuente que luego compilamos para generar código binario que ejecuta la máquina virtual de Erlang, mientras que los archivos .exs son scripts que se compilan y ejecutan sobre la marcha, de forma similar a como funcionan los scripts en Python. Para empezar, es recomendable usar .exs porque nos permite ejecutar el código directamente sin necesidad de compilarlo previamente.
Dentro del archivo .exs podemos escribir nuestro programa como lo haríamos en IEx, pero con la ventaja de que el código queda guardado. Por ejemplo, podemos crear un pequeño programa que salude a una persona solicitando su nombre por teclado. Para ello, usamos IO.gets para leer la entrada del usuario y IO.puts para mostrar el saludo. Es importante recordar que, a diferencia de IEx, aquí no podemos simplemente escribir el nombre de una variable para ver su contenido; necesitamos usar IO.puts para imprimir cualquier resultado.
Un ejemplo sencillo sería:
nombre = IO.gets("¿Cómo te llamas? ")
nombre_limpio = String.trim(nombre)
IO.puts("Hola #{nombre_limpio}, encantado de conocerte.")
En este código, IO.gets muestra el mensaje y espera la entrada del usuario. Luego, usamos String.trim para eliminar espacios en blanco al principio y al final del nombre ingresado, lo que es útil para evitar problemas con saltos de línea o espacios accidentales. Finalmente, imprimimos un saludo personalizado usando interpolación de cadenas.
Para ejecutar este programa, simplemente abrimos una terminal, navegamos hasta la carpeta donde guardamos el archivo y ejecutamos:
elixir hola.exs
Esto ejecutará el script y veremos el saludo en pantalla. Si no usamos IO.puts, no veremos ningún resultado, porque en archivos fuente no tenemos la comodidad de IEx para mostrar valores automáticamente.
A partir de ahora, podemos alternar entre usar IEx para pruebas rápidas y archivos .exs para guardar y ejecutar programas completos. Esto nos permite organizar mejor nuestro código, reutilizarlo y mantenerlo limpio. Además, con herramientas como Visual Studio Code y su extensión ElixirLS, la experiencia de programar en Elixir se vuelve mucho más agradable y eficiente.
Es momento de empezar a crear nuestros propios archivos de código fuente y dejar atrás la dependencia exclusiva de IEx para ejecutar programas en Elixir.