+The pace of changes did decrease after 5.0, relative to before, but the reason was the much greater potential of its new facilities, and the realization of that potential through CPAN, which allowed the language to fill new niches without necessitating changes to its core. The reason that the transition from Perl 5 to Perl 6 failed to materialize when the one from Perl 4 to Perl 5 succeeded so thoroughly lies with their respective combinations of continuity and discontinuity. Perl 5 had a real implementation fairly soon, at which point development of Perl 4 ended, and despite truly being a new and more powerful language, Perl 5 was almost entirely a superset of Perl 4. So the community could and did simply move to Perl 5 when Perl 4 ended. Perl 5 never came to an end because Perl 6 took a long time to be implemented, and by that time it had become a different language which simply could not have absorbed the existing Perl 5 community outright. Subsequent attempts have borne out this requirement for language continuity: [Kurila](https://github.com/ggoossen/kurila), [Moe](https://github.com/MoeOrganization/moe), and despite its much smaller ambitions, Perl 7 too, all ultimately failed to gain traction. Meanwhile, in the perl interpreter, new internal APIs have come along and made it possible to extend the language in previously impossible ways – on CPAN, making CPAN a still more powerful venue to extend the reach of the language from outside itself. And eventually we even learned how to undo old mistakes without disruptions: by naming them with feature flags to be turned off under future feature bundles.
0 commit comments