[erlang-questions] languages in use? [was: Time for OTP to be Renamed?]

Miles Fidelman <>
Sun Feb 16 01:05:59 CET 2014


Loïc Hoguin wrote:
>
> To make a comparison, it generally goes like this:
>
> What's Go? -> Language from Google by the Unix people -> I know and 
> like those, therefore Go must be good too, plus it looks similar to 
> what I'm used to.
>
> What's Erlang? -> Language from Ericsson invented 25+ years ago -> 
> Really? I'm not sure what Ericsson does... If it was invented 25 years 
> ago and I haven't heard about it yet it must not be very good, plus 
> it's not OO so it must not be very useful.
>
> You can't fix that.
>
> What you can fix about perception is actually minimal stuff. Like 
> changing the name. Using release numbers that aren't from another 
> planet. And so on.
>

This is just plain silly.

When folks chose a language/platform for a project, the reasons tend to be:

1. We're a <language x> shop.  We've invested a lot in tooling, that's 
what our people know.  Period.

2. Our deployment environment requires it (writing iPhone apps, you're 
writing in Objective-C, still writing for Blackberry, Java it is)

3. Our customers require it.

4.  For large, complicated projects, there may be a formal technology 
assessment.  (E.g, Boeing didn't just stick a finger in the air and say 
"let's use Ada for the avionics on the 777."  They did a pretty 
extensive technology assessment as part of the systems engineering phase 
of design and development.)  Sometimes, this goes further - as in 
"there's nothing that meets our requirements, we'll develop something" 
(e.g., Ericsson developed Erlang to fill a need).

5.  It comes embedded in a key software component (similar to 4). E.g., 
we selected Riak as our database platform, it's written in Erlang.  (Or 
RabbitMQ, or CouchDB, or ...)

Older languages have inertia behind them.  Nobody is talking about 
renaming C, or spending much money marketing it.  (Or the gnu build 
system for that matter.)

Newer languages gain traction when there's a new need - Java addressed 
the "write once, run everywhere" vision.  Hasn't quite proven to be the 
holy grain, but it gained a lot of traction in the process.

Erlang came into being to meet a very specific requirement at Ericsson, 
and did it well.  Newer applications have come because both requirements 
and hardware have evolved - and Erlang is uniquely capable of addressing 
them.   Anybody who's building a high-availability system that is 
massively concurrent in nature, and does even a modicum of technology 
assessment, is going to find Erlang.  It's name, what OTP stands for, 
marketing, aren't going to make a difference one way or another.

On the other hand, it's longevity, community, and ecosystem will make a 
difference - folks don't commit large amounts of dollars to something 
that isn't going to be around down the road.  Erlang seems to do pretty 
well in these regards - at least to the point that some fairly large 
players have committed to Erlang on key projects, and some serious 
venture capitalists have invested in Erlang-based ventures (Couchbase, 
Basho come to mind).  Again, name and marketing don't really have a lot 
to do with this (I offer the gnu build system and CPAN as examples).

As to Go - it's a toy - Google or no Google, I don't see any systems 
being built in it (the jury is still out on Clojure - another Google 
project that has a clear rational and a lot more backing).  One might 
also wonder why Plan9 and Inferno didn't get more traction as successors 
to Unix and C.

Miles Fidelman






-- 
In theory, there is no difference between theory and practice.
In practice, there is.   .... Yogi Berra




More information about the erlang-questions mailing list