Erlang's distribution and multi-threading primitives are unbelievably well tested, and everyone could learn a thing or two from the OTP model.
I can't imagine why we'd ever consider Scala over Erlang.
Erlang's distribution and multi-threading primitives are unbelievably well tested, and everyone could learn a thing or two from the OTP model.
I can't imagine why we'd ever consider Scala over Erlang.
It's a very weird approach, but it's surprisingly effective.
1. How exactly would you setup the JVM? Will you need to wrap every Java class you want to use with some kind of communication mechanism? What about callbacks?
2. Can you subclass a Java class?
3. What is the overhead of calling Java methods from Erlang?
4. Has anyone demonstrated a bridge to a non-trivial Java library using a language not running on the JVM?
I feel interprocess communication might be ok for some apps but not all apps.
2. No. Erlang is not an OO langauge, although its concurrency model is the actor concurrency model, which sometimes feels like Smalltalk's object model.
3. The cost of communication. Having implemented a few systems that do this, I've found it to be fairly small, even using a slow glue layer like ruby. See https://github.com/KirinDave/fuzed/tree ... Powerset uses almost exactly this codebase to manage query analysis on its frontend before dispatching to our results retrieval layer. Thus far, it's been one of the most flexible and robust parts of our architecture.
I felt this way too, and it is the case in some very specific scenarios. But the truth of the matter is that Java itself is often the wrong tool in these cases, so it's somewhat of a red herring to say that.
4. http://erlang.org/documentation/doc-5.6.1/lib/jinterface-1.4...
Where did you run into pain trying to use Erlang outside of telcom apps? Just curious...
Erlang has a pretty good set of standard libraries, and whatever missing is relatively easy to build yourself, by comparison.
Granted, there are some very good OS Java libraries, but there's also an awful lot of drivel - one need only fire up their profiler to verify it.
I'd say you're being quite uncharitable to Erlang.
Primarily because you're forced to use the JVM by some executive degree or similar. Likewise, if you're in a .NET shop you'd want to consider F#.
All that aside - I'm a huge Erlang fan.
Or Scala. It also compiles to the CLR.
An important lesson I've learned is that just because you've written a parallel program, doesn't mean you've written a good one.