Skip to content

Commit

Permalink
ppc0025: fill in some gaps about why 4→5 succeeded vs 5→6 failed
Browse files Browse the repository at this point in the history
  • Loading branch information
ap committed Nov 24, 2024
1 parent ea18d97 commit f7e9443
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion ppcs/ppc0025-perl-version.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ We have an opportunity then to look back and recognize that Perl never did stand

And so that is the proposal. The next release will not be Perl 5.42 but simply Perl 42 – which is none other than what it really was anyway. There is no difference between them except in our self-understanding. What this is is a reclaiming of Perl’s history.

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 the transition from Perl 5 to Perl 6 failed to materialize when the one from Perl 4 to Perl 5 succeeded so thoroughly was that despite truly being a new and more powerful language, Perl 5 was almost entirely a superset of Perl 4. Subsequent attempts have borne this out: [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. But meanwhile, new internal APIs have come along and made it possible to extend the language in previously impossible ways – on CPAN. And eventually we even learned how to undo old mistakes: by naming them with feature flags to be turned off under future feature bundles.
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 this out: [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.

That is the future. Perl will not have a successor. It will not break with its past. It will keep moving forward the same way it always has: sometimes with substantial changes; often with minor ones; occasionally with breaking changes, but always deliberately and circumspectly.

Expand Down

0 comments on commit f7e9443

Please sign in to comment.