Perl 6 is due out on Christmas Day, bringing with it a new language that endeavors to be interoperable with its predecessor.
The long-awaited sequel is slated to feature object-oriented programming with generics, functional programming primitives, parallelism, and optional and gradual typing. "Christmas is still the plan [for release], though of course in some cultures that lasts till January 6 or so," Perl founder Larry Wall said in an email late last week. "We're just trying to nail down as many loose ends as possible before release."
Followers, though, emphasize sharp differences between Perl 5 and 6. "Perl 6 is no more the next version of Perl than C++ is the next version of C," one commenter said on a previous InfoWorld article.
Wall acknowledges that Perl 6 is a big change. "It's definitely a new language, but then, in my view, any backward-incompatible change to a language makes a new language, and it's only a matter of degree," he said. "Certainly we planned to break backward compatibility from the start with Perl 6. But it's still very Perly because that's how I think." He has previously described version 6 as a new version of the language, at least philosophically. The Perl.org website describes it as a "sister language, part of the Perl family."
The main thing the two languages have in common is the community that's interested in making sure they stay relatively interoperable, Wall said. "Perl 6 comes with an Inline::Perl5 module, for instance, and provides an Inline::Perl6 for Perl 5 programmers to go the other direction."
There is no intention to declare end-of-life for Perl 5. "As for whether Perl 6 will replace Perl 5, yeah, probably, in about 40 years or so," said Wall. He also disagrees with the notion that there is only syntactic resemblance between Perl 5 and 6. Important resemblances are philosophical, in fundamental design principles like choosing an operator-rich language to prevent overloading the same operator for different purposes, in allowing developers to choose their own way to mix multiple paradigms, or, in relying on the interpreter to help parse the program itself in the first place, he said. "These are the things that Perl 5 and Perl 6 have in common. Well, and some syntax."