Re: Invalid Operating System

[prev] [thread] [next] [lurker] [Date index for 2006/12/17]

From: A. Pagaltzis
Subject: Re: Invalid Operating System
Date: 01:44 on 17 Dec 2006
* Michael Leuchtenburg <michael@xxxxxxxxx.xxx> [2006-12-16 19:05]:
> What is this, loves-perl? Release your anger, your hate!

Yes, well. In another subthread, Abigail accused me of defending
Perl when all I did was ask Peter for clarification about his
gripes; *this* part of the thread is what a pile-on in defence of
Perl looks like.

> I hate Perl.

I don't, on the whole (if that wasn't clear), but I do have my
long list of gripes.

> I hate the fucking useless "continue" blocks. If I want to
> execute something just before the conditional is evaluated,
> then I'll *put it at the end of the loop*.

Except if you need it to always be executed, even if you abort an
iteration with `continue`. Then "d'uh put it at the end of the
block" won't work and you have to use a `continue` block.

Basically, `continue` is there to enable you to do in Perl what
you can't do in C: write an exact equivalent of a `for(;;)` loop
using `while`.

I've never seen `continue` in any Perl code outside of the
examples in the Perl documentation.

> I hate that I have to use a hack if I want proper multiple
> inheritance and object composition.

Yeah, doing sane OO in Perl is a big mess that keeps almost
driving me to Ruby. The mere fact that there are dozens of
modules on CPAN to abstract away various pieces of OO plumbing
is plain evidence of the brokenness.

I always find it funny when fellow Perl programmers deny this.

I agree with them that you *can* do proper OO in Perl -- but it
comes down to patterns; in short, the language is inadequate. And
sure, Perl's barely extant OO system *does* allow some things
that you just can't do in other languages; but the price for that
is waaaaaay too high. I'd rather it be easier to get work done.

> I hate that, on Windows, Perl requires a backup extension to
> -i, but on *nix it does not.

Perl on Windows is broken in too many ways to talk about.

> I hate that CPAN - a requirement for any serious Perl
> development - always wants to upgrade my Perl to the latest
> version when I just want to install a fucking module.

That is only a certain broken version of CPAN.pm, released a few
years ago; a fixed version was released soon after. Upgrade your
CPAN.pm and it will stop pestering you.

> I hate use English makes my programs run slower.

No longer, if you ask it not to; although I wish they hadn't
fixed that because the mere concept of English.pm is an
abomination.

> I hate that Perl's memory manager can't handle circular
> references.

Yeah, but the flipside is that it can do timely destruction and
you can control when it happens. Real garbage collectors in the
wild today are pretty capricious in both respects. Witness the
JVM GC hate.

So I'm not sure whether I prefer Lucifer or Beelzebub.

(Refcounting does have it share of hate at the VM implementation
level, of course... But that's not something you'd be affected by
as a language user.)

(To go on a tangent here: I really hate the popular misconception
that a GC absolves you from worrying about memory. It makes code
more robust by converting minor mistakes from segfaults to small
mem leaks, is what it does, and that's all it does. It does *NOT*
mean you can forget about managing your memory.)

> I hate the total lack of a real type system.

Of all the things you mention, this is the only one I can neither
agree with nor relate to in any way.

I tend to hate hate HATE the *presence* of a type system (tho
I hear good things about type inferencing; no experience with
that). The type systems I've worked with only ever caught the
least interesting sorts of problem but forced huge amounts of
monkey code.

> I could go on, getting in to the sorts of hate that Perl
> enables - s;foo;bar; anyone?

That's annoying, but do you find the following pretty?

    s/^file:\/\/\/?//

I guess the set of delimiters could have excluded things like
semicolons, though; granted.

-- 
*AUTOLOAD=*_;sub _{s/(.*)::(.*)/print$2,(",$\/"," ")[defined wantarray]/e;$1}
&Just->another->Perl->hacker;
#Aristotle
There's stuff above here

Generated at 22:02 on 27 Dec 2006 by mariachi 0.52