[erlang-questions] Erlang is the best choice for building commercial application servers
Mon Mar 12 01:00:25 CET 2012
Pretty much this. I've recently been introduced to Java, and unfortunately what most of the pointy-haired managers don't realize is there is a huge difference between Java the language (which isn't that bad), and Java the application environment (which is complex and terrible). Once you get Java+Spring+Hibernate+20 other frameworks and libraries you are left with a VERY hard to maintain and complex application. In the end it often only has a small amount of real Java - the rest is pages of impossible to maintain XML.
See this blog: http://www.jillesvangurp.com/2009/10/07/server-side-development-sucks/
The other problem is one of control. Even if the managers, and the rest of a development team don't know Java, it looks very familiar to C++ and the C family of languages. If you propose Erlang, they see that the language looks very different, and that scares people. Suddenly they are not in control anymore, feel less valuable to the organization; it makes them feel threatened.
We as a community can help to remove many of the negative perceptions people have about Erlang. It's perceived to be slow, although in many cases that's caused by lousy code from newbies (JIT would be nice though ;-). It's also hard as a newbie to write good code since the concepts are very different. You can knock up a simple Erlang application quite quickly, but it might not perform that well. What you end up with are newbies producing poor code, getting frustrated and giving up. I've read many stories on Reddit and similar places of companies starting an Erlang project, getting bad results and throwing it out. It give a very bad impression on the language. More often than not someone will come along later, refactor the code, and get stellar performance - but by then it's too late.
I think tidying up some modules, and getting the word out there on how to write proper Erlang apps would help a lot. Things like E2 http://e2project.org/ are a good start along this path. Projects like rebar make app. packaging simpler. Basically we need more consistency across the board. Also having more languages running on BEAM could make the take-up easier (as well as Erjang on the JVM).
Finally I would say this. As Torben mentioned, no one gets fired for choosing Java. More to the point, no one gets fired for choosing Oracle. I think Ericsson is doing a more than stellar job of maintaining Erlang. But is this also a problem? Sometimes I wonder if it would be better if Erlang was "owned" by Ericsson, Klarna, Basho, Trifork, Erlang Solutions, Springsource/VMware (RabbitMQ). Basically have it owned by a consortium of companies. Would that make managers more comfortable taking on Erlang?
I could go on, but that's my 2 cents for now.
Date: Sun, 11 Mar 2012 22:04:33 +0100
Subject: Re: [erlang-questions] Erlang is the best choice for building commercial application servers
Nobody has been fired for choosing Java.
See Mike Williams slides from the London Erlang Factory 2011:
Digging a bit deeper it comes down to risk management and most big
companies has a strong dislike for anything new and different since
that reeks risk to them.
Take a look at all the start-ups in the US that is using Erlang and
asking for Erlangers. There Erlang has been chosen since it is the
right fit for the problem at hand.
For a big company with a lot of legacy Java code and people trained
in Java it is far from obvious that a switch to Erlang will be the
right choice. I would actually get a bit nervous if management
accepted such a shift without a thorough investigation and even if
that investigation gave a go-ahead to do a shift I would be nervous
since such a fundamental break with the past only happens when a
company is staring into the abyss of a pending bankruptcy!!
I was one of the two guys behind a product made in Erlang in
Motorola. One of the main reasons for getting the go-ahead to that
project was that we were building a new product and did not have to
throw anything out.
Eventually we shipped the product as a beta to a single customer,
but the reluctance to bet on something as strange as Erlang for a
"real" contract is still around and I will actually bet on the final
product being written from scratch in C or Java since that is what
the managers and old school architects feel most at ease with!
The history of technology is full of this kind of stories... and one
day some new technology will come along and overturn whatever
kingdom Erlang might have build. The circle of life continues.
On 11/3/12 18:09 , Shahrdad Shadab wrote:
When I was learning Erlang and understanding its
capabilities I really cannot find a satisfactory answer to the
why in North America companies like former BEA, former Sun, Oracle
, ... use Java to build commercial application servers instead of
From technical perspective such decision doesn't make any sense to
me for following reasons:
_Java is not a fault tolerant.
_Java performance is nowhere near Erlang.
_Concurrent programming in Java is a pain.
_J2ee Technology introduced as add on to java to make
communication cross servers possible (i.e web services XML
SCHEMA, WSDL) is unreasonably and grotesquely complicated. (This
complication is dictated by the technology and not by the problem
_Java is not distributed language (No asynch communication is
possible without JMS, also RMI stub solution is more complicated
than it should be).
and many more reasons I can list here.
Thanks in advance
Software Architect & Computer Scientist
erlang-questions mailing list
erlang-questions mailing list
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the erlang-questions