Functional languages like Erlang and Elixir don’t get a lot of attention today as other more popular languages like C++, Python, Java, and GO dominate the world of programming languages. Programmers typically know and use more than one language where Erlang and Elixir may be among them.
What is Erlang?
Rather than paraphrase, the following quote from the Erlang.org web site describes it best:
Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability. Some of its uses are in telecoms, banking, e-commerce, computer telephony and instant messaging. Erlang’s runtime system has built-in support for concurrency, distribution and fault tolerance.
The latest version of Erlang as of this writing is Erlang/OTP 19.2 released under Apache License 2.0.
Erlang is available for a number of operating systems including Windows (32 and 64 bit) and OS X to name just two of many.
What is Elixir?
Elixir v1.4 is the most recent release. Since Elixir runs on Erlang’s virtual machine, you must install Erlang before you can install and run Elixir.
Again, rather than paraphrase, the following quote from the Exlir-Lang.org website describes it best:
Elixir is a dynamic, functional language designed for building scalable and maintainable applications.
Elixir leverages the Erlang VM, known for running low-latency, distributed and fault-tolerant systems, while also being successfully used in web development and the embedded software domain.
For more information about Elixir, check out their getting started guide, online documentation, or take this Crash Course for Erlang developers.
Writing Code and IDE’s
Visual Studio 2015 is my primary IDE however I also use Sublime Text 3, JetBrains Suite of IDE’s, and Visual Studio Code. Elixir language support is available for these and other popular code editors.
Learning Erlang / Elixir
The websites for Erlang and Elixir include resources for learning their respective language. Although “dead tree” paperbacks or hardcovers are available, I personally prefer using eBooks with Amazon’s Kindle app. Copies of a given book are available to multiple devices and progress can be synchronized between them. Ebooks don’t weigh you down and they can be open in one window while work through the examples or code of your own in another.
My personal Library of Erlang and Elixir eBooks – in no particular order of preference – includes:
- “Introducing Erlang: Getting Started in Functional Programming” by Simon St. Laurent – (O’Reilly)
- “Erlang Programming: A Concurrent Approach to Software Development” by Francesco Cesarini & Simon Thompson – (O’Reilly)
- “Learn You Some Erlang for Great Good!: A Beginner’s Guide” by Fred Hebert – (No Starch Press). (Free to Read online version is also available).
- “Programming Erlang: Software for a Concurrent World – Second Edition” by Joe Armstrong – (Pragmatic Programmers)
- “Stuff Goes Bad: Erlang in Anger” by Fred Hebert and Heroku – licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. (Free to Read)
- “Introducing Elixir – Getting Started in Functional Programming” by Simon St. Laurent & J. David Eisenberg – (O’Reilly).
- “Programming Elixir – Functional |> Concurrent |> Pragmatic |> Fun” by Dave Thomas – (The Pragmatic Programmers)
- “Learning Elixir (Community Experience Distilled) – Unveil the many hidden gems of programming functionally by taking the foundational steps with Elixir” by Kenny Ballou – (Packt – open source)
- “Elixir Cookbook (Quick answers to common problems) – Unleash the full power of programming in Elixir with over 60 incredibly effective recipes” by Paulo A Pereira – (Packt – open source)
- “Metaprogramming Elixir: Write Less Code, Get More Done (and Have Fun!)” by Chris McCord (author of the Phoenix framework) – (The Pragmatic Programmers)
If you want to get into the world of functional programming and large scale programming, learning Elixir / Erlang is one option worthy of consideration.