Why Erlang is the best concurrent language available
Thu Jan 23 17:02:21 CET 2003
I don't have enough experience to pass judgement yet but so far I will say
that Erlang is the best language that I have found for doing concurrent
programming in an Extreme Programming environment.
Erlang is a great language for testing Erlang. And I've not found any
parallel in other languages that allows me to test the complexities of
concurrency as easily as in Erlang.
We have adopted an OO style whereby each module is a distinct active object.
And our unit tests are developed along side each object.
This is the most fun I've had writing software in my life. I've done C,
C++, Java, K (like APL), C#, tiny amounts of Perl, VB, many other things,
and now Erlang. I've even tried ObjectiveCaml. I've even tried Douglass
Schmidt's Reactor in C++, both the ACE and my own proprietary stuff.
So far, among all of these, Erlang seems the best for my problem space.
There is only one stumbling block for my team right now. Because we don't
know how to check for module dependencies during compilation time, when we
refactor module names we sometimes forget to modify the import statements
and it takes a long time to figure out why our unit tests break.
I recall that there was some utility or feature that does module dependency
checking but I think I need two things:
1. Within a module I want strict explicit import rules. I want the compiler
to bark if I use a module that I haven't explicity imported. If not the
compiler then some sort of tool I can invoke from make.
2. Among interdependent modules I want something to check that all modules
actually exist before I run my code. I need something I can invoke from
I think these are the two things that are holding us up from claiming that
Erlang is ideal as Erlang can be. So once we figure out how to do these
things we'll be very happy and convinced.
More information about the erlang-questions