Nov 17 11:49 PM

On Perl5 and Perl6

The p5/p6 discussion has come back around again. As always, there are quite a few folks weighing in. And, if for no other reason, than to hear my virtual gums smack around, I'll toss my pesos into the ring.

I write code for a living. When I was a young programmer, I followed the overused tolkien addage. One Language To Rule Them All. That language was perl5. As I grew as a developer, I learned what I consider to be the most important lesson a programmer can ever learn. That language you love, the wonderous perl5 or perl6 or whatever, is a tool. It's not your monogamous partner who will take your kids and all your money because you cheated on them with another language.

Shockingly, Ruby, Python, Erlang, C, Lisp, and hundreds of other languages have real world applications and have very real world specialties. Well, maybe not Lisp. perl5 is not the end-all-be-all language. If it were, would folks have wanted to create perl6 in the first place? If it were, would folks still be using Ruby, Python, sh, C, etc? Wouldn't everyone have adopted perl5 and danced off into the sunset?

We as perl5 people have to accept that perl5 is not the right language for everything. Maybe (now here's the shocker), just maybe, perl6 is the right language for your task. How can you know unless you learn it?

Most importantly, this is not a competition. The lovers of languages act like it is sometimes and that's a shame. We compare the number of public job offerings, the number of downloads, the attendance at conferences like it's a goddamn merit badge. It reminds me of the high school locker room. Size doesn't matter, folks. What matters is how you use it.




Now. There's another side to this. I write code for a living; this is true. I also (usually) write code as a hobby. When I sit at home, on my couch, with my laptop and some wine, I don't really care if ruby or scala is the best language for the job. At home, perl5 or C will do what I want. If they can't, I will hack on them until they submit to my will. Other languages may be awesome but my free-time coding is about spending time with the languages I love to use.

This scenario is another "not a competition" environment. Here on the couch, I want perl5 to be awesome at everything. That means taking ideas from other languages to improve my favorite language. Moose, POE, Catalyst, DBIC, Mason, all the frameworks we love to play with came from, in part, from the ideas of non-perl5 people. Our beloved perl5 was created using ideas from other languages. Our beloved perl6 was created with ideas from perl5 and yet more languages.



At the end of the day, no matter how you look at it, this isn't a competition. perl5 and perl6 exist. They borrow ideas from each other. The languages are natural complements. I certainly hope the communities can be too.

Posted by sungo | Permanent Link | Categories: perl, tech