wild and crazy idea?
Thu Feb 16 23:41:30 CET 2006
Vlad Dumitrescu <> wrote:
> The main question is one that nobody on this list should fail to answer
> right: what is the main thing that makes Erlang special?
> Of course, it is the stuff that earned Dr. Joe his title (so to speak): the
> lightweight & isolated processes framework and the monitoring and
> distribution mechanisms. For the purpose of this discussion, I claim that
> the rest is just syntactic sugar.
> Now to my idea:
> * would it be possible to separate these most important features from
> the actual language implementation?
> * is it possible to create such a generic framework, where one could
> plug in different virtual machines to execute the actual code, and offer
> all of them the same services that today only the beam vm enjoys?
How about the Microsoft Singularity project? They have tried to
define something with the same basic concept you are asking for,
except a virtual machine is not required (processes can use native
code if they desire). I didn't see any concept of monitoring
processes and handling failure (ala the supervisor module) however.
At least not beyond terminating the errant process and praying.
One nice thing about Singularity is they have defined how device
drivers are to behave: just like any other message passing process.
Which is quite unlike Erlang's driver model where it is common for
the driver to be written in C and loaded into beam where it can
cause all sorts of havoc.
> Is anything like this already out there? Well, some parts of it are, like
> PVM or MPI, but those have a different niche to fill and don't cover all
> the ground (or so I gather, at least, please set me straight if I'm wrong)
Interestingly it was my attempt to apply PVM to something which it
wasn't built for that lead me to Erlang. :-)
But aside from Singularity (which has been discussed on list
recently) I haven't heard or seen of anything which comes close
to the level of ease of construction as Erlang. I've tried to
build such things before (in C++) using tools like ACE and it
wasn't pretty. Definately not recommended.
More information about the erlang-questions