Erlang, a Language for the Internet of Things
As telecommunications has grown over the years, the internet has brought with it the ability for developers working with established programming languages such as Erlang to move into the spotlight. While not a new language, Erlang’s maturity has meant that companies such as Basho are utilizing it in their platform to help build scalable databases, and break into the opportunities that the Internet of Things offers.
In this episode of The New Stack Makers embedded below, we explore Erlang’s beginnings, how the language has evolved in the present IoT-driven landscape, its unique differences when working at scale, and what the future of Erlang may look like. The New Stack founder Alex Williams spoke with Basho chief technology officer Dave McCrory and Erlang Solutions founder and technical director Francesco Cesarini to hear their thoughts.
Back in the mid-1980s, it was necessary for Ericsson Computer Science Lab (CSLab), researchers to invent Erlang, a concurrent functional general purpose programming language.
“They spent three or four years researching different technologies and programming languages and came to the conclusion that there was no one language that fit the purpose. They decided to go ahead and invent a programming language, and Erlang was the result. Unlike a lot of programming languages out there, comp sci set out to solve a problem and the solution happened to be Erlang. They did not set out to develop a programming language and then figure out what to do with it,” said Cesarini.
Beyond telcos, another big user of Erlang is the Basho Riak key-value database. “Erlang is the core that Riak is built on. It was chosen very early on for its ability to operate in a highly distributed fashion,” noted McCrory.
McCrory later highlighted the potential which Erlang brings to the table, particularly in smart homes. He then went on to explain that while smart in-home devices are becoming commonplace, many buildings were also beginning to interconnect their lighting systems using a combination of sensors and Internet.
Erlang stands apart from its alternatives for how the language handles issues, which Cesarini noted is built on the premise of a supervision tree with an escalating model. “We avoid defensive programming in Erlang. If a state becomes corrupt, don’t try to correct it within your program. We have another process within the supervisor, which will in a standardized way try to address the issue,” Cesarini explained.
As for the future of Erlang, it appears to be bright. New languages such as Elixir have been created, based off of Erlang and that are gaining traction not only in the developer community as a whole but are on the roadmap at Basho.
Simplicity is what sets Elixir apart, which McCrory hopes will interest developers into trying out the language for themselves. “I like the idea of Elixir, because it will also lead some people to want to do things that hit the edge cases of Elixir, and may end up driving them to learn Erlang. So, I think that it benefits the community in multiple ways, and it also shows just how powerful the Beam VM [an Erlang virtual machine] and Erlang as a combination are, and what you can do if you set your mind to it.”