Hello:
Another recent option for running multiple dynamic languages under one
VM is the Microsoft Dynamic Language Runtime (DLR), which runs on top of
the CLR. The DLR aims to solve the current problems with running
multiple dynamic languages on the CLR; for example, it provides a common
dynamic type system. It has been most publicized as part of Silverlight
1.1, but it's also available separately.
Of course, the DLR's biggest current advantage is the number of popular
languages already targeting it. Microsoft has already written DLR-based
implementations of JavaScript and VB; the next version of IronPython is
going to be based on the DLR; and IronRuby is in development.
If I understand correctly, one of the DLR's strengths is that all
DLR-based languages share a common namespace tree, the one provided by
the DLR. So code written in any DLR-based language can use classes
implemented in any other DLR-based or CLR-based language. If I
understand correctly, this makes code sharing across languages more
seamless than it would be with Neko, but it probably imposes
restrictions that Neko does not; there's always a trade-off.
Given the number of languages already targeting the DLR, and the
apparent ease of sharing code between these languages and other
CLR-based languages, I'd think the DLR would be quite appealing to a
developer wanting to add a scripting interface or a plugin system to a
desktop app on Windows, even if said app isn't currently using the CLR.
Microsoft has made the DLR, IronPython, and IronRuby (still in
development) open source, under a permissive license. So I don't think
licensing is an issue, and the DLR could also potentially run on Mono,
if that's not being done already.
So I suppose that the DLR's chief drawback is the size of the CLR or
Mono; even the CoreCLR included with Silverlight 1.1 Alpha is about 5 MB
(including the standard library). Of course, if a time comes when the
vast majority of desktop computers have a reasonably recent CLR
installed, as Microsoft surely hopes will happen, then footprint will be
much less of a consideration. But that's a big "if", probably
contingent on mass adoption of Windows Vista.
So what advantages does Neko have over the DLR that I've overlooked?
This might be good material for the FAQ.
Thanks,
Matt
--
Neko : One VM to run them all
(http://nekovm.org)