Tuesday, November 10, 2009

You Have Style

Why do I like Perl? On the downside, Perl has 10 ways of doing the same thing. It enforces no particular style - so you'll find all kinds of different styles out there. The code can range from obscure to nigh unreadable. The sheer number of libraries is dizzying. How many duplicate functionality? Why in the world would I use Perl instead of Python, Java, or Ruby?

Our personalities suit us for different working environments. Some people require frequent supervision. They need a list - do step 1, then step 2, etc. Others fly by the seat of their pants, instinctually knowing the right things to do. I fall somewhere in between, leaning towards seat of the pants.

Perl fits comfortably into my personal range on the spectrum. It provides a basic structure with reasonable limits. And then opens up a field of possibilities inside of the fence. Sure, you can get to the tree by three different paths:
  1. The scenic route around the hill and through the flower garden.
  2. Quick - going directly over the hill.
  3. Cut across the hill, overlooking the flowers yet a little more direct.
Perl lets outside circumstances influence your decision: performance, maintainability, readability, flexibility, quality, etc. And I like that. Not everyone does.

What's the point? Different artists choose different mediums because the medium expresses a little bit of who they are. Like other artists, a programmer chooses his medium because it expresses a little bit of who he is. You can never persuade a programmer away from their favorite language on technical merit. They didn't choose it for technical merits.

2 comments:

  1. Why in the world would YOU use Perl instead of Python, Java, or Ruby? Simple: 'spite' ;)

    As I grow as a graphic artist (and continue keeping a reluctant finger in computer programing), I'm discovering how much easier it is to work on the canvas or compiler based upon how clear the constraints are. As much as I'd like to go back to the days of 'seat of my pants' programming, I feel so much more comfortable when writing out algorithms and fitting them within a set framework that takes into account error handling, garbage collection, and data type definition right from the start. Go figure.

    ReplyDelete
  2. You'd hate Cache (aka MUMPS). It's a database language. Not only is it typeless, there's no scope either. We called them floating variables when one function changed the value of a variable from another.

    Great database interface, though.

    ReplyDelete