Para comenzar recomendamos el libro online gratuito Joy Of Elixir donde podrás realizar ejercicios para aprender lo básico del lenguaje. Es importante complementarlo con la herramienta Livebook ya que con ello podrás instalar Elixir fácilmente y ejecutar scripts.
🧙 Elixir Chile 🇨🇱 tiene el objetivo de crear artefactos de software, documentación y actividades para el fomento de la tecnologÃa Elixir en el paÃs.
Elixir es mucho más que un lenguaje de programación para backends. Es todo un ecosistema que sirve para distintos propósitos y cada dÃa hay nuevas herramientas. Ciertamente si decides invertir en esta tecnologÃa, podrás acceder a muchos campos laborales y proyectos entretenidos.
La siguiente tabla muestra algunas de las herramientas disponibles en el ecosistema.
Un ejemplo es el experimento de Leandro donde se probó la cantidad de conexiones TCP. Elixir y Erlang superaron incluso a tecnologÃas como Go y Rust.
Razón Negocio: Utilizar tecnologÃas modernas como Elixir permite contratar personas curiosas, lo que es más probable que sean buenos candidatos. La disminución de las dependencias permitirá ahorrar costos a mediano y largo plazo.
Razón Emocional: Elixir y Phoenix son lenguajes y frameworks modernos y fáciles de aprender, lo que los hace entretenidos y permite motivar a las personas a experimentar y generar nuevas ideas o soluciones. Además son bien valorados en el mercado y las ofertas laborales están bien remuneradas.
Razón Profesional: Utilizar Elixir y Phoenix traerá oportunidades laborales novedosas, además de mejorar las probabilidades de destacar en el mercado al utilizar una tecnologÃa con menor cantidad de competencia.
o=%{nested:%{prop:"¡Hola!"}}# Esto es lo que se conoce como Pattern Matching# Una herramienta muy poderosa en los lenguajes# funcionales como Elixir.%{nested:%{prop:prop}}=oIO.inspect(prop)# ¡Hola!
Surface UI para React.js Devs
Ahora veremos una pequeña introducción a Surface UI y cómo alguien que conoce React.js puede aprenderlo fácilmente, permitiendo acceder al maravilloso mundo de Elixir y Phoenix.
Para comenzar esta pequeña comparación de tecnologÃas. Considerando React.js para Server Side Rendering (SSR) en el framework Next.js.
Surface UI es una extensión para LiveView de Phoenix que trae convenciones y herramientas muy similares a las encontradas en frameworks de frontend Javascript como React.js o Vue.js.
React.js permite crear frontends web de forma declarativa en el ambiente cliente con Javascript. Reemplazando la forma imperativa comunmente usada en otras tecnologÃas como jQuery y HTMx. Actualmente existen herramientas como Next.js que permiten traer esta forma declarativa de crear frontend al servidor, sin embargo estos frameworks de Javascript al nivel de servidor no tienen las mismas caracterÃsticas y capacidades ofrecidas por tecnologÃas que funcionen bajo la BEAM VM.
Phoenix con su herramienta LiveView permite crear frontends web de forma declarativa en el ambiente servidor con Elixir. Sumando la extensión de Surface UI nos permite tener lo mejor de los dos mundos. Primero una excelente y robusta plataforma de servidores y segundo, una forma de crear frontends utilizando convenciones y herramientas de fácil aprendizaje para personas que provengan de ecosistemas como Javascript.
Ejemplo de Módulo Surface
defmoduleMyAppWeb.ExampleLivedouseSurface.LiveView# Importamos nuestro componente# utilizando un aliasaliasMyAppWeb.Components.ExampleComponentdefrender(assigns)do# Renderizamos el HTML final# Con una sintaxis similar a JSX de React.js~F"""
<ExampleComponent>
¡Hola Mundo!
</ExampleComponent>
"""endend
Al igual que React.js podemos definir las propiedades, tanto obligatorias como opcionales de nuestro componente y pasarlas al momento de renderizar el componente.
De la misma forma que se usa Storybook para React.js, Surface UI cuenta con Catalogue, una ayuda para documentar y ver nuestros componentes de forma fácil y bonita.
Además el uso de Surface UI permitirá a muchas personas del área frontend Javascript, ingresar al mundo del desarrollo frontend y backend con Elixir, Phoenix y Liveview.