Subscribe to the Free Print Edition!
Celebrating 25 Years

Perl vision gets sharper

By Joab Jackson

PORTLAND, Ore.—Version 6 of the Perl will be the first truly extensible programming language, promised Perl creator Larry Wall during his annual "State of the Onion" speech at the O'Reilly Open Source Conference (OSCON), being held this week.

Other languages have claimed to be extensible, though they have all fallen short in one way or the other, Wall asserted. "No computer language has ever taken extensibility seriously. All languages fall into the one true syntax syndrome, and we want to escape that," he added.

For power users of this open source language, such extensibility could mean that they will be able to augment the language with instructions, syntax, expressions, operators and other features to meet their own needs. An office of the National Cancer Institute, for instance, could extend Perl to include features that could aid in medical research.

Initiated in 2000, version 6 of Perl is a total rewrite of this widely used programming language, one that has been called the “duct tape of the Internet.”

Judging from Wall's presentation, Perl 6 could turn out to be one of the most permeable programming languages ever devised. Nothing in Perl 6 will be immutable. "Perl 6 has no core, no keywords, no built-in operators. Everything that looks like an operator is actually defined by some grammatical rule or by a macro or by something that is added in," Wall said.

The developers' hope is that individuals will use this extensibility and redesign Perl in new ways. "We do not know what language we want in 20 years, but we want it to be Perl," he said.

It should be noted that this ability customize will largely be hidden from those using the language for basic needs. "We're trying to keep Perl 6 so that you don't need to understand what the fancy things are doing until you need them," Wall said.

For those perhaps less than willing to alter the language itself, the standard edition of Perl 6 will also offer more traditional improvements to ease programming.