PERL 5
The Adolescent
Shortly after a preteen starts to think about thinking, the raging hormones enter the scene, causing a total brain meltdown and, hopefully, eventual reconstruction.
For Perl, the meltdown happened because I decided to follow the rule: "Plan to throw away your prototype, because you will anyway." Perl 5 was nearly a total reorganization. I have in times past claimed that it was a total rewrite, but that's a bit of a stretch, since I did, in fact, evolve Perl 4's runtime system into Perl 5's. (Though if you compared them, you'd see almost nothing in common.) The compiler, though, was a total rewrite.
You only get one shot at raising your kids. Similarly, I figured that this was my first and last chance to raise Perl right. So I thought of all the buzzwords I wanted Perl to be compliant with, and heroically set out to make it so. By and large, I think I succeeded. As with the typical adolescent, Perl 5 is significantly, um, sexier than Perl 4.
Among other things, Perl became more readable and more extensible. It also became more unmanageable, not because it was a bad design, but simply because it was growing up, and had too many interests of its own. With Perl 5, I began to realize something I was learning with my kids: I had to let them learn to make their own way in the world. Not that I don't still give them all a lot of advice. But the process of letting go is gradual; if you let go all of a sudden, they tend to land hard.
One manifestation of this was that I had to learn to delegate most of the work of Perl development and documentation to other people. We've developed a system of "pumpkin holders" who are responsible for the various aspects of Perl development and maintenance.
But that's not good enough. I also realized that, while the open source community is good at some things, it's lousy at other things. If Perl was to be useful to as many people as possible, I had to learn to delegate some things to the business community as well. In particular, we really needed to have a commercially packaged version of Perl for the Windows folks, because many of them were (and still are) clueless about open source. It's almost like we're doing Windows users a favor by charging them money for something they could get for free, because they get confused otherwise. (This is Linux Magazine, so I can get away with saying this, right?)
But beyond that, I was looking around for someone with some business sense to cooperate with, when lo and behold I found out that Tim O'Reilly (as in O'Reilly & Associates, my publisher) was having the same ideas about establishing a more symbiotic relationship with the open source community.
Tim is a class act. He's also a bit of a rarity: a brilliant (but not greedy) entrepreneur. His slogan is "Interesting work for interesting people." We hit it off right away, and Tim offered to pay me to take care of Perl, because anything that is good for Perl is good for O'Reilly. And from my perspective, lots of what O'Reilly does happens to be good for Perl.
But it goes beyond even that.
Tim and I both felt that there was something larger than Perl afoot. Free software has been around in various forms as long as there has been software, but something new was beginning to happen, something countercultural to the counterculture.
The various open source projects were starting to realize that, hey, we aren't just a bunch of separate projects, but we have a lot in common. We don't have a bunch of separate open source movements here. We have a single Open Source movement -- albeit one with lots of diversity of opinion as to how best to move the bandwagon forward to where more people can hop on.
In short, our counterculture was beginning to count.
When Tim hired me on three years ago, that was very much on our minds. We were preaching it a year before Netscape released the Mozilla browser code under an open source license.
Of course, both Linux folks and Perl folks recognize that Linux and Perl were here long before the bandwagon, and will (hopefully) be here long after the bandwagon has broken an axle (or more likely, has been hijacked). But in the meantime, both Linux and Perl have been growing up, and they are now mature enough to understand the utility of a bandwagon in inciting a revolution.
Frankly, I'm glad that Perl isn't competing against Linux. Quite the contrary -- now that both Perl and Linux are growing up, Perl is going out with Linux. I suppose that, as the father of Perl, this should make me nervous, but it doesn't. They have my blessing. May they prosper. May they have many happy years together. May they be fruitful and multiply. And dominate the world.
Larry Wall is the creator of Perl. He works at O'Reilly & Associates and can be reached at .