What is Elixir?

Alim Arslan Kaya
Geek Culture
Published in
5 min readJul 4, 2021

What is Elixir, and why is it awesome?

Story image

If you are a web developer, you probably heard of Elixir and know that Discord uses it.

In this story, I will be explaining what Elixir is, why you should care and its pros and cons.

Please note that I won’t really be showing code here. But don’t worry, I will write stories about Elixir (and of course other languages/technologies) every day!

Let’s start!

First of all, what is Elixir?

Elixir is a dynamic, functional language for building scalable and maintainable applications.

- https://elixir-lang.org/

This is what Elixir’s official website says. And it’s quite true.

Elixir is a functional, dynamically typed language that is built on top of Erlang’s VM and compiles down to Erlang bytecode.

I won’t be explaining what Erlang is here but if you want to learn more about it, feel free to visit Erlang’s official website.

Basically, Erlang is kind of an old language that is pretty fast but a bit complex. It’s widely used especially by the telecoms.

Elixir was created by José Valim, who was a Ruby developer. He literally took the Ruby syntax, improved it and used it with BEAM. (Erlang Virtual Machine)

This makes Elixir fast, scalable and maintainable. And that’s the main reason why Discord chose Elixir for their backend. Currently, Discord uses Elixir and Rust together to serve more than 11 million users, and they are doing a pretty good job.

The Elixir programming language wraps functional programming with immutable state and an actor-based approach to concurrency in a tidy, modern syntax. And it runs on the industrial-strength, high-performance, distributed Erlang VM.

- Dave Thomas, Programming Elixir

Elixir’s Main Features

  • Elixir is built on top of the Erlang VM. Elixir has access to all the concurrency tools that Erlang has access to, making it one of the most powerful modern languages for building scalable, distributed systems.
  • Elixir has Ruby-like syntax. If you have already programmed in Ruby, the syntax of Elixir will feel very familiar. Ruby is one of the most concise and productivity-oriented languages out there, but it is lacking in performance and concurrency. Erlang VM solves both of these problems, and, therefore, Elixir is the best of both worlds.
  • Elixir is functional. While Elixir and Erlang could be characterized as being in a group of their own (they are both process-oriented), Elixir also has all the constructs you expect from modern FP languages. In particular, immutable data structures help concurrency quite a lot, and pattern matching is great for writing declarative code.
  • Elixir has dynamic typing. Elixir has dynamic typing in contrast to other functional languages like Haskell and Scala. This means that types are checked in run-time, not during compilation. While this can be a downside when building critical systems, it also increases development speed for simple web applications. Static types can be introduced in Elixir through type specs.

Should you learn Elixir?

Yes. In my opinion, every developer should try Elixir and decide if he/she likes it or not.

I was pretty biased against Elixir and thought that it was hard, complex and unnecessary.

And guess what? I’m now an Elixir enthusiast and writing stories about it!

Really, though. Elixir changes the way you think, and if you are lucky, makes you addicted to it, haha!

The bad part of Elixir

The small community. Even though I love the Elixir community and think they are pretty friendly, it doesn’t change the fact that the Elixir community is small.

It’s nowhere close to the JavaScript or Python community, and there aren’t as many community-made resources and tutorials to learn it. Which means you will have to learn a lot of stuff on your own.

But don’t get me wrong. The Elixir documentation is pretty clean and easy, same for the other Elixir learning resources. You won’t have any problems learning Elixir, I can guarantee that.

How I said, it just has fewer community-made resources and tutorials, that’s all.

But, this is actually not that bad. Because learning on your own will improve your skills and you’ll remember stuff a lot easier.

How I said, I think that every developer should try Elixir, and decide if the community is important for them or not.

For me personally, the small community is not a problem at all.

Learning Elixir

Here is a list of resources to learn Elixir:

Elixir’s Official Website

Elixir’s official website has a learning section where you can learn Elixir and see the best Elixir books, courses and more.

ElixirSchool

There is a website called ElixirSchool, which teaches you Elixir and popular Elixir frameworks and libraries.

Allyedge on Medium

You heard me right. You can follow me on Medium and learn Elixir from my stories!

Elixir Ecosystem

Elixir is not as popular as JavaScript or Python. Though, more people are starting to use it every day.

There are a lot of Elixir libraries like Alchemy (Discord Library), Absinthe (GraphQL) and Ash (APIs).

Basically, Elixir has a small but friendly and effective community. I got answers to my questions on Discord and Forum pretty fast and the members were pretty friendly in general.

Phoenix

The biggest and most popular Elixir framework is Phoenix. Phoenix is one of the best Web Frameworks out there, and it’s incredibly fast.

Phoenix has features like out-of-the-box MVC, PubSub, LiveView and more.

I personally love Phoenix. I’ve never enjoyed a framework like I enjoyed Phoenix before.

And that’s it. Thanks for reading this story!

If you liked the story, make sure to clap to it! And feel free to ask me anything you want.

Follow me on Twitter:

Support me on Patreon:

--

--

Alim Arslan Kaya
Geek Culture

Fullstack Go, Rust, Elixir, Python and TypeScript Enthusiast.