Recent Articles

What ever happened to Perl 6?

I started programming Perl 4 and then eventually Perl 5 back in my days at college. It was great back then and still pretty good today when you need to run a cron command or print a web page. Over time, I've moved on to PHP, Java and .NET.  Incidentally, I spent some quality time over the weekend with a friend discussing Perl. Apparently, Perl 6 announced years ago is still in development and not every Perl programmer thinks it's worthwhile to move to the new Perl 6 that boast these features:

  • explicit strong typing
  • proper parameter lists
  • active metadata on values, variables, subroutines, and types
  • declarative classes with strong encapsulation
  • full OO exception handling
  • support for the concurrent use of multiple versions of a module
  • extensive introspection facilities (including of POD)
  • LL and LR grammars (including a built-in grammar for Perl 6 itself)
  • subroutine overloading
  • multiple dispatch
  • named arguments
  • a built-in switch statement
  • hierarchical construction and destruction
  • distributive method dispatch
  • method delegation
  • named regexes
  • overlapping and exhaustive regex matches within a string
  • named captures
  • parse-tree pruning
  • incremental regex matching against input streams
  • macros (that are implemented in Perl itself)
  • user-definable operators (from the full Unicode set)
  • chained comparisons
  • a universally accessible aliasing mechanism
  • lexical exporting (via a cleaner, declarative syntax)
  • multimorphic equality tests
  • state variables
  • hypothetical variables
  • hyperoperators (i.e. vector processing)
  • function currying
  • junctions (i.e. superpositional values, subroutines, and types)
  • coroutines

I can appreciate many of these features having tasted more recent OOP languages but OOP is not without it's pain. OOP takes longer to plan and write. If you're procedural or script inclined, it's a little weird coding with object types and inheritance, etc. So anytime a change as drastic as Perl 6 that decides to take away the simplicity in Perl 5, a lot of seasoned Perl programmers will have a hard time adopting.