> why anyone would migrate to Perl 6 from Perl5.
In addition to the previous, some perl5-to-6-specific improvements:
consistent handling of $_ means not having to look up "what (if
anything) does this builtin do with a default?"
NativeCall is quite simpler than XS
Has an object system, so if you want to use it, you'll be using the
same one every other perl6 coder is using.
Lots of perl6 internals are written in perl6, which makes
understanding what's under the hood easier if you're curious, and
lowers the bar to getting involved in core development.
The ideal of "say what version this code is written in, and future
versions will run it" is great- it would mean things like the Coro
flap shouldn't happen in the future. On the other hand, it's an ideal
for Perl6-C on forward, and hasn't been tested yet. So it's a promise
of a "pro" that hasn't been demonstrated yet.
Drawbacks from my POV are all related to perl5's maturity relative to
perl6. Perl6's cpan "panda" is still embryonic, and Perl6's
cpantesters is even less developed than panda. I tried debugging a
3-year old P6 module by an expert that doesn't run in recent Rakudo,
and neither the error messages nor the REPL nor the debugger gave me
enough insight. I suspect once the debugger is more battle-tested it
will be able to show me where the issue is (or if I were to ask here
or on IRC, with the help, I could figure it out). The packaging for
modules is still in development/discussion.