From: ccc31807 on
On Feb 26, 3:41 pm, Tamas K Papp <tkp...(a)gmail.com> wrote:
> text?  I am talking about Erik Naggum's post [1].  Below, I will
> assume that you are, too, even though this seems unlikely considering
> the things you write.
> I don't really understand you.  This is a very short article, so
> distinguishing "parts" from the "whole" is quite pointless.  I don't
> see how you can claim, at the same time, that "each part was coherent
> and well reasoned" and "AS A WHOLE to be unreasoned and incoherent".
> You propose no arguments to support the latter claim.

> For me, the most important point is how Perl rewards quick & dirty
> solutions, but this is more costly in the long run and encourages bad
> habits.  Again, you may disagree with this, but dismissing the article
> as meaningless, unreasoned and incoherent is, in my opinion, unjustified.

I really, really don't have the time for this. It's late in the day
and my wife is waiting on me to take her out, so this will really be
quick and dirty. Thank God for my Perl background that I can do a
quick and dirty job of this!

Naggum: life is too long to be an expert
at harmful things, including such evilness as C++ and perl.

Me: Point made. I actually agree with the 'evil' part. However, there
isn't any way you can claim this to be an objective, rational, fact
based statement.

Naggum: also, very much unlike any other language I
have ever studied, perl has failed to stick to memory, a phenomenon
that
has actually puzzled me, but I guess there are some things that are
so
gross you just have to forget, or it'll destroy something with you.
perl
is the first such thing I have known.

Me: Again, a tirade with which I can sympathize, but irrational,
subjective, and emotional.

Naggum: what people do with perl is wrong. perl makes a whole lot of
tasks
easy to do, but if you look closely, you will see that those tasks
are
fundamentally braindamaged, and should never have been initiated.

Me: I am paid good money to munge data with Perl, in part, and the
people who pay me rely on my efforts and would be very surprised to
discover that my work should never have been initiated and the the
jobs I do are brain damaged.

Naggum: the perl programmer is
very different in one crucial capacity: the tool is causing the
problems,
and unlike other programmers who discover the cause of the problem
sooner
or later and try something else, perl is rewarding the programmer
with a
very strong sense of control and accomplishment that a perl
programmer
does _not_ try something else.

Me: I'm sorry, but this is just loony toons. A computer language
causing the problem? Particularly a tool supremely suited to a
particular task? Larry Wall wrote Perl to solve a particular kind of
problem, and it works very well for that specific kind of problem. If
you look at the tool kit and at the problems the tools were written to
work on, you will see what I mean, e.g., splice() for working with
arrays and strftime() for date and time formatting.

Naggum: 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,
and on top of it, it punishes conscientiousness and quality
craftsmanship

Me: This is a proposition, not a statement of fact, and it's supported
by no statement of facts. I'd certainly be interested in the evidence
Naggum relies on in reaching this conclusion.

Naggum: a person's behavior is shaped by the rewards and the
punishment he has
received while not thinking about his own actions

Me: I fully agree, but this has nothing to do with the supposed
subject of his rant.

Naggum: to really destroy any useful concepts of how software is
supposed to work
together, for instance, the best possible way is to ridicule the
simple
and straightforward concepts inherent in Lisp's read and print
syntax,

Me: I agree, but so what?

Naggum: that's why, if you learn Lisp and become a good programmer,
you will
never want to do what people do with perl.

Me: Like, solve problems, maybe? What people do with Perl mostly is
take stuff and rearrange it. I suppose Lispers will never want to do
that.

Naggum: perl is already a "necessary evil", but still evil,
while other languages don't have the "necessary" label, so if you
screw
up, it will hurt other programmers, too.

Me: Kinda' defeats what he said before, if Perl is 'necessary' in some
sense.

Naggum: I'll concede, however, that it is very important to be able to
understand
what perl programmers do.

Me: Like, solve problems, maybe?

Naggum: here's a simple rule to use on perl programmers. if a
solution is clean
and complete, it will immediately look like a tremendous amount of
work
to a perl programmer, which it will:

Me: Processing a file using a regular expression (a method much loved
by Perlers) is absolutely clean and neat, although it may look like
cussin' to the uninitiated. I've had non-programmers look at my code
and ask, 'What's the cussing?' pointing to a regular expression. When
I explain it to them, they have been truly impressed that so much can
be packed into a single line. Same with a complex data structure
composed of nested references to hashes and arrays. To me, it appears
clean and beautiful, but to someone else, it may look downright evil.

Naggum: then there are good programmers who know and use perl for some
tasks, but
more than anything else know when _not_ to use it.

Me: I fully agree. To me, the limit on Perl is about 500 lines, but in
fairness it depends on how the code is organized. An application of
dozens of KLOCS may be reasonable provided that it's well organized,
well modularized, and self documenting.

This is written with half a mind and under time pressure, so please
don't expect it to bear much weight, but it's simply an
impressionistic view of Naggum's post.

CC.
From: Andre Ramaciotti on
I don't know if you, ccc31807, knew Erik Naggum before or this is the
first time you read of of his texts, but if this is the case, I guess I
see why you're missing the point of his text.

When he says:
|what people do with perl is wrong. perl makes a whole lot of tasks
|easy to do, but if you look closely, you will see that those tasks
|are fundamentally braindamaged, and should never have been initiated.

he's not saying your job is braindamaged, but the reason perl first
appeared is. Perl was created to solve problems that the shell wasn't
powerful enough to solve and C hadn't the high-level facilities to
solve.

What Naggum argues throughall his texts is that this kind of problem
shouldn't exist. He's criticizes the lack of integration Unix tools have
that made perl necessary, a necessary evil.

It's part of the lisp zeitgeist that Unix was misdesigned [1], if it was
designed at all. This is the main point of his text: were Unix made the
"right way", and perl shouldn't even exist.

[1] http://www.jwz.org/doc/worse-is-better.html
From: ccc31807 on
On Feb 26, 6:55 pm, Andre Ramaciotti <andre.ramacio...(a)gmail.com>
wrote:
> I don't know if you, ccc31807, knew Erik Naggum before or this is the
> first time you read of of his texts, but if this is the case, I guess I
> see why you're missing the point of his text.

I have never heard of Naggum, and wouldn't know him from Adam's house
cat. Ordinarily, when we reach conclusions, particularly controversial
ones, we support those conclusions by reasoned arguments based on
facts. We can differ on our reasoning, and we can even differ on the
facts, but we CAN'T differ on the process of basing conclusions on
evidence and arguments from that evidence.

Naggum's post consisted mostly of zany conclusions based on emotion
and prejudice, not something I have found common in c.l.l.


> It's part of the lisp zeitgeist that Unix was misdesigned [1], if it was
> designed at all. This is the main point of his text: were Unix made the
> "right way", and perl shouldn't even exist.

Well, gosh, I'm a Unix guy, cutting my teeth on BSD. The great insight
of Unix was that OSes and compilers are the two halves of one thing,
that you can't have a compiler without the OS, and you can't have the
OS without the compiler. I'm no fan of C, but the idea of an OS that
you can write and compile using the OS is very rich. And yes, I have
written a little C routine and rebuilt the OS to incorporate the
change, so I have some personal experience as to how powerful the
concept is.

> [1]http://www.jwz.org/doc/worse-is-better.html

This is totally new to me, so it will take some time to digest, maybe
even several years. I'm not hostile to Gabriel's argument, just
unfamiliar with it.

CC

From: ccc31807 on
On Feb 26, 5:54 pm, "Futu Ranon" <futura...(a)gmail.com> wrote:
> > I don't really blame the gods for computer problems, and I don't say
> > that Naggum was really arguing about religion. In part, what I was
> > saying is that the error I got and the seemingly miraculous recovery
> > seemed as supernatural and other-worldly as some religious mystery,
> > and that Naggum was presenting something as subjective and emotional
> > as some religious evangelism.
>
> Are you calling the topic of discussion or Erik's presentation subjective  
> and emotional?

No. Naggum's rant was subjective and emotional -- so much so that I
couldn't find an 'argument' in it. See my earlier post about basing
conclusion on facts and logic.

CC.
From: Rob Warnock on
Tim Bradshaw <tfb(a)tfeb.org> wrote:
+---------------
| Giovanni Gigante said:
| > However, a flexible mess is still flexible, and I find that with a lot
| > of discipline Perl is much more bearable -for one which has been
| > exposed to Lisp- than most of the alternatives. For certain kind of
| > tasks, at least.
|
| I posted an article in this thread which my news server (or more likely
| reader) ate somehow, but which, among other things, agreed with this.
| I quite like Perl: I like it much more than I like Scheme for
| instance[*].
....
| * And I would argue that Perl is much closer to CL than Scheme is
+---------------

As I've said before [most recently in Aug'09], the one thing that
made Perl's "line noise" *much* more comprehensible to me was the
realization[1] that Perl's "typeglobs" are really a lot like CL symbols,
except with more slots, and using readmacros as accessors instead
of functions:

Perl form CL (near-)equivalent form Slot-type
========= ========================= =========
*foo 'foo The typeglob for "foo"
$foo (symbol-value 'foo) Scalar value
&foo (symbol-function 'foo) Function value
%foo (symbol-plist 'foo) Associative array (:test #'eq) [2]
@foo (symbol-array 'foo) Array value [no direct CL equiv.]
FOO (symbol-stream 'foo) Filehandle [no direct CL equiv.]

Once I figured all that out, reading Perl code got a *lot* easier... ;-}


-Rob

[1] Gained from reading Sriram Srinivasan's "Advanced Perl Programming".

[2] O.k., so (SYMBOL-PLIST 'FOO) is really only a rough analogy to "%foo";
SYMBOL-HASH might be a better name. But the former can do the job,
perhaps just not as efficiently. [Also, GET uses EQ as the test, and
Perl's "%" uses something closer to EQUAL.] And let's not even mention
"aliasing" from assigning typeglobs!! [E.g., do "local *b; *b = *a;",
and now $b ==> a's scalar value and &b ==> a's function value!]

-----
Rob Warnock <rpw3(a)rpw3.org>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607