As the name suggests, it’s an epic battle between decades old native programming languages and the recent functional programming languages like erlang and elixir. I’m not going to list down the differences between the functional programming paradigm and OOPS paradigm, instead I’ll show you the advantages of our spotlight Erlang and Elixir. After reading this post, you will learn the benefits of functional programming with elixir and erlang.
Erlang – Battle Tested
- It has been in production applications for more than 30 years
- Community Support is still getting better
- It powers most of the robust systems that handles of millions of users
- It’s in-built libraries are far more self-sufficient to create and deploy applications in an instant
- 30 years of programming needs and pressure made sure that ERLANG is the base for many other functional programming languages
- OTP (Open Telecom Platform), a set of standard tools that shows the robustness of Erlang
An excellent article by a programmer using Erlang: Article
For many of you, who don’t know what is fault-tolerant, let me put it in simple terms:
Suppose, you have an application with process A and process B, if process B raises an exception or error, your whole system might have been brought down, unless you have defensively coded every awful situations. As a Human, we’re always prone to mistakes.
This is where Erlang SHINES, According to Joe Armstrong (Fondly known as Father of Erlang), the motto of Erlang is :
LET IT FAIL
Oh my goodness! What’s is that? I know what you’re thinking, let me jump in straight to the point. In Erlang, the processes are light weight and are very much similar to OS threads, isolated from each other. Gotcha! So when any process fails, only that process gets affected and the rest of the system stays intact.
In this Era, all programming languages have some sort of supporting library to support concurrency, but the Erlang has in-built support for Concurrency and since, it’s process threads are really light weight, it can handle more concurrent process / requests with commodity hardware.
Whatsapp was designed by a just tens of people with minimal infrastructure and yet, it supported more than millions without breaking sweat and it still is.
I can give you lots and lots of companines that are using erlang to power their systems. For exhaustive list of companies, Companies – Powered By Erlang
After the innovation of docker, the main selling point of Erlang or less used or underrated feature of Erlang, is it’s ability to upgrade Code without stopping the application. Every other programming languages, need to stop their systems to bring the new changes to effect, but erlang does it with ease without stopping the application There are few more features such as pattern matching, immutability and others, which are used everywhere in Erlang, but let’s get through with the our main goal.
Elixir is one of most popular language that was built on top of Erlang VM. The reasons for it’s popularity are:
- Goodness of Ruby, in terms of Syntax (Ruby is still one of the best web development framework)
- Goodness of Erlang, in terms of BEAM (Compiled code of Erlang), OTP and Erlang VM
- Meta-programming (Simply put, Code that writes Code)
- Pipe Operator (Pass the result from one operation to another without intermediate storage / variables)
- Mix Tool (Toolkit for app releases, upgrade, update, etc.,)
- Nerves Project (Embedded Systems – Elixir Projects)
- Phoenix Framework and Ecto (Fully Functional Web Development Framework)
Everyday, the community support is growing and recently Elixir released it’s latest planned features complete version 1.9 and Jose Valim (Creator of Elixir) has announced that the community will actively ship new releases every six months with improvements and fixes though the elixir by now as a language is complete with self-sufficient packaging and releases.
Migrating to Elixir
As pioneers in Elixir, we are proud to say that we have helped almost 40+ clients to ship their existing applications to Elixir within a short span of time. We have multiple stages for supporting you, if you need to ship a part of your application or the whole application itself:
- Free POC to prove our Capability
- Product / Feature Understanding (Business Analysis)
- Product Planning / Mapping Features
- Choosing the Right Set of Frameworks or Tools
- Choosing the Best Persistent Storage (SQL or NoSQL)
- Product / Feature Development
- User Access Testing
- Production Release
The above process is a proven process that we have been following with every client.All are happy with the new structure that can support huge loads of traffic without exercising a big need for resources.
Hope! You really enjoyed and understood, why you really need to switch! If you’re looking for support related to migration or create applications from scratch, fill out the form below!