2.25.20 - The ScriptDrop Team The History of Elixir: A ScriptDrop Programming Primer

This is the first in a series on the Elixir programming language. Check back later for a post on the business case for Elixir featuring our CEO, Nick Potts.

If you’re not a software engineer, you may not have heard of Elixir. Even if you are a software engineer, you may not have had a chance to explore it.

But if you know, then you know: Elixir is a powerful programming language built on a stable, rigorously tested foundation. It allows companies to build flexible websites and applications, rapidly bring on thousands of users, and reduce operating costs. ScriptDrop has used Elixir from the beginning and it has allowed us to continue growing and scaling our business. We don’t want to keep it a secret, though, so join us for this introduction to Elixir.

What is a programming language?

It’s 2020, and our phones, cars, refrigerators, and watches are connected to the internet. We rely on our computers for work and play. We may not think about what is actually happening when we set an alarm on our phones or ask our cars to play Spotify, though. To us, we click a digital button and something happens. To the computer, we’re sending it a specific and potentially complex series of instructions.

Those instructions are delivered via a simple language of ones and zeros called binary code. However, humans aren’t very good at reading or writing binary code, which is why programming languages exist. Programming languages use actual words (in a special syntax), which are then translated into binary for the computer’s use.[1] Some languages are highly specialized and used only for one purpose. Others can be applied to a wide range of use cases.

Elixir is one of those languages.

Erlang: The foundation

In the 1980s, three software engineers at Ericsson developed a programming language. Their language, called Erlang, allowed Ericsson’s phone systems to run continuously without fail, and also allowed engineers to update the software while it was running. No more system-wide shutdowns just for updates.

Erlang became the darling of communication companies, and still is today. For example, chat and voice application Whatsapp – which as of 2018 supported over a billion users internationally, sending about 65 billion messages every day – has proven Erlang’s durability and reliability.[2]

The problem: Erlang is not very user-friendly. It’s structurally different from the popular languages that engineers usually learn, like Java, C, Python, PHP, or Ruby.[3] According to a user survey by the Stack Overflow coding community, Erlang is in the top 10 “most dreaded” programming languages.[4] Over half of the polled engineers currently coding in Erlang do not want to continue using it.

Elixir: The house that Valim built

Enter José Valim. Valim had a sincere appreciation for Erlang but wanted to make it easier to use. Taking inspiration from other languages like Ruby, Clojure, and Haskell, Valim combined the power and resilience of Erlang with a friendlier syntax that is more accessible to developers trained on Ruby, Python, and the like. Thus, in 2012, Elixir was born.

Like Erlang, Elixir can manage millions of simultaneous connections, which makes it perfect for communications. For example, the game chat application Discord has relied on Elixir to support five million users at a single time.[5] However, it would be short-sighted to see Elixir as a telecom language alone.

Joining the Elixir party

By using Elixir, ScriptDrop joins an ever-diversifying group of companies like PepsiCo, Toyota, and more that have stepped away from the “top 10” programming languages to try something different. For instance, Pinterest has millions of active users, all of them pinning images and links to their personal boards. Elixir makes it possible to handle all thirty thousand events per second on their site.[6] Moz Pro, an SEO analytics company, wanted faster responses from their databases. They used Elixir to build a replacement for their MySQL system and saw response rates drop from almost a second to 50 milliseconds.[7] That’s fast!

It’s good business

What does this mean for a business, though? To put it in extremely reductive terms, Elixir, especially combined with tools like the Phoenix framework, can be the “secret sauce” that boosts a business to the next level. This is especially the case for products and apps that have huge numbers of simultaneous connections, high numbers of users, spikes in traffic, and lots of data moving back and forth.

In addition, Elixir allows companies to do more with fewer lines of code and fewer costly servers. As Chris McCord, creator of Phoenix framework, said, “What kind of business could I build if what before took a hundred servers could today take two servers? I think that’s enabling a lot of innovation.”[8] ScriptDrop has definitely found that to be true.

We believe in our choice of Elixir as our main programming language. The fact that it was designed for accessibility as well as longevity, resilience, and fault-tolerance makes it great for our business. We also appreciate how the Elixir community thrives both locally and internationally, and we’re proud to give back to that community.

Interested in joining us as we build, learn, and expand the use cases for Elixir? Learn more here!

[1]“How Coding Works.” CodeConquest. https://www.codeconquest.com/what-is-coding/how-does-coding-work/

[2] “20 Years of Open Source Erlang: OpenErlang Interview with Anton Lavrik from WhatsApp.” Erlang Solutions, Oct 24 2018. https://www.erlang-solutions.com/blog/20-years-of-open-source-erlang-openerlang-interview-with-anton-lavrik-from-whatsapp.html

[3] “TIOBE Index for February 2020.” TIOBE, Feb 2020. https://www.tiobe.com

[4] “Technology: Most Loved, Dreaded, and Wanted.” Developer Survey Results 2019. Stack Overflow, 2019. https://insights.stackoverflow.com/survey/2019#most-loved-dreaded-and-wanted

[5] Vishnevskiy, Stanislav. “How Discord Scaled Elixir to 5,000,000 Concurrent Users.” Discord, July 6 2017. https://blog.discordapp.com/scaling-elixir-f9b8e1e7c29b

[6] Rubio, Manuel. “Which companies are using Elixir, and why? #MyTopdogStatus.” Erlang Solutions, Sept 19 2019. https://www.erlang-solutions.com/blog/which-companies-are-using-elixir-and-why-mytopdogstatus.html

[7] Ibid.

[8] “Elixir: The Documentary.” Honeypot, 2018. https://www.youtube.com/watch?v=lxYFOM3UJzo