The Perl Roadmap

There’s been discussion recently over a roadmap for future Perl development.. It’s an interesting discussion for anyone who’s ever been involved with a large project or watched one develop.

Yes, having a clear roadmap and vision for a project is the best way to get it to where you want it to be. It’s vital for an emerging project.

But, Perl? Perl is a mature language. There are still new tricks to be had and optimizations to be done, and perhaps techniques that gain in popularity elsewhere that might be implemented in Perl, as well.

Does Perl need a roadmap? At this point, I can argue that it doesn’t. Ricardo Signes uses the metaphor of a city that’s already built and is now constantly rebuilding itself and shifting things around with a city leader to make sure it stays within the bounds of good taste. It’s a good metaphor: Perl is a built city.

Granted, some might argue that it looks a lot like Detroit these days, but I think that’s extending the metaphor too far.

Perl is used for far too many things in far too many different directions for far too long to give it a unifying direction.

A project like Perl 6 needs that roadmap. It’s — pardon me while I chuckle here — not a 1.0 language yet. (Or ever, really.)

I wanted to propose a roadmap here for you just as an intellectual exercise, but I can’t. It’s too tough. Perl is an all-purpose scripting language now. There’s not much it can’t do. You could try to push it in one direction to attract new developers, but let’s be realistic: Perl has a reputation now that would prevent those developers from giving it a serious chance, short of some new groundbreaking project that they couldn’t ignore. That would happen outside of Perl Core.

I have ideas for what would make Perl a better language, but they’re mostly not Perl Core-centric. Some of them are just gripes that aren’t even fixable. (You can’t uninstall a CPAN module? WTF?) And some of them are likely impossible to implement without breaking far too much backwards compatibility (adding Elixir’s |> operator to Perl, which Perl 6 kinda has).

Unless someone can come up with a very convincing game plan to alter the future of Perl in a drastic and severe way, the current method of city-altering instead of roadmapping is all Perl needs. Does that mean Perl will never grow again? I think the answer to that question is outside the hands of the Perl 5 Core team in its current condition.

I almost caught myself saying that the best hope Perl has for a bright future is a major fork that goes in a bold new direction with focus and clarity. In other words: Perl 6 minus is first 3/4ers of a decade where it learned from a lot of mistakes and false steps. And with a single-minded purpose to be One Thing, whatever that one thing is. It’s back to the metaphor of having to burn down the forest to grow it back stronger. But can Perl today survive that initial burn?

It’s frustrating and a bit sad.