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)
|