At TPC 4.0 ("The Perl Conference", run by O'Reilly and Associates in July 2000) a meeting of Perl 5 developers decided it was time to start planning for the next major version of Perl: Perl 6.
The reasons for this decision included:
Perl 5 internals are becoming increasingly difficult to maintain
Perl 6 offered a chance to improve the process by which Perl itself is developed
Increasing "competition" from other languages (particularly Java, PHP, and Python) prompts us to reassess Perl's usefulness for real-world development
Perl 5 developers have been blessed with 20/20 hindsight on some decisions (e.g. pseudo-hashes) and would welcome the chance to make those decisions differently a second time
Larry Wall (the founding father of Perl) offered the following list of constraints he perceived on Perl 5, at a speech at the Atlanta Linux Showcase in October 2000. Emphasised phrases are Larry's; the plain text parts are my own annotations of Larry's points.
The need for backward compatibility: Perl 5 attempted to be backward compatible with Perl 4, which attempted to be backward compatible with Perl 3. This leads to a situation where legacy or deprecated language constructs are still supported, even if they really should be thrown out.
My leisurely mental growth: Although most people would be stunned to hear Larry describe his mental capacities as less than godlike, it is a fact that Perl 5 was Larry's rewrite, and needed to fit within the scope of his comprehension.
Cultural model with too many bottlenecks: Perl 5 development centred around the perl5-porters mailing list ("p5p"), and was presided over by a single "pumpking" (project leader) at any one time.
Lack of knowledge of the future: When Perl 5 was first envisaged, the World Wide Web was only just gaining in popularity, XML had never been heard of, and numerous other technologies that we now take for granted were only a dim light on the horizon.
Lack of round tuition: There were a lot of things that might have been done with Perl 5 if Larry and/or the other developers had got a "round tuit".
Complexity of the core: Perl 5 was a significant departure from Perl 4, and introduced a lot of new concepts. The implementation of many of these turned out to be quite complex, to the point where a potential Perl 5 developer may not be able to understand it.
Complacency: At the outset of Perl 5, Perl was acknowledged as one of the best and most widely used tools for toolsmithing on Unix systems, and for CGI scripting for the World Wide Web. For some years, Perl rested on its laurels and failed to address new fields of programming as they rose in prominence.
Next | ||
Tinkering with the development process |