Tuesday, May 13, 2008

Re: Why People Are Passionate About Perl

Perl Here's my response to brian_d_foy's People Passionate About Perl meme.

I first starting using Perl to...
I began looking into Perl in the 90s -- when it was suffering less from perception issues -- as an alternative web development platform to ASP. ASP presented a low bar, and I was making web front-ends to databases in a very short time. Then, after satisfying initial needs, more demands began to be made on our web applications, and ASP's low bar began to be an inhibitor.

I reviewed Perl as an alternative, and (I'll be honest) after getting past the syntax, began to understand the power I was toying with. Then, I discovered CPAN. ASP never looked quite the same after that.

I kept using Perl because...
It's never given me a reason not to. Sorry, but I'm not loyal for loyalty's sake. If a tool like Perl can't make my life easier than tool X, then it's time to investigate tool X.

But Perl hasn't failed on this account. It's proven to be highly adaptable, and the energy of its community has fit it to new paradigms readily. For instance, is there a Ruby on Rails for Perl? Try Catalyst, or the newer Jifty.

As for pre-packaged functionality, I don't think there's a language that can compete. CPAN continues to grow and grow. In fact, if you want to contribute, the difficulty now is thinking up something that hasn't already been done. Try templates, for example.

This means one thing: If I need a tool to get something done, Perl is the easiest choice. It's powerful, flexible, and continues to edge into functionality that I haven't even begun to think about.

Oh yeah, and it also provides industry leading regular expressions via operator, for the absolutely most convenient and shortest possible way of using this very important technology.

I can't stop thinking about Perl...
Actually, I can stop thinking about Perl, and frequently do. That's because there are other things in my life besides Perl. However, I think in Perl when I think about crafting software, or anything abstract and computational. Its natural language model makes this easy.

And since web, Internet, and database are the spaces for the majority of my software ideas, thinking in Perl is a huge benefit for me, because so many others are thinking in Perl for the same spaces, answering questions I haven't thought to ask yet (CPAN again).

I'm still using Perl because...
This is mostly covered above. But here's one more.

Line count. I use Perl day-to-day to handle any number of tasks, of any size and importance. Perl itself reduces line count just in the power of its syntax. I'm not talking about merely writing obfuscated code. I'm talking out the power inherent in the language itself.

And now, back to CPAN.

Recently at work we needed to parse a handful of Excel spreadsheets that were formatted more or less the same. I handed this job off to a contractor who works for me. He created a C# project, and then left for the day. He wasn't able to come back the next day, so I took the project over. He had barely gotten started, but he already had five or six files involved, and a couple hundred lines of code.

I immediately thought we should be doing it in Perl. This was a one-off project, so why do a whole Visual Studio project? I Googled around and found this tutorial. I installed the modules from CPAN, adapted the samples to my needs, and about an hour and 80 lines of code later, I had the spreadsheets munged into SQL and ready to go.

Sorry, but I'll take the shorter route every time, if I can.

I get other people to use Perl by...
Well, I blog. Not exclusively about Perl, and not even explicitly to advocate Perl, but it is about Perl, because, like I said before, I think in Perl. It's going to leak out.

I have pointed people to Perl when it best suits their needs. A guy I work with wants to learn programming, and was looking at Python. I asked why he was interested in programming, and he admitted he just wanted to write a few scripts to download content off a website. I nodded and said, "You should use Perl."

Python may have this covered as well, but I showed him how in one line of code (via LWP::Simple) I could grab the text of a website. I also pointed him to all the modules -- you guessed it, available on CPAN -- that can rip apart HTML and extract just the things you need.

I also program in ... and ..., but I like Perl better since...
Although I know several other languages, I program primarily in C# and Perl.

Both languages work well for the domains in which I use them. I use C# to write Windows specific applications. C# just has better hooks into the system, with less weirdness.

I use Perl for pretty much everything else. And where they cross domains, i.e. web development (ASP.NET), I prefer Perl, because (1) it has more pluggable functionality, and for free, and (2) has a shorter development-to-production time. This is partly due to my proficiency in Perl, but also because there is less setup involved in new projects, and less OO wrapping.

If it's a simple app, I use a minimal amount of Perl. If it's more complex, I use the frameworks available, like CGI::Application and templates. With ASP.NET, you're pretty much bound to the framework -- with all its complexity -- even for simple projects.

No comments:

Post a Comment