This talk shows how Perl can be used on the Microsoft .NET Framework. It
will start with a brief overview of .NET and especially the .NET Framework,
which is the new language-neutral virtual execution environment from
Microsoft.
The first part of this talk will describe the initial "Perl for .NET
Research" attempt to create a Perl compiler generating native IL
(Intermediate Language of the .NET runtime) using a custom B::* backend
module. A sample will be shown that uses an abstract base class written in
Visual Basic with some of the pure virtual methods implemented in Perl.
As an alternate approach, ActiveState has implemented "Perl for .NET Proxy",
which creates proxy objects living inside the .NET runtime but executing the
actual Perl code on the outside. Since it is running within a standard Perl
interpreter, even hard to compile language constructs like string eval() or
runtime require() are supported. This approach also makes all the CPAN
modules containing XS code available.
The talk will finish with some thoughts for Perl 6: What can we do to make
it easier to compile Perl to strongly typed execution environments? How
could the .NET runtime be enhanced to better support dynamic languages? Why
do we need a higher level of abstraction for XS extension code?