Erlang killer app?,
Mon Jul 22 20:00:38 CEST 2002
On Sun, 21 Jul 2002, Shawn Pearce wrote:
> Isn't this kind of what this thread is about currently?
> ``I like Erlang, so what can we make in it?''
> I agree however, that its very, very common for developers
> to pick up langauges such as Java, but shun something such
> as Erlang, just because of the sheer hype, marketing, and
> influence of coworkers. Then they come with an idea and
> create a software package in it, even if that means
> lots of work because of the wrong language selection.
> I myself shuned using Ruby for a project that others who
> know it have said it would have been good at. Instead
> I have a 65,000+ line C++ monster I'd prefer not to touch.
> I also know I was tempted to port it to Erlang, just because
> I knew the language and thought it would be `cool'.
> I've also used Tcl and Java for a project that I think
> would be much better suited to Erlang, except:
> 1) I don't know the state of SAE on Windows. Tcl
> can be built to a stand alone Windows .exe,
> perfect for my application. No DLLs are required.
This is in the (near) pipeline :-) You *will* need one DLL
(erlang.dll) thereafter you will be able to pack all application code
into a single .exe file (or use shared libraries). You'll also be able to make
windows .exe files inside Linux and build linux executables from windows.
> 2) Erlang doesn't have XSLT and FOP->PDF available.
> (But JInterface would work well enough here with
> only minimal Java code that I could use the
> Java based processors.)
?? - I don't understand - do you meant you'd like an implementation of
XSLT in Erlang???? Also, are their any good (free) FOP->PDF convertors?
> 3) Programming web interfaces in Erlang still isn't
> a strong suite of mine, despite that I do it
> in nearly every other language. Perhaps its
> because I still think yaws,inets,etc are weaker
> than the other offerings... not that I really
> like Java servlets and JSP that much.
I disagee - Erlang programs are a lot shorter than the equivalent Java
stuff so the embedded code is much shorter and easier to write and maintain.
I think I mentioned erarier that we were going to benchmark an
yaws against Apache under condition of medium to high overload.
We have some *very* preliminary figures.
At low load yaws and Apache have very similar performance.
At 100% overload yaws is about 4 - 7 times faster than Apache.
At 1000% overload yaws is about 4 times better than Apache.
In other words if your web site has nasty peaks when suddenly everybody
wants to access it Apache almost falls over, yews ticks along nicely.
Even at 1000% overload yaws was servicing all requests (albeit slowly)
but Apache was rejecting 40% of all traffic.
Also bear in mind Klackes figures - yaws was generating 2,000
dynamic pages/sec - a high performance PHP will manage a few hundred.
So we have:
1) shorter code
2) better performance under heavy overload
3) very fast dynamic page generation
That's why you will like it :-)
> 4) My coworkers don't know Erlang and don't want to
> bother with the "chore" of learning a language
> other than the One-True-Language-Called-Java(tm).
> Its just too much of an inconvience for them. Too
> much effort, too much thinking and studying required.
If you can learn Java you can learn anything - Java is ridicolously
complicated. If you're going argue that "lazyness rules" then take the
easy way out and program in Erlang - believe me much less thinking is
involved programming in Erlang than programming in Java.
> Conversely, I chose C/Erlang for my video application,
> only because its very similiar to what the telecomm guys
> do with Erlang. Much of the "routing" and "control" is
> done in Erlang, with the device specific bindings and
> speed critical sections in C. Erlang made perfect sense
> to use, as it had an integrated database, code reloading,
> distributed messaging, which were all critical as I am
> attempting to create a multiple computer solution.
> I think Erlang's biggest strength is really the points
> mentioned earlier in this thread about fault tolerance,
> distribution, etc, but also how well it coordinates
> and integrates with other systems.
> Just how "easy" is it to hook Java to C or C++? What
> about making Java act as an NFS server to communicate
> with Unix clients?
> Erlang people do this all of the time, because its so
> easy. And because its so easy, we try not to reinvent
> the wheel (when possible), unlike our Java, Perl and
> Python friends.
> I think its because:
> Erlang is concurrent, and with message passing
> so central to its design, that it is very trival
> to declare some unknown black box as 'another
> concurrent process, handling messages'. This
> fits perfectly into the environment, and the
> environment fits perfectly to it.
> Thierry Mallard <> scrawled:
> > On Sat, Jul 20, 2002 at 05:33:46PM -0700, isaac gouy wrote:
> > > [ Choosing a language ]
> > > I asked the OpenNMS guys why they chose to develop in
> > > Java. They didn't have much experience of Java when
> > > they started but from their C++ perspective "It seemed
> > > the right tool for the job of writing something easily
> > > portable with a rapid development time."
> > > "> Has anyone on the OpenNMS team heard of Erlang?
> > > Heard of, yes. Looked at, not really...
> > > > Was it ever considered as an implementation choice?
> > > I doubt it"
> > In my humble opinion, this is a common pattern : often, specially when
> > it's a "hobby project", the developers thinks first "ok, I like
> > this language and I want to code with it. Now, what can I do... ? "
> > and not : "Ok, there's problem here that needs to be solved. What would
> > be the betters tools (language among others) to solve it ? "
> > For example -and only an example- I wondered recently why Zope was
> > written in Python. The answer Jim Fulton gave in an interview was
> > " I was a convert to Python by that time. ;) "
> Why do I like Perl? Because ``in accordance with Unix tradition Perl
> gives you enough rope to hang yourself with.''
> Why do I dislike Java? Because ``the class ROPE that should contain the
> method HANG to do the hanging doesn't exist because there is too much
> 'security' built into the base language.''
More information about the erlang-questions