If Software Development was Religion, Erlang would have been Buddhism. And I guess Joe Armstrong would have been Siddhartha.
Let me explain.
While reading random stuff about various religions, I found this 5 minutes guide to Buddhism. What shocked me about it is that I could adapt most of the sentences contained there to Erlang and the article would have still made sense. You don’t believe me? Keep reading.
Is Erlang a Religion?
To many, Buddhism goes beyond religion and is more of a philosophy or ‘way of life’. After 10 years of Erlang development, I couldn’t agree more. Erlang is more than a though syntax. Its core ideas such as process isolation, immutable states and fast failures are being adopted more and more often, even outside of the Erlang world.
How can Erlang Help Me?
Buddhism explains a purpose to life […] and it provides a code of practice or way of life that leads to true happiness. Erlang developers are proved to be 99.9999999% happier than the average Java developer.
Why is Erlang Becoming Popular?
Buddhism claims to have answers to many of the problems in modern materialistic societies. Erlang has answers to many of the problems in modern software: scalability, fault tolerance, availability.
Who is Joe (Siddhartha) Armstrong?
In 1995, Joe (Siddhartha) Armstrong realized that wealth and luxury did not guarantee happiness, so he explored the different programming languages and philosophies of the day, to find the key to development happiness. After years of study and meditation he finally found the path and was enlightened. After enlightenment, Joe spent the rest of his life preaching the principles of Erlang, also known as The Truth, mostly at tech conferences.
Is Joe Armstrong a God?
Joe never claimed to be a God, but I don’t feel like excluding that option. Erlangers around the World worship poorly photoshopped movie posters of Joe Armstrong.
What About Elixir?
Same as in the case of Buddhism, were there are many types of Buddhism, there are many Erlang “flavours”, the most famous being Elixir. Despite of their differences, the essence of the different flavours is the same. This essence is called the Erlang VM or The BEAM.
Are Other Languages Wrong?
Buddhism is a belief system which is tolerant of all other beliefs or religions. At the same way, Erlang developers tend to respect other languages and technologies, exception made for a few Erlang Questions mailing list threads.
What are Erlang’s Four Noble Truths?
Both Buddhism and Erlang are based on the Four Noble Truths.
1. Life is suffering
In Erlang terms, things will crash. Code involves bad input, bugs and ultimately crashes. This is an irrefutable fact that cannot be denied or prevented.
2. Suffering is caused by craving and aversion
You will suffer if you expect other people to conform to your expectations. It does not matter how beautiful your API is, people will misuse and abuse it. Rather than constantly struggling to get what you want (i.e. catching exceptions), try to modify your wanting. Die happy and be reborn, or rather re-spawned.
3. Suffering can be overcome and happiness can be attained
The Erlang actor model is the path. It is Nirvana.
4. The path
Erlang is the path which leads to the end of suffering. And it starts here.
Make it work.
Make it beautiful.
Make it Ooooommmmmmm.
The relationship between Karma and side effects is left as an exercise to the reader.