[prog] Programming for QA folks

Jacinta Richardson jarich at perltraining.com.au
Sat Jun 16 13:46:22 UTC 2007

Miriam English wrote:

> Perl can be extremely difficult to read later. This becomes very 
> important when you collaborate in a group or have to return to your own 
> code after months, when it might as well have been written by someone 
> else. Perl tends to be extremely dense and obscure, and easily hides 
> annoying little bugs because of that.

I suspect you're complaining about bad programmers here, rather than a bad 
language.  Sure, Perl doesn't insist on the programmer using multi-syllabic 
variable names, consistent indentation etc; but neither does C, Java, PHP and 
others and they don't get the rap Perl has.  A good programmer can write 
beautiful, maintainable and well readable code in almost any language (once 
they've learned it).  Perl has a historical reputation for ugliness (quite 
probably because it wasn't originally designed for _programmers_), but _good_ 
Perl programmers probably write ugly Perl code as often as _good_ Python 
programmers write ugly Python.  And when they do write ugly code, at least they 
can use perltidy to improve it.  :)

Perl does make it easy to write line-noise, but I don't know of anyone who 
recommends that you do so (except for obfuscated contests).  Perl does have ugly 
global variables like the ones you see a lot:
	$_, @_, $/, $@, %ENV, @ARGV, $0 - $9999999
and even more that you should never see (refer to perldoc perlvar). Many of 
these special variables come from Perl's roots back 20 years ago.  Back then 
Perl's author took a bunch of existing Unix tools (sed, awk, shell and others) 
and glued them all together into a language.  Perl became popular almost 
immediately with system administrators who then used it for pretty much 
everything.  As a result later versions of Perl have meticulously maintained 
backwards compatibility with this first version.  (Perl 6 finally breaks this 
compatibility, but then it's almost a whole new language).

Good programming techniques have changed a lot in the last 20 years and so has 
Perl.  Perl's had a style guide for years and the "Perl Best Practices" book was 
published two years ago - I was a technical editor - (I know a bunch of PHP 
programmers who follow most of it's advice too).  Perl is about as dense and 
obscure as _you_ write it.

Cryptic programmers are compatible with any language and anyone who writes 
cryptic code is doing themselves a disservice.  In fact, as I read in Perl Best 
Practices; writing good code is like writing a love letter to your future 
self...  :)  And I think it was Dijkstra who observed that in order to be able 
to debug code you have to be twice as smart as the original author; so if you 
write tricky code, you'll never be smart enough to debug it!  These are all true 
for any language.

All the best


More information about the Programming mailing list