[erlang-questions] Erlang is the best choice for building commercial application servers
Thu Mar 15 14:48:46 CET 2012
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 :-)
> "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
> 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!!
More information about the erlang-questions