[erlang-questions] "Erlang, the next Java"
Fri Aug 10 19:22:00 CEST 2007
On Aug 10, 2007, at 4:43 AM, Kenneth Lundin wrote:
> I don't agree with you about the shortcomings, see below.
> Ericsson is a wordleading telecommunications company and stands
> behind Erlang.
> It is true however that Ericsson is not marketing Erlang because
> Ericsson does not currently have sales and support of generic SW as a
> business case. But maybe that can change at least I hope that.
I agree. That's precisely the problem. i.e., no company is behind
pushing the language to make it popular. Ideally, we don't have to
do that in order for a programming language to succeed (by popular
votes). I'm finding out that executives have a tough time swallowing
something based on purely technical reasons. They want insurance.
Someone to support them if problem arises. It's not in their core
competency to build up expertise in how an Erlang VM works, for
example. (Just one of the many arguments...) And they're cheap,
they want a large community like Java and with free indirect support
from Sun because Sun is totally committed to the Java platform. I
personally think this is lame because there are other languages used
in a company successfully with less than such level of implied
support behind it.
>> Second, I heard a lot that distributed
>> Erlang doesn't scale in a large distributed environment with
>> thousands of machine. I personally don't have any experience to
>> assert it one way or the other.
> Erlang's internal distribution mechanism (between Erlang VM's) was
> not designed
> with the intention to support thousands of VM's communicating over the
> open internet. It was built to be used on a LAN with a relatively
> static number of VM's in a cluster (max 255 from the beginning, but
> that limit is removed now).
> Because of this there can be some problems with very large setups
> where thousends of VM's are connected simultaneously. It very much
> depends on what you do if it scales well.
I was reading the doc on this. It's consistent with what you say
here. Basically, if you have to wait for thousands of Erlang nodes
to establish communications with each other before you it can do
anything, the whole will crawl to its knees when one node is down.
Correct me if I'm wrong.
> Erlang's distribution protocol is based on TCP/IP with a handshake and
> marshalling layer on top of that.
> Erlang's distribution protocol can easily be changed to be carried
> over something else than plain TCP/IP. There is a plugin architechture
> to do this. Distribution over SSL is one example which is included in
> the Open Source release.
> Erlang is also a superior language when it comes to implementation of
> application level protocols carried over TCP, UDP or other transport
This is no difference from Java/C++. i.e., my company has already
built that in Java/C++, for example.
>> Both have been used by anti-Erlang camp. It makes it really hard to
>> advocate Erlang in a large company. For example, in a large
>> ccompany, there is usually a large investment already to solve the
>> large distributed computing problem in Java or C++. The usual
>> argument is that the tested and proven home-grown solution should be
>> used instead despite how much concurrency gain you'd have using
> I am not aware of that Java or C++ has any built in distribution
> mechanisms that
No, Java/C++ doesn't have built-in distribution mechanism. That
actually makes it worse since a company would have already invested
heavily in some kind of home-grown solution.
> scales well or better than Erlang. As long as there is a protocol
> (home grown or standard) implemented in Java or C++ there is no
> problem to use the same protocol from Erlang.
> What I mean is that you can't put something as a shortcoming for
> Erlang and then comparing it with Java and C++ where there is no
> distribution concept at all(comparable with Erlangs) built in.
So, if a company has already had home-grown solutions that scales
better than Erlang's built-in distributed feature set, Erlang's
builti-in distributed feature isn't a selling point any more.
>> It's a huge disappointment for me and a touch battle to fight.
> So what do you have to be dissapointed about when you compare with
> Java or C++? It can't be the distribution capabilities, can it?
It's not about the language. It's the platform that's already built
internal in a company. If this was a new start-up, the decision
would be easy. :-)
Generally, I'm not disagreeing with you at all.
More information about the erlang-questions