Despite being only 10 years young, Elixir is getting some serious momentum. It’s highly reliable and a great fit for microservices and cloud computing. Industries including banking, eCommerce, advertising and IoT recognize its power as it’s frequently the first choice for enterprise-level software.
Table of Contents
So… what is Elixir?
As you may know, Elixir is a dynamic and functional programming language dedicated to building scalable and maintainable applications. It is built on top of Erlang’s VM and compiles down to Erlang bytecode. Erlang is a battle-tested language, with its start dating in 1980s. It was created to solve the problem of reliable phone switching providing tools for writing concurrent, scalable code with amazing uptime and fault tolerance.
Elixir was first intended to be a Ruby-like language that would give developers access to the powerful tools that Erlang gave for parallel and concurrent computation. On top of that, it was to include features that were crucial but missing in its predecessor.
Crucial features of Elixir
We could probably spend an entire day talking about Elixir, but let’s leave that for another day and discuss the most significant features of the language.
Elixir has dynamic typing capabilities in contrast to other functional languages like Scala or Haskell. It means that types are checked in run-time and not during compilation. This has a positive impact on the development speed of simple web applications, but if you happen to be in need of static types they can be achieved Elixir through typespecs.
While both Erlang and Elixir can be characterized as being in their own group, Elixir has the constructs of a modern FP language. Immutable data structures help concurrency a lot while pattern matching is perfect for writing declarative code.
Among the other distinctive features we could also mention that it’s built on top of the Elang VM and its amazing syntax, compared by many to Ruby’s, but let’s not repeat ourselves. The point is, Elixir is one of the most powerful modern languages for building distributed systems while being concise and productivity-oriented just like Ruby.
What is there for me in Elixir?
Using Elixir for your products gives you quite some benefits from the developer’s point of view. Functional programming takes advantage of pattern-matching, higher-order function and declarative style of writing code, which means:
- better maintainability
- high-level abstractions making code easier to write and understand
- clearer testing and debugging
- easier handling of concurrent programs
Business advantages of Elixir
Elixir also has something that will make business owners happy. One of its strengths is that it’s well-positioned and can serve many IT challenges in areas that rely on robust, high-performing computing power like big data, machine learning or IoT.
Thanks to Elixir, your application will be scalable, so your software can grow with the user base. Not to mention, it’s a very stable programming language meaning you won’t need to spend a lot of time on upgrading or maintaining your software.
What can Elixir be used for? The State of Elixir in 2021
Overall, Elixir is still a rather young language but it’s super mature. Elixir is a complete language and for quite some time has been stable. We have everything we need for development, Elixir is said to be finished and there are no plans to introduce any big changes in the future.
Elixir is a general-purpose language and it wants to address many different things, however, projects should be the ones that deliver aspects that could be worked on. The community as a whole is focused on bringing new improvements, but there won’t be any breaking changes while innovations will be introduced through the ecosystem as a whole.
The Elixir Ecosystem
Within the Elixir ecosystem, we can find frameworks and libraries for various purposes including:
Phoenix provides a good mixture of tools and approaches with forward-thinking implementations. Phoenix is a perfect option for modern, interactive and dynamic APIs. It also offers a feature called Channels which turns the traditional web interaction paradigm upside down and creates a ‘channel’ for continuous communication. This allows us to allows easily deliver real-time applications.
Nerves is a framework for using Elixir in embedded software development. It allows you to craft and deploy bulletproof embedded software in Elixir.
Nx + Axon + Explorer
There are libraries for machine learning. Axon and Explorer are libraries similar to NumPy and Pandas in Python for creating neutral networks in Elixir, while Nx provides multi-dimensional arrays and numerical definitions for Elixir.
An alternative for Python’s Jupyter. In short, it’s a web application for writing interactive and collaborative code notebooks, built with Phoenix LiveView. It allows you to run an Elixir code as markdown in a browser.
A library created for concurrent and multi-stage data ingestion/processing pipelines. Broadway allows Elixir developers to efficiently consume data from different sources including Amazon SQS, Apache Kafka and others.
An Elixir framework for multimedia streaming with amazing performance. It’s an easy-to-use abstraction layer for assembling server-side applications. Membrane came in handy during the lockdowns for assembling video chats without the need to use AWS.
LiveView provides real-time, rich users experiences with server-rendered HTML, similar to Hotwire in RoR.
Giving developers real-time performance monitoring and debugging tools.
Commanded can be used for event sourcing and building your own Elixir applications following the CQRS/ES pattern.
Libraries that allow us to bring performance from lower-level programming languages like Rust or Zig, while maintaining BEAM machine safety. Fun fact: Rustler is used by Discord.
Why CEOs and CTOs love Elixir?
In September, I attended the ElixirConfEU in Warsaw. I got the chance to speak to some startup owners, software houses and developers and they all agree that Elixir is getting more and more traction. This can be seen in the number of job offers as well as money put in the Elixir-based startups. Most of the startups that got 100M+ in funding are Elixir startups and Google has been financially supporting the growth of Nx, Axon and Explorer as tools for machine learning.
CTOs say that Elixir is a perfect choice because it allows them to start lean without major rewrites along the way while working on the next projects. We can also mention that Elixir also has a foundation called Erlang Ecosystem Foundation that is focused on getting fundings for the growth and expansion of the language and BEAM.
This all means that Elixir is no longer only a language but rather an entire platform that we can use to deliver solutions on and even though it’s (only) 10 years old - it’s a mature solution for all.
If you are interested in developing your next product in Elixir and don’t know where to start - reach out. Selleo development experts will be more than happy to help you with everything concerning building a working product from start to finish.