It has been argued that object oriented languages like Java might eventually render functional languages obsolete. Object oriented code resembles the reality where objects interact with each other. Each object has properties and functions altering these properties.
On the other hand there is erlang, which can also resemble real life, only that the interaction is being emphasized. Erlang programs run in processes, commonly known as threads in other languages, which interact using messages. The message passing is built into the language, so that you would not need to write complicated networking code. Now, if we think about the processes resembling objects we'll end up in an object oriented concept - at least vaguely. ( what a comparison )
In the end erlang is a functional language mostly consisting of functions, not objects. Although it can be used for much more, in real-life it is used for - optionally distributed and event driven - server applications. In my opinion this is definitely worth a look for the open-minded developer.
A little programming example:
answer() -> 42.
Bed time reading: