Perl6 has a gazillion things that differentiate it from Perl5.
- Parrot. Oh. My. God. The ability to mix Python and Ruby libraries in with Perl libraries is huge.
- Grammars. The fact that Perl6 will be written in Perl6. I can write my own -real- syntax as a CP6AN library.
- More importantly, I can -remove- syntax. Like, literally remove the syntax. This makes hardened Perl a real possibility. That means greater penetration into certain areas Perl just wasn't useful for.
- Proper autoboxing. This is something Ruby has over us. No more.
- A completely portable ASM I can address. That's nice.
- Properly first-class functions that serialize nicely. This and proper autoboxing makes the P6 version of DBM::Deep a lot easier to write.
- Oh, yeah. There's Lispy macros.
Now, why might I use Perl5 over all that sugary goodness? Well, in the first 5-6 years, very little of the CP6AN code will be truly battle-tested. I might be wanting to reuse Perl5 libraries and don't want to trust the Ponie emulation. The same reason why 5.6 interpreters are still in heavy use and why I haven't bothered to even download 5.10 - change is expensive.
But, unless there's something horribly wrong, I will be choosing P6 over P5 for all new projects. Once 6.0.2 is released, of course.
My criteria for good software:
- Does it work?
- Can someone else come in, make a change, and be reasonably certain no bugs were introduced?