A r t i c l e s
Navigation

Note: This site is
a bit older, personal views
may have changed.

M a i n P a g e

D i r e c t o r y

PERL SUCKS


"When we say that Perl is a natural language, we are referring to the structure of the programs written in Perl.

Basically, when you program in Perl, you code it like you would say it. This makes Perl a language that is both easily learned and easily understood.

Often, it is possible to determine what is going on in a Perl script by simply reading the script through from start to finish. In most other languages, several passes over the code and a lot of jumping around and cross-referencing are necessary before you can even begin to determine how the code works."

Laughing, Out, Loud.

Don't believe it? Look the quote up. It is real quote! It's not a joke.

The funniest part about that quoted paragraph above is "In most other languages, several passes over the code and a lot of jumping around and cross-referencing are necessary before you can even begin to determine how the code works.".

And how about "This makes Perl a language that is both easily learned and easily understood."

In fact, about 90 percent of the words in the quoted paragraph above, could be used as rotated signatures at the bottom of your emails. People will fall off their chair laughing when they see your signature rotations based on the above paragraph.

Just picture this for a second. You are posting a message on Usenet or a mailing list, and people see this at the bottom of your email in your signature:

"Often, it is possible to determine what is going on in a Perl script..."

"Perl is a natural language"

How about this one: "we are referring to the structure of the programs written in Perl". Structure and perl in the same sentence?


Language comparision:
  • C is a quick hack of a compiled language that has grown exponentially by adding crap to it, and has standards with ANSI in front of it to make the language sound legitimate, has anal case sensitivity that people never need, and is generally fast.
    :-( :-( :-|

  • Perl is a quick hack of a shell scripting language that has grown exponentially by adding crap to it, and has lots of crap available for quick hacks.
    :-( :-|

  • Java is a structured OO language with tons of libraries, that requires massive CPU power to do anything useful, tons of typing to do simple things (much more than Pascal or C), a VM engine (interpretter). But nothing available for quick hacks, and the interpretter is written in C.
    :) :-| :-(

  • Delphi is a properly structured language with many libraries, OO available at your side, requires no massive CPU power to do anything useful, and no VM engine, geared toward MS Windows but has Kylix. But the compiler is written in C.
    :) :-| :-(

  • FreePascal is a properly structured language with many libraries, OO available at your side, requires no massive CPU power to do anything useful, and no hotspot VM engine, with QuikPas compilers and interpretters available for quick hacks. And the compiler/interpretters are written in Pascal.
    :) :) :)

The only thing that we can learn from the Perl language is that in very rare cases, things like short symbolic syntax can be useful. For example, regular expressions. This is the case in life. Pick the right tool for the Job. Perl is not the right tool for websites. Perl is not the right tool for programs. Regular expressions are a nice tool for websites and programs, in addition to a proper programming language.
Let's take a look at what someone calls a "general purpose sendmail script" for perl. Now if this script looks general purpose and obvious to you, maybe you really do eat perl necklaces for breakfast and actually enjoy chewing on them ---> General Purpose Perl Script
"I'd much rather the flight control software on the airplane I'm riding in be written in Ada than in Perl." --Larry Wall
Although I don't always agree with Eric S Raymond, I do agree with his comments specifically about perl in this case. --L505

Quotes from Eric S Raymond below, addressing Perl specifically, on why he chose Python. Although he chose Python, it seems that he missed something called Pascal. I guess he fell for Python without doing further research.

"For tiny projects (100 lines or fewer) that involve a lot of text pattern matching, I am still more likely to tinker up a Perl-regexp-based solution"
Comment:
Or you could just use a language that has regular expressions implemented, throwing out the whole need for perl altogether.

"the syntax and some other aspects of the language seemed rather ad hoc and prone to bite one"

"Writing these programs left me progressively less satisfied with Perl. Larger project size seemed to magnify some of Perl's annoyances into serious, continuing problems. The syntax that had seemed merely eccentric at a hundred lines began to seem like a nigh-impenetrable hedge of thorns at a thousand."

"More than one way to do it'' lent flavor and expressiveness at a small scale, but made it significantly harder to maintain consistent style across a wider code base. And many of the features that were later patched into Perl to address the complexity-control needs of bigger programs (objects, lexical scoping, ``use strict'', etc.) had a fragile, jerry-rigged feel about them."

"These problems combined to make large volumes of Perl code seem unreasonably difficult to read and grasp as a whole after only a few days' absence. "

"...I found I was spending more and more time wrestling with artifacts of the language rather than my application problems. "

"...most damning of all, the resulting code was ugly--this matters. Ugly programs are like ugly suspension bridges: they're much more liable to collapse than pretty ones, because the way humans (especially engineer-humans) perceive beauty is intimately related to our ability to process and understand complexity. A language that makes it hard to write elegant code makes it hard to write good code."

Comment:
Languages that people have found elegant syntax are Python, Pascal, Ruby, and a few more. Take your pick. Currently Pascal compiles itself, none of the others do. (see also PascalScript, QuikPas). Remember, if Python is written in C, you can't go saying your Python projects are 100 percent elegant until the Python interpretter/compiler is written in Python also. Someone has to maintain that.

"By mid-1997, I was thinking 'there has to be a better way'"

"One course I did not consider was going back to C as a default language"

Comment:
Remember, if Python is written in C, you can't use Python then, because eventually you will be digging into the code that runs the Python interpreter, or the Python Libraries. Someone has to maintain those too, you know.

"I flirted with Tcl, only to discover quickly that it scales up even more poorly than Perl."

" I had seen GUI code in Perl, and it was a spiky mixture of Perl and Tcl that looked even uglier than my own pure-Perl code"


What can you do with a language like perl? Take it's best features, implement them into other languages, and throw Perl in the garbage. Regular expressions are already implemented in other languages.
And why do so many people use perl? Because it does have a few nice features that work in rare occassions. Because some people feel as if they are getting more work done if they are more terse. Because some people feel more like a hacker if no one else can understand their code - it must just truly be some hacker code, if no one else can read it. But this is incorrect.
Please note, that sucks pages can seem negative at times. Please consider that although sucks pages may be negative or aggressive in style, they do point out important considerations.

About
This site is about programming and other things.
_ _ _