Ovid, a well known one to the Perl community for his modules on CPAN shows us his beginnings, history, Perl 6, the Perl Hacks book more of its genius and commitment to the Perl community.

How do you describe yourself to the Perl world?

I never thought about it, really. After a coworker introduced me to Perl as a thoughtful attempt to pull me away from the hell that is COBOL programming, my first foray into the community was probably on June 8, 2000, where I replied to a post on Perlmonks. I’ve never looked back, but I’ve just kind of grown up with the community (well, a newer generation of it) and never thought of trying to describe myself.

How do you reach the Perl language? Perl as a community? Other Perl facets?

Well, you’re never really far away from the language, particularly if you work with computers. Many Web sites are built with Perl. Many of the tools which ship with Linux systems are built in Perl, though folks aren’t always aware of this. Large financial institutions track and manage your money with Perl, even thought you may not know it. Getting involved with it is often as simple as getting a new job and finding out that they use Perl a lot.

As for the community, that’s pretty easy. There’s Perlmonks, tons of mailing lists, Usenet or IRC channels full of Perl programmers will to help you, to laugh at and with you and generally just be people. Just start participating in any of those forums and *blink*, you’re part of the community. It’s very open and we don’t mind newcomers.

How did you decide to take the Chairman seat at the Perl Foundation Grant Committee? is it related to the seat on the Perl Foundation steering committee? How?

A few years ago, Allison Randal posted a call for volunteer grant managers for the TPF grant committee and I spoke up. As it turns out, being a grant manager is really, really easy, but most people find there interests lie elsewhere and they don’t stick with it for long. After a couple of years as a grant manager and being rather vocal on the grant committee mailing list, Baden Hughes stepped down the as the committee secretary and nominated me. The rest is easy, though I confess that Baden made it look easier than it is.

How you began your prolific CPAN authorship? When? Why?

I started it by realizing that there are certain environment variables which are dangerous in a CGI environment and though it’s recommended they be deleted or set manually ($ENV{PATH} and $ENV{SHELL} in particular), no one was doing it. Also, disabling uploads and limiting upload sizes if they’re enabled are also recommended, but no one was doing it. So I wrote and uploaded CGI::Safe (which quietly handles those things for you) and though it never caught on, that was how it started, back around November 2001.

What does your programming environment look like? Emacs? Vim and the Unix tools? Mac OS X?

I use Mac OS X primarily because the company I worked for at the time, Kineticode, handed me an iBook on my first day on the job. Later they bought a newer one and when I left the company, they allowed me to buy it off of them. I had never used a Mac before but I really appreciate it. For the most part, it’s the ease of use of Windows with the power of Linux. Admittedly, some folks don’t like that you can’t upgrade it or that their politics don’t match there’s, but I’m happy.

As for an editor, I use vim, but it’s not because I have an issue with Emacs. I’m tempted to learn the latter as an excuse to get into Lisp more (Elisp, in this case). However, I’ve been using vim for years and am seduced by how comfortable I am with it, though I confess I’m not a power user.

What do you hate about Perl 6? Contrarily, what do you really like? Did that surprise you? Why?

What do I hate about Perl6? The fact that it’s taking so long :) Really, there’s not much to hate because if it comes about the way it’s expected to, anything you don’t like, you can change. It’s going to be a very malleable language that you can customize to your exact needs, though how this will play out in practice remains to be seen.

As for what I like, it’s really pretty simple: I like the vastly improved object system. Having proper subroutine and method signatures, combined with multi-dispatch will eliminate many of the most common bugs in Perl. For newer programmers, the invariant sigils (something they won’t even notice) and the easier handling of references (again, something they likely won’t even notice) will make Perl programming much easier to learn.

Perl6 roles make me very happy and the rule and grammar system look quite nice. Oh, and junction! Heck, I better stop now. I’ll gush on at length :)

If three people reading this interview suddenly said “Hey, I have a couple of spare hours to help out! What can I do?”, what would you suggest?

This probably isn’t the answer most people would expect, but I would say take that spare couple of hours and write a test suite for a module or two. If it’s your own code and it had no tests, you’ll probably find bugs you never expected. The biggest obstacle for getting people to test is getting them started testing, so I want to do that. Once you get started and see the benefits, you won’t look back. Then you can infect more people with the testing bug.

If time, money, and resources were no object, would you use your coding powers for good or awesome? What would you do?

I’m not sure that ‘good’ and ‘awesome’ are really that different. However, if I had my druthers, I suspect I would do a few things. One, I’d work harder to teach more programmers about how testing will save them time, money, and grief. I’d also probably take the trouble to learn Parrot and see what it would take to port a Warren Abstract Machine (a.k.a., the WAM) as a first pass at making Logic programming available for Perl 6. The WAM has many of the same problems as SQL, but it would be a good first pass.

What’s the most valuable lesson you’ve learned while programming and how painful was it to learn?

When I was 19, I told a friend that I could program anything. The next 20 years have seen life bent on proving me wrong. The most important lesson *any* programmer can learn is “position release”. When you’re wrong, be willing to admit and move forward. To paraphrase a saying mathematicians use, “a first rate programmer wants to hang around other first rate programmers. A second rate programmer wants to hang around third rate programmers.” When you’re willing to admit you’re wrong, you can hang around the first rate programmers, even if you aren’t one.

What non-Perl projects are you watching with wise and considered eyes? Why?

Ignoring that my eyes are hardly wise and considered, I’m watching Rails not for what it can do, but for what it’s marketing can teach us. For the longest time, in our space, Perl was pretty much the only game in town. Now, with Python, PHP and Ruby all being talked about, Perl has serious competition and it’s worth considering the non-tangible aspects of getting Perl better known. Many programmers have a belief that technical superiority alone should determine the success or failure of a language and they get annoyed when it doesn’t. The problem is, technical superiority is *very* subjective. For the same reason you wouldn’t wear a one-size-fits-all shoe, you can’t have a one-size-fits-all language. So a key element to bringing more people to Perl is letting them know when Perl fits. Rails has done a fantastic job of showing people how that can be done.

What’s one question you wish I asked and what is your answer?

I wish you had asked “what’s the book ‘Perl Hacks’ about?”

The book, Perl Hacks (http://www.oreilly.com/catalog/perlhks/), is by chromatic with Damian Conway, myself, and a host of other contributors. While I don’t know that the other contributors would agree with my assessment, Perl Hacks is essentially The Perl Cookbook optimized for fun. There are all sorts of quirky, fun little bits in it and I was quite pleased to be part of it. It’s sales seem to be doing reasonably well on Amazon and the reviews I’ve been reading have all been very positive. It’s a blast to read and I strongly recommend people pick it up. There’s going to be *something* in there which impacts what you do as a developer.