Hello World in Elixir
João Paulo Abreu
Posted on June 20, 2024
Elixir is a dynamic, functional programming language built on the Erlang virtual machine (BEAM). It was created to be scalable and maintain high-availability systems, making it a popular choice for web applications, distributed systems, and telecommunications.
What is Elixir?
Elixir is a language designed to be productive, with an elegant and modern syntax, while leveraging the robustness and concurrency capabilities of the Erlang virtual machine. Created by José Valim, one of the main contributors to the Ruby on Rails framework, Elixir combines the best of both worlds: the simplicity of Ruby and the power of Erlang.
Why use Elixir?
- Concurrency: Elixir makes it easy to write concurrent code, leveraging BEAM's lightweight processes.
- Scalability: Ideal for applications that need to handle a large number of simultaneous connections.
- High Availability: Designed for systems that need to be constantly operational, with fault tolerance.
- Performance: Takes advantage of the efficiency of the Erlang VM, known for its low latency and high throughput.
- Active Community: A growing and welcoming community, with many resources and libraries.
To install Elixir, I recommend reading this procedure on the language's page:Install. If you want to install it on Fedora/Linux, I wrote an article explaining how to install it in this environment: Complete Guide: Installing Elixir on Fedora/Linux.
Running IEx (Interactive Elixir)
After installing Elixir, we can use IEx (Interactive Elixir), an interactive REPL (Read-Eval-Print Loop) that allows you to execute Elixir commands in real-time.
To start IEx, open your terminal and type:
iex
You will see an interactive prompt where you can start typing Elixir commands.
Exiting IEx
To exit IEx, you can:
- Press
Ctrl + C
twice. - Type
Ctrl + G
, followed byq
and pressEnter
.
Examples
Let's explore some examples to get familiar with Elixir's syntax.
Basic Operations
Sum
Elixir allows you to perform basic arithmetic operations directly. Here is an example of a sum:
IO.puts(1 + 2)
Expected output:
3
Subtraction, Multiplication, and Division
Similarly, you can perform other arithmetic operations:
IO.puts(5 - 3) # Subtraction
IO.puts(4 * 2) # Multiplication
IO.puts(8 / 2) # Division
Expected output:
2
8
4.0
String Concatenation
In Elixir, you can concatenate strings using the <>
operator:
IO.puts("Elixir " <> "is fun!")
Expected output:
Elixir is fun!
Pattern Matching
Pattern matching is a powerful feature of Elixir that allows extracting values from data structures. Here is a simple example:
{a, b, c} = {1, 2, 3}
IO.puts(a) # 1
IO.puts(b) # 2
IO.puts(c) # 3
Pattern matching can be used in lists, tuples, and other structures:
# Lists
[head | tail] = [1, 2, 3, 4]
IO.puts(head) # 1
IO.inspect(tail) # [2, 3, 4]
# Tuples
{:ok, result} = {:ok, 42}
IO.puts(result) # 42
Expected output:
1
2
3
1
[2, 3, 4]
42
Your First Elixir Program
Let's create a simple program that prints "Hello, World!" to the console.
Create a file named hello.exs
with the following content:
IO.puts("Hello, World!")
To run the program, use the command:
elixir hello.exs
You should see the message "Hello, World!" printed to the console.
Main Features of Elixir
- Immutability: Values in Elixir are immutable, meaning they cannot be changed after being created. This helps prevent errors and facilitates concurrency.
- Pattern Matching: Allows extracting values from data structures concisely and powerfully.
- First-Class Functions: Functions are first-class citizens in Elixir, allowing you to pass them as arguments, return them from other functions, and store them in variables.
- Lightweight Processes: The concurrency model based on lightweight processes allows creating millions of simultaneous processes without overloading the system.
- Supervisors: Structures that monitor and manage processes, restarting them in case of failure, ensuring high system availability.
Elixir is a powerful and modern language that offers a unique combination of simplicity, productivity, and robustness. With its elegant syntax and concurrency capabilities, it is an excellent choice for a variety of applications. In this article, we covered the first steps with Elixir, from installation to running a simple program.
In the upcoming articles, we will explore the concepts and features of Elixir in more depth, helping you become a proficient developer in this amazing language.
Posted on June 20, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.