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.