Sunday 15 March 2009

Can Erlang become the next Java?

Erlang is a functional programming language that has been steadily gaining attention in the industry. Some even advocate it as "the next java", but can this actually happen? Can a single language attract enough support to become a de facto standard?

In face of the current fragmentation of the programming languages landscape (Ruby, Python, F#, Scala, and a long etcetera) this seams very unlikely at first. However, the very existence of such fragmentation is indicative of the search for new programming paradigms to tackle the needs of now day's applications.

Java success in the early web days was due, mostly because it offered two key features that where essential for the nascent web applications: dynamic code loading from the network and platform independence. From this point its acceptance grew dramatically in both desktop and server applications, despite the criticisms for its poor performance.

Similarly, Erlang offers several key characteristics for the next generation of distributed applications:
  • Its adequacy to parallel and distributed programming thanks to its simple message based concurrency model.
  • It allows the hot swap of code (code of running process can be change while they are still running!)
  • It has also the reputation of being rock solid, running on Ericsson's ATM Switches with a reliability of 99.9999999% (that is some 30 seconds of downtime a year!).
Such characteristics haven't passed unnoticed to many recent open source projects like Scalaris, CouchDB, RabbitMQ, and have picked the attention of enterprise application developers.

If recent history with Java is indicative, Erlang has all the credits to take off as a main stream (if not dominant) programming language for next generation web applications.

No comments: