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

Michael Truog mjtruog@REDACTED
Thu Mar 15 17:23:18 CET 2012

On 03/15/2012 06:48 AM, Torben Hoffmann wrote:
> On 15/3/12 10:52 , Joe Armstrong wrote:
>> On Thu, Mar 15, 2012 at 9:52 AM, Torben Hoffmann
>> <torben.lehoff@REDACTED>  wrote:
>>> On 15/3/12 2:31 , Miles Fidelman wrote:
>>>> Richard O'Keefe wrote:
>>>>> There is often surprisingly little connection between the speed of a
>>>>> _language_ (implementation) and the speed of _systems_ built using it.
>>>> Which is almost the point - there's a rather direct correlation between
>>>> the speed of a system, and how well the system architecture aligns with the
>>>> constructs and run-time environment of the language it's implemented in.
>>>> If you're building a system that is highly concurrent in nature,
>>>> implementing it in Erlang is a big win, while implementing it in Java is a
>>>> big loss.  Yes, you can take something that's inherently concurrent, and
>>>> design an efficient Java design, but you end up with something that's a
>>>> conceptual mess.
>>> That is a very good point and rhymes well with the maxim of choosing the
>>> right tool for the job at hand... something that can be extremely difficult
>>> for all of us since we all have our favourite tool. Hint: learn more than
>>> one tool!
>>> It triggers me to take a step back and take another stab at the original
>>> topic of this thread.
>>> When I did my grass root (read guerilla warfare) work to be allowed to use
>>> Erlang for a project in Motorola the question of performance never became a
>>> serious issue.
>>> Why not? Because it was easy to see that if Ericsson could write telephone
>>> switches in Erlang it would have sufficient horsepower to do the things
>>> needed in another telecom system.
>>> The big worry was: "Who is using Erlang?" which comes back to the "Nobody
>>> has been fired for choosing Microsoft | IBM | Oracle"-maxim. Eventually I
>>> managed to gather enough evidence through the Erlang community (I am
>>> eternally grateful for the not-to-be-made-public inputs that I received from
>>> other Erlang warriors) to convince management that it would not be a
>>> dead-end to try out Erlang.
>>> And now I will allow myself to digress from the original topic for a very
>>> personal experience... working with Erlang has been the best experience of
>>> my professional life.
>>> Why? Because it was simply the right tool for the job at hand! It allowed us
>>> to get a lot done since the semantic gap between the domain and the
>>> programming language was so small. Not only did we get a lot done - we also
>>> had very few errors and when we had errors it was very easy to debug, fix
>>> and an re-deploy them. (During Interoperability testing with our competitors
>>> we had turn-around times on bugs of 15 minutes versus their 1 day... I rest
>>> my case!).
>>> So I am all for Joe's approach to project funding: get a prototype going and
>>> then evolve it into a product in small increments. You will get a prototype
>>> very fast - this mailing list is great for advice on how to wire things
>>> together and it is not that difficult to get a quick'n'dirty solution done
>>> in Erlang even without being an expert.
>> Actually this is how to make money :-)
> You're right!
>> "All" you have to do is:
> Let me fill our story from Motorola into these steps!!
>>     a) - choose a new and "likely to be trendy" standard
> We started with a prototype for a simple version of our big system.
>>     b) - implement it *all* in Erlang
> Check.
>>     c) - do significant work with the standardization committee
> Massaged senior management and ended up being asked to choose any of three dormant projects to implement.
>>     d) - make a product
> Did that. It was a 4 year journey in total - well worth the ride.
>>     e) - give the product away or sell it
> This was kinda out of my hands, but it did make some money for Motorola.
>>     f) - sell support
> Not likely to happen - after I left it is most likely that the "real" product will be implemented in something that works, i.e., C/C++.
> But you have a great action plan!!
> Cheers,
> Torben
> <snip>
I agree that there has been lots of negativity in the past connected with statements at previous startups like:
1) "Erlang is just a prototype language"
2) "Erlang is only a testing language"
3) "Erlang is a ghetto"

I don't believe these statements, but I believe that their existence and continuation is unfortunate.  I think the only thing that may perpetuate these types of statements, is a lack of clear statements about Erlang's intent by current practitioners (as it is meant to exist in current products).  I understand that we have newer products, like RabbitMQ and Riak which can help provide examples of Erlang success within production (much of the previous success coming from ejabberd).  I am just disappointed by how these statements are very persistent, and may often prevent the use of Erlang.

- Michael

More information about the erlang-questions mailing list