
Erlang as middleware - iamelgringo
http://debasishg.blogspot.com/2008/08/erlang-as-middleware.html
======
scott_s
_All these applications/services rely on the intrinsic scalability of Erlang
as a platform._

I have to take issue with this assertion; I've seen a similar sentiment
expressed here. Certainly, Erlang lets you naturally _express_ concurrency in
your application, but that doesn't automatically mean it will _scale_.

People have been writing high performance, message passing programs for a long
time using libraries like MPI. The programming model used for creating
distributed MPI applications is basically that of Erlang. The difference - and
it is a big one - is that Erlang lets you do everything at a higher level with
language constructs. This is a huge win.

But parallel applications don't automatically scale; scalability is a runtime
behavior that depends on the problem you're solving and design decisions you
made to solve that problem. How well a concurrent application will scale is
usually not obvious.

There's no free lunch. You can't expect to start using Erlang and
automatically get scalability. Like we've always done, you'll have to think
carefully about issues such as data distribution (who has to know what when?),
granularity (what's the smallest amount of work that should be parallel?) and
synchronization overhead (does doing this concurrently actually cost more than
sequentially?).

~~~
evgen
Erlang is not magic fairy-dust that suddenly makes you app scale. What makes
Erlang different than most languages is that it does not get in your way when
scaling becomes necessary. There are fewer leaky abstractions and hidden
"gotchas" that will end up making your life hell. The fact that it happens to
come with battle-tested frameworks for handling a lot of the dreary details
for code and data distribution along with strong fault-tolerance features are
nice benefits to be able to draw upon.

~~~
scott_s
That all sounds excellent. I've never actually had the chance to use Erlang,
but I do have experience with concurrent applications in general.

I think concurrency will be the norm in the future, so I'm excited by things
like Erlang, even if I've never had the chance to use them. I just want to
make point out that a language like Erlang makes solving a hard problem
easier, but it's not the solution itself.

