[erlang-questions] Erlang is the best choice for building commercial application servers

Matthew Evans mattevans123@REDACTED
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
From: torben.lehoff@REDACTED
To: shahrdad1@REDACTED
CC: erlang-questions@REDACTED
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
      question that 

      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...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20120311/46bee191/attachment.htm>

More information about the erlang-questions mailing list