[erlang-questions] languages in use? [was: Time for OTP to be Renamed?]
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.
In theory, there is no difference between theory and practice.
In practice, there is. .... Yogi Berra
More information about the erlang-questions