Being a Perl 5 user myself, I believe that it would be the best idea to
write the final Perl 6 compiler targetting Parrot ideally in Perl 6 or
at least some other higher-high level language such as Haskell. The
reason behind this is this would allow the compiler to be maintained by
Perl 6 developers who do not have a lot of experience with lower-high
level or medium level languages such as C/C++ or PIR/IMC. I believe a
Perl 6 compiler written in C would be a bad idea and would in fact
repeat one of the major problems with Perl 5. It would lock out Perl
developers (like me) who do not know C from being able to understand and
improve upon the compiler. C is not an easy language for many to use or
learn and there are many people who are not proficient in it. C for me
and many Perl developers is not a pretty or a pleasant language to deal
with.
A self-hosting Perl 6 will require of course an implementation of Perl 6
in another language. Pugs seems to be quite far ahead in this respect,
quite a bit has already been accomplished with Pugs so it would seem to
me to be most efficient and quick to turn Pugs into a Parrot targetting
compiler.
Sure, Perl 6 being self hosting will require a previous version of Perl
6 to compile the new version. But I really dont see this as a problem,
many other languages are self hosting, like C, where the exact same
thing is done. I just dont think its a problem at all. It is a
reasonable trade-off for having a compiler that is eisier to read,
understand, debug, and which can be read and improved
by the same Perl community that uses it, which I think is essential.
I believe, in order for Perl 6 and Parrot to be more widely used, needed
is a fully functional Perl 6 compiler targetting Parrot, and the Ponie
project to allow all existing Perl 5 and XS modules to be accessed from
Perl 6 and for Perl 6 modules to be accessed from Perl 5. Perl 5 and
Perl 6 should be able to co-exist alongside each other, sharing the same
library of modules, and being able to use modules written in either
language, or XS. This is essential, and quite important, and the most
efficient thing to do, since the work done on existing Perl 5 modules,
including XS ones, would not need to be duplicated, and people would be
able to use the full collection of Perl 5 and XS libraries with Parrot,
Perl 5 and Perl 6, which is one of the things that I need, and I suspect
most people need, to be able to start using Parrot and Perl 6, and
prevents needless duplication of the same functionality in multiple
languages. Once Ponie is completed, new versions of Perl 5 could use the
Parrot VM, and Perl 5 and Perl 6 would be able to share the same Parrot
VM.
I believe Ponie and a Parrot targetting Perl 6 compiler (Pugs
initially), is probably one of the most important and essential parts of
Parrot and Perl 6 and getting these into a useable state as soon as
possible.