Introduction

Introduction to Elixir

Considering Elixir ? Or maybe just curious ? Chances are you already have some experience with programming or if you are a complete beginner, I couldn't be any more happy!

Before getting along with actual coding, let's get a couple of things straight, Elixir is not a silver bullet to all your problems, ever heard of Hammer Syndrome?

It implies that, "If you only have a hammer, every problem looks like a nail!", but in the practical world things are very different, problems are various and in different domains. Then where would you use Elixir?

Scenario

Let's consider this, the world basically works by communication, means communication is required in every aspects of life, products communicate their utility, services communicate their usability, consumer communicate their requirements, etc, and in this world of communication data is constantly being passed from one point to another.

Elixir is extremely well suited for these applications, it really shines when data has to be transferred in a highly distributed and fault tolerant manner. Often, data has to be transformed to suit the end users, Elixir with all its eco-system is a perfectly capable system for it. Perhaps, that's why products like WhatsApp, Discord & Telecom sector rely so highly on it.

If you are more interested in generating data, analysing data or manipulating data or create really low level applications, then you should consider having a look at other programming languages.

Understanding Elixir

Elixir is a functional programming language, the word functional is important as it does not have the concept of Objects or Classes, if you come from a Object Orientated Language then you need to unlearn a lot of concepts in order to understand the functional paradigm.

Programming need not only be object oriented, functional programming is a beautiful way of thinking, also it takes away a lot of pain as you don't need to keep a track of the state of objects.

How it works?

Elixir acts like a thin layer on top of Erlang, under the hood it maps everything to Erlang and also compiles to Erlang byte code. This byte code runs on the Erlang virtual machine called as BEAM.

Elixir brings a lot of simplicity and easy to understand syntax, the idea is to make the developer feel happy while coding yet maintain the high performance.

Erlang offers more than 30 years of rock solid performance and also the availability of huge eco-system of modules, these modules can be easily used in Elixir.

Getting Help

Elixir has a set of very nice online documentation and guides.

Elixir Forum is an excellent place to post queries and interact with the community.