Perl 6 to break compatibility, support other interpreters

Enabling many more ways to obfuscate code

Perl creator Larry Wall

Perl creator Larry Wall

Version 6 of the popular Perl programming language will not be compatible with previous versions, but will open up a new world of custom “languages” and interpreters, according to its founder Larry Wall.

In Sydney for the annual Open Source Developers Conference, Wall delivered a keynore on “The once and future of Perl” and gave a few rare insights to what the future of Perl programming might look like.

“I often get asked if you had to do it all over, what would you do different?” Wall said. “How would the Sydney Harbour Bridge look if it had been built by the architect of the Sydney Opera House? The bridge would have been $100 million over budget!”

“One answer is nothing and the other is everything. The thing about doing nothing is you are stuck with the old architecture and the problem with doing everything is you are stuck with the new architecture.”

But that's what Wall and his co-developers are doing with Perl 6 – starting again.

“It will break backward compatibility [but] in order to simplify it we have to get rid of old cruft, particularly the regular expression cruft,” Wall said. “A lot of the unreadability of Perl is related to the regular expression syntax – and we didn't do that, we got it from Unix. It needs to be end-of-lifed. Regular expressions are not strings, they are a sub-language. We took it and made it worse. There is this two-pass nature that is evil.”

Wall also asked when is a language not a language? The answer: when it's many languages. And Perl 6 is many languages.

“We want to preserve as much of the Perl culture as we can so it's still recognisably Perl, but nicer,” he said. “We tell you how to think, just not what to think. The Perl culture encourages freedom.”

“We want the freedom to write things and optimise in many directions. We encourage people to program at the level they are ready to program. We all start as cargo-cult programmers. We type something into the computer and it does something magical. That's the way we develop, you just don't want to stay there.”

Perl 6 has no “core”, pre-defined operators and support for user-defined operators.

“'Only Perl can parse Perl' is a saying for we have used for quite a while and we have changed the meaning of that,” There will be multiple implementations of Perl 6 and only Perl 6 can easily parse Perl 6.”

There will be a standard implementation and a test suite shipped with Perl 6.

“The idea with Perl 6 is you start with a standard language and you can mutate it. As long as you follow that refinement process there isn't the problem of ambiguity. There is the problem of multiple dialects, but that will always be a problem.”

Perl 6 promises to put the "regular" back into regular expression.

“We have more powerful primitives in Perl 6,” Wall said. “There's no more /x switch to enable extended syntax. No more mode switches like /s and “dot” (.) now means match any character. There's no /m modifier and we've regularised the brackets so {} always mean embedded code.”

The “Kewlness” of Perl 6 includes a parser that uses stringwise "surreal" precedence and Perl 5 “isms” and it warns you if you are using obsolete syntax.

After eight years of development, Wall refrained from providing an exact release date for Perl 6, but says it will be on Christmas Day some year in the near future.

“Every day will be like Christmas Day when Perl 6 is released,” he said.

The motto of Perl 6 is “embrace and extend, please”.

Join the newsletter!

Or

Sign up to gain exclusive access to email subscriptions, event invitations, competitions, giveaways, and much more.

Membership is free, and your security and privacy remain protected. View our privacy policy before signing up.

Error: Please check your email address.

Tags perlosdc

Show Comments
[]