Thursday, July 10, 2008

Erlang marketable?

It seems a new "old" programming language is gathering of late.  Erlang developed in 1987 by Ericsson has attracted programmers because of it is built to support "distributed, fault-tolerant, and insert buzz current word".  

Erlang was originally built to support difficult demands of ATM/Telecom switches.  Ericsson found the other programming languages wanting and decided to create their own.  Below are some notes on their design emphasis.  (This information was obtained from a google tech talk.)
  • Fault tolerance --> Isolate errors so they don't disturb other processes.  Instead of swiss army knives seperate knife, nail clipper, cork screw.  Process supervision.  OTP is a process supervision framework for Erlang.
  • Non-stop --> "error-free", updatable.  Hot code replacement.  Erlang keeps two or more versions of code so you can update code without "restarting the server."
  • Concurrent --> All processs are equal (simple round robin scheduling is better)
  • Distrubuted, scalable and heterogeneous --> inter-process communication. Erlang uses a virtual machine, compile to a byte code.  Symmetric Multi-Processing: Multi cores may choose which process you execute from a scheduling queue.
  • soft real-time --> Some small delays ok.  Advanced GC/memmang mechanisms. 
  • "prototypeability" --> Start off quickly with our program to see if it works.  Declarative programming. Run time linking.
So why now?  The language and these design issues very compatible with the whole "CloudDB' trend.  In fact, CouchDB, an opensource distributed database, is written Erlang as well as Amazon's SimpleDB.  Other people may be using it to develop their system but have not admitted it.  In any case there will be more jobs for Erlang programmers.

It is not a sure thing for Erlang to arise as the standard Cloud Computing standard.  C++ and Java remain strong the the Enterprise realm.  New Java message passing frameworks such as Kilim. continue to increase the flexibility of Java.

Erlang has room to evolve.  A growing user base and the strong design of its roots at the least prove it to be marketable.

1 comments:

Ulf Wiger said...

Why now? Well, as one who tried to demonstrate the virtues of Erlang 15 years ago, I think that two major trends are bringing Erlang to the fore: (1) The web is getting to a point where we want web apps to start becoming conversational and fault-tolerant, and (2) the evolution of multicore has suddenly made concurrency "interesting" in a way that it hasn't been before.

Erlang's main contribution will surely be that it inspires people to view concurrency as a modeling paradigm in its own right. I don't think world domination is in the cards, though (:, but It's likely to sustain a healthy user community for some time.

BTW, OTP is much, much more than a supervision framework.