“Elixir is a dynamic, functional, concurrent programming language designed for building scalable applications which runs on top of Erlang Virtual Machine. Founded by José Valim in 2011 at Plataformatec, the language has seen so much of improvements in a very short period and currently steaming with lot of support for the community. Recently, they have also introduced private package repositories for the organizations that needs private package maintenance”
Why Elixir is unique?
Elixir is not just a wrapper or some kind of top-level abstraction for Erlang, which makes it fascinating and if you go deep down, Elixir has the capability to show us what the Abstract Syntax Tree(AST). So, it’s not about just coding in Elixir, that I am attracted to, but the way it gives the developer the handle to optimize the written code for improving the performance. Apart from that, Elixir Code compiles to Erlang Byte Code, Erlang has been around from 1980, and also, it is battle tested, fault tolerant and concurrent with the advantages of OTP(Open Telecom Platform).
Elixir Pipe Operator (|>) , a new Dimension to Functional Programming:
So, what’s this pipe operator? In OO based programming, many of us familiar with the term chaining, to do chanining in Erlang, one has to create n number of variables and associate them with values, but in Elixir, it’s simple:
#This is how your code would look if you don’t use chaining:
iex(1)> String.slit(String.upcase(“Why Elixir”}}
[“WHY”, “ELIXIR”]
#with chaining:
iex(2)> “Why Elixir”
……. |> String.upcase
……. |> String.split
[“WHY”, “ELIXIR”]
The above example is straightforward in putting my point in visual manner. First example, calls a function within function, and if you have to call number of operations on a value, your function would look like (fun(fun(fun())), which is not the way we want, Jose has made our lives easier with his innovative Pipe Operator
What’s the noise about Phoenix Framework?
Phoenix, a modern web application development toolkit. It’s architecture is scalable and has support for Phoenix Channels, which can be scaled upto millions of requests per second. Secondly, Ecto, a library which takes full advantage of the power of Elixir. Ecto is a highly efficient database wrapper which takes advantages of the agent model. It also provides language-integrated queries with a beautiful DSL thanks to macros. Chris McCord, has written a book for Metaprogramming Elixir, which will boost the productivity of any elixir developer.
How is the Elixir programming language better from Erlang?
Elixir is built on top of Erlang, which means all code written in Elixir compiles down to BEAM code used by Erlang VM.Both are inter-operable, that is erlang code can be directly used in elixir and vice-versa. Elixir provides metaprogramming capabilities, (metaphor: a code that generates code). Elixir Syntax is much more precise and easier to read or understand, it has it’s own in-built formatter that keeps the code in align with the standard syntax.More importantly, it has a vibrant community with excellent ecosystem of tools.
Is the Elixir programming language widely used in the software development industry?
Yes, it is because it solves several pain points from many of the existing alternatives, especially for web development.
What are some good ways of learning the Elixir programming language?
Over the past years, I have seen many people searching for tutorials to learn a language.But, Elixir’s creators have self-documented major modules / methods in elixir. If you type h {module_name}.{method_name}, you can see example usages, etc., That is a major relief for beginners to understand the basics, but for scaling to the next level, you always have a elixir forum, slack channel and mailing lists. Elixir syntax is the key, that makes learning more fun and easier. One of the best sites to start with is elixirschool.com
Is Elixir the next generation of web development?
Historically, when we started deploying web based applications, people used to depend on too many standalone applications. After the evolution of programming paradigm, web development slowly adapted to those changes with innovation of templating. Phoenix Framework is one such web framework with support for pub/sub, web apps using HTML and any other front-end which we can think of. Phoenix benchmarks indicates that it can 9M requests without breaking a sweat.
Why is Elixir attaining so much adoption in the software development industry?
Elixir is able to overcome the drawbacks of Erlang with Metaprogramming and more over increased traction with performance makes it so business-friendly. Along with Erlang, Elixir offers 99.99% up-time
Let it Crash principle offers fault-tolerance Supervision makes it more robust and user-friendly. Scalability in terms of deployment is much easier with Elixir/Erlang than any other language. With limited hardware, it provides the best performance. OTP adds to its strength and GenServers, Agents & Tasks makes it much more resilient.
Last, but not the least:
Remember, Elixir is built on top of Erlang, so any code written in Erlang is accessible through elixir. Apart from them, also, the OTP framework and supervision trees gives the language the power to scale to any lengths, without having to depend on human interference. The community is still young, but the support they provide is excellent and within a few years, they have developed and integrated a lot of new features, libraries, which makes me excited to have been a part of something big!!!