Businesses from the software development community are constantly challenged to produce new and innovative applications, but most importantly, to produce them in a short period of time, whether to quickly fill a need in the market or to scale to meet all user requests. To answer these challenges, we observe the constant appearance of new tools of programming and languages always more powerful. However, it happens that start-ups make the choice to use some more mature languages, by their specificities. This is the case, for example, of Whatsapp, which has chosen to develop, from the outset, its entire application, server-side, in Erlang, a little-known programming language initially created by Ericsson in 1986.
Through this article, we will seek to understand what are the strengths of Erlang to make you choose this programming language rather than another.
If there is one area in which Erlang differs from so-called more “traditional” languages is that of error management. Indeed, Erlang has been designed so that a program can overcome each error to ensure continuous operation, rather than simply stopping. This is because Erlang was originally designed to operate on telecom equipment requiring high availability. This property makes Erlang fault-resistant and greatly simplifies error handling. Indeed, we no longer wonder if things will work, we only wonder what we will do when it works.
By this term, it means the possibility of updating a program written in Erlang without stopping it. This possibility is due to the fact that the Erlang code is loaded and managed as a set of compilable modules, the system can maintain two versions of a module in memory at the same time and the processes can simultaneously execute code of each of these versions. What is even more remarkable is that it is possible to modify a program Erlang live during its operation, without the users observe discontinuity. This is extremely interesting in the case of a mobile application such as Whatsapp requiring regular updates.
One of Erlang’s main strengths is the notion of competition. Indeed, it is necessary to know that with Erlang, an application is subdivided into a multitude of “light” processes whose cost in machine resource is lower in comparison with the standard processes C or Java. So we can create a large number without the performance being degraded. What is also interesting is that here, the processes do not share virtual memory but rather communicate via the sending of messages where the recipient receives the message and stores it in a kind of mailbox that he periodically consults, which avoids the typical problems of synchronization.
In the end, “Let it crash”, “Compile once run forever” , “Failure is very much an option” , are so many slogans found by Erlang developers and which define relatively well what this language corresponds, and it is to a powerful, robust and ideal language for a server application requiring high availability. Therefore, although it is not the most used programming language in the world such as Java, it perfectly meets the needs of a high-performance instant messaging application for your business.
If you are convinced about this possibility for your enterprise, you should give us a call and we’ll schedule a meeting to talk more about the benefits of Erlang.