[OT] perl and CLRs (.NET rocks)

Nicholas Clark nick at ccl4.org
Wed May 2 19:25:14 BST 2007


On Wed, May 02, 2007 at 10:58:22AM -0700, chromatic wrote:
> On Wednesday 02 May 2007 06:55:31 Dirk Koopman wrote:
> 
> > I imagine the real reason is that perl has a much more incestuous
> > relationship with its interpreter than most other languages. The fact
> > that the basic interpreter loop traverses a linked list, which can be
> > altered - at run time - at will, does not help us any and I imagine that
> > is why we have yet to see *any* non-perl backend that works 100%. And
> > this seems to include parrot et al.

I don't think that this is the killer reason. For ithreads, the optree
(it's not a simple linked list) is readonly). So it doesn't get knobbled
at runtime.

I also don't think that it's the "only perl can parse Perl" meme.

I suspect that it's because

1: any variable can be tied
2: any value can be overloaded

and hence there is a lot of logic to deal with this everywhere.

Also, the design of the interpreter internals is based on C structs and
direct access to them, with decisions implemented as switch statements,
rather than hiding data behind accessor function calls, and having decisions
implemented as function pointers, which makes it tricky to extend or change
the underlying data structure.


Perl, being untyped, leaves a lot of logic to the runtime. Which isn't
exactly helpful for compiling to opcodes for a machine, virtual or silicon.

> I rather see it as for the same reason my office ceiling remains unpainted 
> after nearly three years: 'cuz no one's WORKING on it.

Correct me if I'm wrong, but Sun paid for people to work on Ruby on the Java
VM, and Microsoft paid people to work on Ruby on .NET. I assume, in both
cases, this is because the VM's backer did not want to be left out by Rails
and the Ruby hype. (plus effectively there is an arms race here between the
two VMs).

What motivated the work on Python on the Java VM?
IIRC Iron Python's motivation was to verify that Activestate's experience with
implementing Perl on .NET was valid.

Is anyone working on PHP on the Java VM? Or on .NET?

Nicholas Clark


More information about the london.pm mailing list