By: Clint Boulton | February 24, 2014 (Featured in the Wall Street Journal)
If you can get past the jaw-dropping $19 billion Facebook Inc. paid for WhatsApp, one of the interesting aspects of the company is that the engine that makes its message software purr is written in Erlang. The programming language is designed to support real-time communications for millions of concurrent users. Little known outside of telecommunications, the decades-old language boasts a feature that allows developers to alter code without shutting down the system. CIOs running their company’s mobile application efforts may want to take note.
“It’s a mildly exotic programming language,” said Michael Cote, an analyst who covers application development at The 451 Group. He said telecommunications carriers and instant messaging providers use the software because it is highly reliable for simultaneously shuttling hundreds of millions of messages between networks and devices. “Concurrency is one of the hardest things in computer science to do right” because more transactions means more potential for lost messages, Mr. Cote said.
With 450 million users using its mobile messaging service, WhatsApp requires the economy of scale the language affords it. Erlang has another neat attribute: it supports “hot swapping,” or altering code without shutting down the system. That’s a trait CIOs faced with quickly updating mobile applications for thousands of workers on the go can appreciate.
Erlang forms the core of several messaging applications, including Facebook Inc.’s Chat application, WhisperText’s LLC Whisper app for anonymous posts, and TigerText Inc., which doctors and nurses at more than 3,000 health care facilities use to exchange text messages. Martin Hald, vice president of systems at TigerText, said that Erlang allows him to run as many as 1 million transactions on a server without degrading system performance. He said he can also easily “trace” processes in Erlang, which helps him spot potential issues before they slow down message flow in TigerText. And if a message transaction crashes, the software automatically creates a new transaction to complete the message transfer.
Such fault tolerance is part of what makes Erlang a “great language” for stabilizing large-scale messaging systems, said Sumeet Bhatia, CTO of TigerText. But Mr. Bhatia said it’s tough to find programmers fluent in Erlang, with more students learning to build messaging applications in Java, Ruby on Rails or other languages. “It’s not a language that is taught in school,” Mr. Bhatia said. He said he’s had to hire programmers and train them how to code in Erlang.
Joe Armstrong developed the first version of Erlang to run in telephony applications while working for Ericsson in 1986. The technology remained proprietary until 1998, when Ericsson released it to open source.