I want to learn a new language...

Michael Brailsford brailsmt at yahoo.com
Wed Feb 14 15:54:30 MST 2007


Alright, I used to be a major ruby fan boy.  I would never consider programming perl, ever.  Then I graduated and had to get a job.  Guess what?  The only job at the time was a job writing a web app with perl.  So guess what, I now know perl a lot better than ruby.  I still love ruby and use it wherever I can.  But I have a problem with it, I don't want to install an interpreter just to use a script.  You see, I wouldn't have a problem with that if I worked on a small set of Linux machines, but I work with AIX, HPUX, and OpenVMS.  Thankfully the VMS is deprecated, but I still have to use it.  Guess which languages are available to use on all those platforms by default?  NONE.  Perl and Korn shell are on all the Unix boxen.   DCL is the only thing available by default on VMS.  Thankfully, the admins here put perl on VMS.  Oh yeah, did I mention I have to run these scripts on 10s-100s of these machines, most of which I don't have root access to?  So you see, your choices should be limited to that which you have available.  If you know for sure you will always have a python or ruby interpreter on the machines you have to use, then use them by all means.  In the real world, they frown on developers installing language interpreters for a few scripts.  Bosses have mostly heard of perl and so you generally get management on your side to include lots of perl scripts.  But try selling the merits of Ruby and Python to a few PHBs that don't grok tech the way you do, you will soon start using what you have and focus your efforts on pushing for really important things like unit testing frameworks, refactoring projects, etc...

In the end, when I want/need to do something at work, I use perl.  Not because I prefer the language, but because its the most practical choice.  I have used Ruby for about 5 years, but I use perl everyday instead of pushing ruby.  Its easier and better supported and it looks good on a resume.  With perl I have written an automated cross platform C++ build system, a cscope web front-end, dependency graphing tool and other stuff.  All in my spare time, which is rare around here.

I most heartily second the "Perl Best Practices" book!  It is a very well written book.  It also contains A LOT of non-perl specific best practices.  I recommend it to everyone, whether you use perl or not.  My programming-fu skills greatly benefitted from reading it.

So I guess I recommend perl purely for the practicality.  If your criteria is less practical, I very highly recommend ruby.  It is a very clean language, and very easy to work with.

-Michael

----- Original Message ----
From: Jesse Stay <jesse at thestays.org>
To: Provo Linux Users Group Mailing List <plug at plug.org>
Sent: Wednesday, February 14, 2007 3:57:54 PM
Subject: Re: I want to learn a new language...

On 2/14/07, Bryan Sant <bryan.sant at gmail.com> wrote:
> Perl.  I like the fact that Perl is everywhere.  You can't swing a
> dead cat by the tail without hitting into a Perl interpreter.  I like
> that Perl is mature.  One word, CPAN.  All of this is great, but I
> DON'T like the whole, "there's more than one way to do it" deal.  More
> than one way?  That's a I nice way of saying that every Perl program
> is as unique as a snow flake.  I'd like to use a language that others
> (and even ME after 6 months) can read.  My own experience backs up the
> claims that Perl is a "write only" language.  This may be overly
> dramatic, and Perl may be more readable than I think if I spent some
> more time with it.  Help me learn to love Perl.

One good book that will help you love perl:

Perl Best Practices by Damian Conway

Also:

Higher Order Perl, by Mark Jason Dominus

The first is one every Perl programmer should read.  There are Perl
programmers, and then there are Perl programmers that have read Perl
Best Practices - you will see a firm standard in writing code by those
that have read it.  Their code will be much easier to read.

The second has some excellent examples of why OO is not always the
best way to do things.  It goes over recursion, writing programs that
can be "programmed", and other great methods of using Perl to write
great programs.

Jesse

-- 

#!/usr/bin/perl
$^=q;@!>~|{>krw>yn{u<$$<Sn||n<|}j=<$$<Yn{u<Qjltn{ > 0gFzD gD, 00Fz,
0,,( 0hF 0g)F/=, 0> "L$/GEIFewe{,$/ 0C$~> "@=,m,|,(e 0.), 01,pnn,y{
rw} >;,$0=q,$,,($_=$^)=~y,$/ C-~><@=\n\r,-~$:-u/
#y,d,s,(\$.),$1,gee,print

/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/






More information about the PLUG mailing list