[erlang-questions] Trying to change things

Juan Jose Comellas juanjo@REDACTED
Mon Jul 5 17:57:47 CEST 2010


João, we successfully migrated a client's distributed telecom system (about
50K users) from Java/C/C++ to Erlang/C a few years ago. The new system's
been in production for a little less than a year and it took about 1.5 years
to rewrite it and achieve feature parity (and more) with the original
system. Nowadays, the new system can probably handle 10x the load of the
original one per server. There were improvements in the architecture, of
course, but switching to Erlang was one of the main reasons for the
project's success and the performance improvements.

About 3 years ago, we were reaching the limits of the old system, so we
asked the client to let us dedicate 2 developers to creating some prototypes
for a new version of the system. We created 3 prototypes: one in Java; one
in a mixture of JavaScript and a C core; and the other one in Erlang. The
Erlang prototype was the last one we did, and even before finishing it, it
was clear that it was the way to go. The JavaScript version was discarded
because it lacked certain key functionality that was really very difficult
to add. For the Java prototype we'd spent weeks trying to transparently
distribute calls among servers, to support hot code loading and to achieve a
level of fault-tolerance that would allow us to avoid dropping calls in case
of exceptions/errors in our own code. We made it work, but when compared to
what Erlang gave us for free our own code was much less resilient and much
more complex. It was clear at that point that continuing using Java for this
was harming us more than helping us. We talked to the client, showed them
the code and how simpler it was to solve our problem in Erlang and convinced
them to switch.

Erlang has its own set of problems, but they are mostly due to its weirdness
when coming from an imperative background and to its lack of market
penetration. We are in Buenos Aires, Argentina (not that far from you and
sharing your pain in the World Cup), and finding Erlang developers at the
time was a bit problematic. In our case, we didn't have any previous
experience with Erlang, other than using ejabberd for other projects, so we
had to learn it by ourselves and then had to retrain our Java developers. It
took at least a month to get them to the point where they could start
working on "real" code.

I have no regrets regarding the decision, but you will need the people
responsible for making the decision to trust you enough to commit to it.
Nowadays the decision should be simpler because there are some great books
and opensource libraries around. There are also several success stories from
big companies that have helped gather more mindshare.

So, good luck with this and don't hesitate to contact me if I can be of any
help.


2010/7/3 João Henrique Freitas <joaohf@REDACTED>

> Hello,
>
> I am working on a place wich uses the CHILL language programming to
> develop a huge telecom system. We use others languages too like C and
> C++. But CHILL is the largest code base.
>
> I staring to learning Erlang about six months ago and in the last
> three months I spent a lot of energies trying persuade developers to
> change from CHILL/C/C++ to Erlang.
>
> But is hard change things. Anybody have some experience with these
> situation?
>
> My boss question me about 'Who is using Erlang?' and I am trying to
> found some in my country (Brazil).
>
> Now I can't waiting more and start a internal project to interfacing
> with CHILL/C/C++ old base and Erlang.
>
> Thanks
>
> --
> -----------------------------------------------------------
> João Henrique Freitas - joaohf_at_gmail.com
> Campinas-SP-Brasil
> BSD051283
> LPI 1
> http://www.joaohfreitas.eti.br
>
> ________________________________________________________________
> erlang-questions (at) erlang.org mailing list.
> See http://www.erlang.org/faq.html
> To unsubscribe; mailto:erlang-questions-unsubscribe@REDACTED
>
>


More information about the erlang-questions mailing list