Jonathan Ellis wrote:
On Wed, 25 Jan 2006 21:08:44 -0700, "Michael Torrie"
<[EMAIL PROTECTED]> said:

Other that code written very clearly, perl is one of the easiest
languages to write unreadable code in that a future maintainer will have
no hope of understanding.  It's not the one always implies the other;
just that it's more probable.  One of my CS professors said it best.
Perl is a great language for doing lots of things quickly, and it's very
powerful.  However in the hands of most people perl is a "write-only"
language.


Often, perl fanboys will respond to this with something like, "but you
can write unmaintainable code in any language!"  That's true.  However,
as Erik Naggum said, "It's not that perl programmers are idiots, it's
that the language rewards idiotic behavior in a way that no other language or tool has ever done." (From a semi-famous post on perl:
http://www.underlevel.net/jordan/erik-perl.txt.  Warning: bring a thick
skin if hearing "perl is broken" brings emotions similar to "your
daughter is ugly.")

That's why these days you mostly see sysadmins and other not-really-
experienced developers using Perl.  Or, professionals using it as an
awk/sed replacement, which is what it was designed for and which it's
quite good at.

While I also prefer Python, putting down Perl programmers is counterproductive.

I actually think Perl has a really provocative philosophy. As I understand it, Larry Wall is a linguist, and he has observed that spoken languages evolve in strange ways, so why shouldn't programming languages do the same? The result might be a programming language that assimilates new concepts with ease, enabling it to progress faster than other languages, at the cost of having no absolute rules. Combine that with the open source philosophy and you have an exciting language.

Java is admirable because it knows its target audience. Programmers want an assurance that their software will be fast, they don't want to manage memory at a low level, they don't want to care about different operating systems, and they want to assemble software like a puzzle. Java makes those ideals a top priority and fulfills them pretty well.

Python has similar ideals, but it puts places readability as a higher priority than all others. After all, good code will be read a lot more times than it's written, so optimizing for the common case means everything should be expressed as clearly as possible. Python can be abused like any other language, of course; I've written a few unreadable hacks myself. But for the most part, Python code is readable. It's also easy to write, fast, cross-platform, and very modular.

I haven't studied Ruby in the same depth, but Ruby seems to be the language that says "Perl's philosophy is good, but let's guide the evolution a little more." That's a mature attitude, so I suspect Ruby is going to continue gathering well-deserved popularity.

Shane

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

Reply via email to