[erlang-questions] Beyond Strings as Lists
Thu Feb 21 20:15:27 CET 2008
This entire discussion brings up a larger issue to me. As a newbie to the
community, looking objectively at it from the outside, I think Erlang has
come to a crossroads of sorts. It's on the verge of realizing a vast
potential. Choices that are made now are going to affect whether it ends up
on a path to fame or obscurity.
It's the only language out there that really offers the feature set
necessary to easily take full advantage of the emerging
multi-core/multi-CPU/distributed setups that are soon going to be the norm
for hardware environments.
By virtue of being a functional language, it's never going to be adopted as
a "code monkey" language like C# or Java. Typical enterprise-level outfits
aren't ever going to have their rank and file developers using Erlang. I
believe Erlang's niche will expand into a middle-ware platform that is used
to abstract away the details of traditional multi-threaded and distributed
architectures. It will be the mid and high level developers and architects,
or 3rd party developers, who engineer this. Code monkeys will continue to do
their work in imperative and OO languages that plug into the Erlang-based
middle-ware. So, in this respect, demand for competent Erlang programmers
will remain high, as well as the salaries they can command.
What's going to make or break this deal is polish and marketing. Annoying
terms to be sure. As a lone, individual programmer, I love Erlang. Imagining
it from a product manager's perspective, though, I would never choose it in
its current state. Most enterprise-level managers won't take a language
seriously and adopt it for their project if you tell them the standard dev
tool is Emacs or an Eclipse plugin maintained by a couple people.
The official documentation available for Erlang/OTP right now is only just
adequate and painful to slog through and decipher. Compare it to Sun's or
Microsoft's or even PHP's web documentation, though, and it appears lacking
and less clean. The community is slowly growing, but good tutorials are
still few and far between, are usually full of grammatical errors, and are
usually very difficult to locate via Google searches.
It seems to me that all the pieces are there. Erlang has support for all the
little things that make or break a platform (unit testing comes to mind).
What it lacks most right now is integration of all those pieces into a
unified, standardized, and understandable whole. Managers and developers
like to feel secure and looked out for. They like to feel as if there's
competent, powerful support out there for the language they've chosen and
that it has strong, directed leadership guiding it towards a definite
vision. This convinces them that it's not just a fly-by-night fad and that
they won't be left hanging out to dry.
Joe does a great job of generating enthusiasm about what Erlang has to offer
technically. What Erlang has right now though is an image crisis. It has no
marketing or polish or pizazz behind it. It lacks an efficient, organized
committee-based senior community. It lacks tools with support for the things
Erlang does best. (Is there any reason why Erlang tools can't or don't
support something like Intellisense for the patterns a function or receive
block is able to match; or the possible patterns returned from a function?)
Is there any reason why no one has asked for an interview with Charles Ying
about his team's experiences? You've got AMAZON using Erlang. That's a big
deal. How about the guys over at Vendetta Online? You've got the entire
video game industry (*cough*Blizzard*cough*) waiting to be sold on the
virtues of Erlang. What about the YAWS people? You need to all be scratching
each others' backs here. If all you get out of Amazon running simpleDB on
Erlang is a blog post by Ying stating the fact and suggesting you read Joe's
book, you're missing out on a lot of hype.
This string as lists debate is a perfect example and is much needed. Any
modern language that doesn't have powerful, unified, built-in support for
something as simple as a string will be laughed out of the industry. Does
Erlang have an official User Experience team looking at this stuff? A
"higher authority" that sets standards that both minuscule and massive
things like method naming conventions, APIs, or new features must pass
through before being adopted?
Is anyone working to update the Erlang website to give it a more modern face
lift? Hell, 50% of why Ruby and RoR got popular was because they had some
glossy buttons and gradients on their page.
Please understand that these criticisms are coming from a total Erlang
newbie that really does enjoy and care about the language. Most of the
questions are rhetorical. They are just things I'm throwing out, as a
newbie, that other average newbies will be considering and asking about when
they themselves look into Erlang. I hope you understand how important little
things like this are to the further success of the language. I really want
to see Erlang realize its full potential.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the erlang-questions