The two reasons to learn Perl

scrottie on 2007-04-16T09:28:32

It used to be that Perl's reputation for making easy stuff easy (hey, that's quick and easy in Perl!) got it learned. Then, after a while, the particular ways that Perl made things easy lost their magic and people came to persue other promises of ease: a return to the simplified syntax languages, a return to proprietary stacks, moving the complexity into the libraries, etc.

It occurs to me that by the time I really sat down and started learning Perl, Perl already had a reputation as being *hard*. Enough gnarly scripts had been written that its reputation as a line noise language preceeded it. The hackers that knew its value hung on but sales of _Programming Perl_ were giving way to other books, especially _Java in a Nutshell_.

I don't think I would have learned Perl if this *hadn't* happened. It was the idea that Perl was hard, that other people couldn't hack it, that people were vaguely afraid of it... that made it alluring to me. And now as I look at my resume and kick myself for having such a long, involved affair with only one language, I ponder what else I might program in, and again, it's the languages that earn respect through fear that fascinate me.

Ruby is vaguely interesting but mostly in the way of its culture and the degree they've been able to simplify semantics and syntax while remaining expressive -- Ocaml and Haskell I fantisize about. My imagination has flights of fancy about how they might be implemented and how they optimize and what I might build with them. I still a lot of C++ jobs out there, including at Google, and Java bores me. C++ on the other hand is well known for being a tool for creating garish, incomprehensible edifices. Being as static as C langauges are, it's hard to do meta programming and introspection, but it's still packed full of trixie little things for getting down into the guts. Lisp fascinates me too, especially with the idea of operating on code as data. Python is just a big cop-out for people who really can't hack it. I respect that the core is mercilessly refactored and features are rapidly depricated, but the whole project shoots for such a low target. Better languages already existed -- such Lua, Pike/LPC, ... tons other that I forget. Python just had marketing and it played itself up as being an exit from Perl.

Obviously there are a lot more than two. Carve things up how you like. My little toy division here was really a division in people... people who look for the easy way out and then wind up piling on added effort the rest of their life to sustain the oversimplifications they've adopted, and those that want to see the reason in the complexity rather than wallow in ignorance. Then there are the Ruby people who have about the right level of abstraction and are good at getting work done =)

-scott