Photo by Fabian Grohs on Unsplash

I started to learn Elixir programming language recently, and as a Pythonista I am liking the language a lot. While the syntax of Elixir is very different from Python, remembering more Ruby (the language that I current work with), Elixir have some of the same philosophy as Python, making it a very good choice for Pythonistas looking for their next language.

So what is the Python philosophy? It can basically be described in the famous poem included in Python itself, “The Zen of Python”:

The Zen of Python, by Tim Peters Beautiful is better than ugly.

Explicit is better than implicit.

Simple is better than complex.

Complex is better than complicated.

Flat is better than nested.

Sparse is better than dense.

Readability counts.

Special cases aren’t special enough to break the rules.

Although practicality beats purity.

Errors should never pass silently.

Unless explicitly silenced.

In the face of ambiguity, refuse the temptation to guess.

There should be one — and preferably only one — obvious way to do it.

Although that way may not be obvious at first unless you’re Dutch.

Now is better than never.

Although never is often better than *right* now.

If the implementation is hard to explain, it’s a bad idea.

If the implementation is easy to explain, it may be a good idea.

Namespaces are one honking great idea — let’s do more of those!

Elixir have most of the same qualities described in “The Zen of Python” poem. For example, the principle of Explicit is better than implicit, we have even a citation from Elixir documentation itself:

Elixir already provides mechanisms to write your everyday code in a simple and readable fashion by using its data structures and functions. Macros should only be used as a last resort. Remember that explicit is better than implicit. Clear code is better than concise code.

However, talk is cheap, show me the code. So let’s see some examples.