Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: Perl's warts

by beagle (Initiate)
on Mar 22, 2001 at 02:50 UTC ( [id://66179]=note: print w/replies, xml ) Need Help??


in reply to Perl's warts

Hello Monks,

It seems that my WDVL article has made its way here to the Monastery. As the author of said "Warts and All" piece, I wanted to make a few points. By and large, the discussion here is fair and reasonable. I don't want to respond point-by-point to every criticism and agreement -- in some cases, I've had a difficult time with topics I haven't fully mastered, in other cases criticisms are a matter of subjectivity.

There is no motivation to bash Perl behind this article. If you look at yourself in the mirror and say "boy I'm getting a little fat around the middle", that doesn't mean you're a horrible person. But it's still important to look, and to see.

I'm not inexperienced with Perl, as some critics jump to argue. That I might disagree with, or prefer, alternate language constructs in certain instances is not a sign of naivete. The audience for this article, and the series in which it appears, are newcomers to the language, and my perspective is geared towards that of a newcomer, and what may be troublesome. This can and does sometimes involve the way Perl uses context sensitivity and reference syntax.

The mention of Python at the end of the article does not disclose a secret pro-Python/anti-Perl agenda or bias. It is merely a suggestion for those whose curiosities are piqued. I favor no single programming language, all are tools. The vast majority of my live, production code is written in Perl.

Perl Monks, being an advanced breed, are certainly going to view some of these observations from a very different perspective. By the same token, Ward's Auto World is going to evaluate a particular car differently than Consumer Reports, given their audiences.

I appreciate everyone's responses here, I take the comments and critiques to heart.

cheers

Aaron

Replies are listed 'Best First'.
Re: Re: Perl's warts
by chromatic (Archbishop) on Mar 22, 2001 at 03:58 UTC
    Re-reading the article from the perspective of a newcomer, I have to agree with nearly everything you've written. Context is complicated. References are an advanced concept. Learning the Unix Way To Do Things, especially with no Unix experience, will take some time.

    I disagree that these all mean the language is too difficult for beginners. It might be easier to learn a language with a small core syntax (like C or Python), but to do useful things you'll also have to get to know libraries and extensions, just so you can do something useful.

    You'll never find a language that allows you to Do Useful Things without having to learn a few things here and there.

    The same goes for natural language. You can go to the Cairo Bazaar (presuming you don't speak Arabic) and buy some things by pointing and holding up fingers and occasionally flashing the appropriate number of Egyptian Pounds. You'll have a more difficult time getting directions to your hotel if all you can do is point and grunt.

    Granted, some people aren't interested in having to learn much. And, granted, there are parts of Perl that frustrate me (the tricks you have to go through to inherit instance data in objects, for one).

    The thing that bothers me about articles like this is the idea that there's some terrible, hideous complexity lurking underneath Perl's friendly Do What I Mean facade, and that's somehow inappropriate for programmers. That's simply a matter of education -- especially when dealing with the second great hurdle of Perl, the difference between scalar and list context.

      Hello chromatic,

      Your points are well taken and valid. As the "Warts and All" article was the latest part of a now 22-part series on Perl, I think it goes without saying that the piece is not intended to scare newcomers off the language.

      Rather, those following the series have gone through a topical survey of most of the major Perl subjects -- enough to get them going writing a variety of web-based scripts. This article is like a signpost along the way, saying, in essence, "now that we've covered most of the basics, here are some things to watch out for". Necessarily, these include opinions.

      Which, again, needs to be considered in context: the series itself is titled "The Perl You Need to Know", and it has a specific conceit -- teaching Perl to developers who are goal-oriented and want to achieve a particular task, without delving more than necessary into the academics of the language.

      I fully understand that the latter point probably makes many Perl Monks cringe and shriek. I sympathize. But much as you, and I, possess interest in programming and in Perl that goes beyond merely "how do I accomplish such-and-such and move on with my life", not everyone shares that same depth of interest. They may have perfectly valid reasons. I don't feel that it benefits the Perl community to alienate these people, or to suggest that only those who want to "go all the way" need apply.

      In any case, that is the philosophy behind the "Perl You Need to Know" series, and I thought it might help to put installment 22, "Warts and All", into context.

      Once again, I do appreciate this discussion and all of your wisdom out there.

      thanks

      Aaron

Re: Re: Perl's warts
by mkmcconn (Chaplain) on Mar 22, 2001 at 04:22 UTC

    My brief exposure to Python came when I was called on to maintain a suite of programs written by someone else. It was a useful experience. I have respect for the language and the people who use it.

    Now that I've paid my compliments, I have purchased the right to turn critical - (just kidding).

    What's wrong with Python is the same as what's wrong with Perl. Not all of its advantages are always available all of the time - some features exclude others (like, nobody writing a one-liner on the command-line would regard significant whitespace to be a positive feature in that application; but, nobody likes trying to read a clutter of unfamiliar perlvars ).

    So, I do think there was a slight unfairness to the article, if you don't mind considering the observation. In the earlier articles beagle, you folks said to Perl, "Be a square!", and then "Be a circle!", and behold, Perl was adaptable to being both. Then, in Warts..., I think you've said "Aha! but Perl cannot be a square and a circle at the same time!" (Which is true - but, I have heard rumors to the effect that Larry considers it a bug, if a circle cannot also be a square, and intends to do something about that!)
    :-)

    mkmcconn

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://66179]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others cooling their heels in the Monastery: (5)
As of 2024-04-26 08:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found