From: peter (Peter da Silva) Date: 15:36 on 11 Sep 2003 Subject: Perl > Yup. Of course, this is because those "two lines" use several thousand lines > of Perl modules, but that's by the by. I guess that it's on topic for the list to mention that I hate Perl. I hate the absurd syntax. Unless this do that if not something else. And the precedence rules make C's already tottery tower look simple. I hate the absurd claims that the absurd syntax is a good thing. There's more than one way to do it, but if you don't think like Larry Wall none of those ways match the way you're looking for. I hate the absurd quoting rules. Give me a reflective language and I can create the quoting rules I need, I don't need ten different variants on qw(er/ty/). Not to mention that a reflective language does a MUCH better job of giving you "more than one way to do it". I hate the absurd dependency maze I end up in every time I delve into CPAN, which usually ends up with my having to upgrade CPAN before I can build anything. I hate the way it encourages idiots who shouldn't be allowed within ten meters of anything sharper than Cobol to write things like Majordodo. And to release things in public I'd be embarassed to admit I'd written. Not that I'm suggesting that present company includes any such idiots, but damn, I hate Perl. And I'll take a couple of hundred lines of rules, much as I'd prefer to trim them down to a couple (and now I know there's an RFC to follow I don't hate this list software nearly as much as I did), over several thousand lines of such line noise.
From: Simon Cozens Date: 15:44 on 11 Sep 2003 Subject: Re: Perl Peter da Silva: > > Yup. Of course, this is because those "two lines" use several thousand lines > > of Perl modules, but that's by the by. > > I guess that it's on topic for the list to mention that I hate Perl. > Not that I'm suggesting that present company includes any such idiots, but > damn, I hate Perl. And I'll take a couple of hundred lines of rules, much > as I'd prefer to trim them down to a couple You seem to be unaware of the concept of abstraction.
From: peter (Peter da Silva) Date: 16:10 on 11 Sep 2003 Subject: Re: Perl > You seem to be unaware of the concept of abstraction. I seem to be unable to trust several thousands of lines of line noise written by people insane enough to actually like Perl.
From: Simon Cozens Date: 16:13 on 11 Sep 2003 Subject: Re: Perl Peter da Silva: > I seem to be unable to trust several thousands of lines of line noise > written by people insane enough to actually like Perl. Why stop there? Why not mistrust GCC, hateful thing that it is, (http://simon.hates-software.com/) glibc, which is some of the most insane C code I've ever seen, and the Linux syscall implementations?
From: peter (Peter da Silva) Date: 17:32 on 11 Sep 2003 Subject: Re: Perl > Peter da Silva: > > I seem to be unable to trust several thousands of lines of line noise > > written by people insane enough to actually like Perl. > Why stop there? Why not mistrust GCC, hateful thing that it is, > (http://simon.hates-software.com/) glibc, which is some of the most insane C > code I've ever seen, and the Linux syscall implementations? You're asking *me* if I trust glibc or the Linux syscall implementations? *snork*
From: Michael G Schwern Date: 22:45 on 11 Sep 2003 Subject: Re: Perl On Thu, Sep 11, 2003 at 04:13:33PM +0100, Simon Cozens wrote: > Peter da Silva: > > I seem to be unable to trust several thousands of lines of line noise > > written by people insane enough to actually like Perl. > > Why stop there? Why not mistrust GCC, hateful thing that it is, > (http://simon.hates-software.com/) glibc, which is some of the most insane C > code I've ever seen, and the Linux syscall implementations? Read "Reflections on Trusting Trust" by Ken Thompson http://www.acm.org/classics/sep95/
From: Juerd Date: 17:11 on 11 Sep 2003 Subject: Re: Perl Peter da Silva skribis 2003-09-11 10:10 (-0500): > > You seem to be unaware of the concept of abstraction. > I seem to be unable to trust several thousands of lines of line noise > written by people insane enough to actually like Perl. Have you ever read Procmail's source? 12427 lines are in my procmail-3.22/src/*. Oh, and make: *** No rule to make target `test'. Stop. At least Perl and many Perl modules have lots of useful automated tests. Juerd
From: peter (Peter da Silva) Date: 17:45 on 11 Sep 2003 Subject: Re: Perl Wrong theatre. You want the mailing lists suck thread, this is the Perl sucks thread.
From: Juerd Date: 18:02 on 11 Sep 2003 Subject: Re: Perl Peter da Silva skribis 2003-09-11 11:45 (-0500): > Wrong theatre. You want the mailing lists suck thread, this is the Perl > sucks thread. Nah. You said something about software that you do not trust, and I replied saying something about software that you apparently (I get this information from the mailing lists thread you mention) do trust, implicitly stating that I do not understand why you distrust one piece of software while trusting the other. Besides, email doesn't work with threads really, it works with replies and references. I cannot post a reply to your message in this "thread" and have it appear in the other one without hijacking one of that thread's messages. It would be very inappropriate to reply in a thread that does not have the message that I am replying. I guess having message-ids and not thread-ids makes mail software even more hatable than it already is. Juerd
From: peter (Peter da Silva) Date: 18:14 on 11 Sep 2003 Subject: Re: Perl You're using a bad metric: one line of Perl is not the equivalent of one line of C. C is barely a step above assembler, and Perl is one of the most subtle and complex scripting languages around. This usually means that you can write the equivalent of thousands of lines of C in a few dozen lines of Perl which (Perl-hater that I am) I recognise as a good thing. When you get to thousands of lines of Perl, though, you're looking at a hell of a lot of code...
From: dagbrown (Dave Brown) Date: 04:43 on 12 Sep 2003 Subject: Re: Perl In article <20030911171413.817FF41473@xxxxxxx.xx.xxxxxxx.xxx>, Peter Da Silva <peter@xxxxxxx.xxx> wrote: : You're using a bad metric: one line of Perl is not the equivalent : of one line of C. C is barely a step above assembler, and Perl is : one of the most subtle and complex scripting languages around. One of my cow-orkers is quite a well-known Python advocate. He solved one of my problems thus: Put this: class exit: def __repr__(self): import sys sys.exit() exit = exit() import __builtin__ __builtin__.quit = __builtin__.exit = exit del exit into ".../lib/python${VERSION}/site-packages/sitecustomize.py". You know what that does? That makes it so that typing "exit" at Python's interactive mode actually EXITS THE FUCKING PROGRAM instead of delivering a lecture about how it REALLY wants you to send an EOF at it instead. You tell me what the hell it does. I'm not entirely sure myself. It looks like Deep Magic to me. --Dave
From: peter (Peter da Silva) Date: 12:27 on 12 Sep 2003 Subject: Re: Perl > class exit: > def __repr__(self): > import sys > sys.exit() > exit = exit() > import __builtin__ > __builtin__.quit = __builtin__.exit = exit > del exit This seems pretty straightforward. Not that I'm going to defend Python (it's got more than its fair share of grand mal suckage), but this is not all that obscure. It sucks deeply that it's necessary, and I would have hoped the syntax would allow direct redefinition of the methods in __builtin__ rather than having to create a new class and method. What I really want is a template-based language with Smalltalk-like syntax and a decent set of string operations. And, no, Ruby isn't.
From: Nicholas Clark Date: 14:42 on 12 Sep 2003 Subject: Re: Perl On Fri, Sep 12, 2003 at 06:27:33AM -0500, Peter da Silva wrote: > What I really want is a template-based language with Smalltalk-like syntax > and a decent set of string operations. And, no, Ruby isn't. What do you hate about Ruby? I don't use it, but I rarely hear people criticise it, which makes me think that it has few faults. Nicholas Clark
From: peter (Peter da Silva) Date: 15:26 on 12 Sep 2003 Subject: Re: Perl > > What I really want is a template-based language with Smalltalk-like syntax > > and a decent set of string operations. And, no, Ruby isn't. > What do you hate about Ruby? I don't hate anything about Ruby. What I hate is the people who describe it as a mix of Perl and Smalltalk or a mix of Python and Smalltalk when it's not.
From: sabrina downard Date: 16:03 on 11 Sep 2003 Subject: Re: Perl : I hate the absurd claims that the absurd syntax is a good thing. There's : more than one way to do it, but if you don't think like Larry : Wall none of those ways match the way you're looking for. I /especially/ hate the way that the ten million ways to do it mean that you can never ever just look at someone else's code and easily see what they're doing -- again, unless you actually are Larry Wall -- because they inevitably chose a way you've never seen before and which doesn't actually make any sense at all just looking at it.
From: Chris Nandor Date: 04:07 on 12 Sep 2003 Subject: Re: Perl At 09:36 -0500 2003.09.11, Peter da Silva wrote: >I hate the absurd syntax. There's absurd syntax? How abusrd! >I hate the absurd claims that the absurd syntax is a good thing. Again, there's absurd syntax? (Note: I am speaking of perl, not perl6. :-) >There's more than one way to do it, but if you don't think like Larry >Wall none of those ways match the way you're looking for. This isn't a problem for Perl programmers. That's kinda the point: Perl fits the way we think. If it doesn't fit the way you think, I guess you shouldn't use it. >I hate the way it encourages idiots 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. --Erik Naggum But, I'd add, it is also quite rewarding to good behavior. >And to release things in public I'd be embarassed to admit I'd >written. Sounds like a personal problem. At 10:03 -0500 2003.09.11, sabrina downard wrote: >I /especially/ hate the way that the ten million ways to do it mean >that you can never ever just look at someone else's code and easily >see what they're doing -- again, unless you actually are Larry Wall >-- because they inevitably chose a way you've never seen before and >which doesn't actually make any sense at all just looking at it. It's rare I see Perl code I can't easily decipher. YMV.
From: peter (Peter da Silva) Date: 04:38 on 12 Sep 2003 Subject: Re: Perl > >There's more than one way to do it, but if you don't think like Larry > >Wall none of those ways match the way you're looking for. > This isn't a problem for Perl programmers. That's kinda the point: Perl > fits the way we think. If it doesn't fit the way you think, I guess you > shouldn't use it. I would be bloody overjoyed if I had that option, mate. I would be even more overjoyed if Perl fanatics didn't toss off handfuls of line noise as if they were valid responses to legitimate hate, and then act all bleeding surprised when they're met by unenthusiastic responses. > 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. > --Erik Naggum In other words, it's fragile and dangerous. Perl 6 looked like it was beginning to settle down towards something a little more solid, but it seems to have decided to incorporate features from Intercal to make up for it. > >And to release things in public I'd be embarassed to admit I'd > >written. > Sounds like a personal problem. You wouldn't be embarassed to admit to authorship of Majordodo? > It's rare I see Perl code I can't easily decipher. YMV. "But I wasn't a MASS murderer". It's rare I see Perl code I can't easily decipher. It's rare that I see Perl code that I don't have to decipher at all. I'm sure there's people who love all the software you hate. Well, some of us hate the software you love. Deal with it.
From: David Cantrell Date: 17:10 on 12 Sep 2003 Subject: Re: Perl Peter da Silva wrote: >>This isn't a problem for Perl programmers. That's kinda the point: Perl >>fits the way we think. If it doesn't fit the way you think, I guess you >>shouldn't use it. > I would be bloody overjoyed if I had that option, mate. Don't be silly, of course you have that option. > I would be even more overjoyed if Perl fanatics didn't toss off handfuls > of line noise as if they were valid responses to legitimate hate Amongst other things that are annoying responses to hate, such as endless discussion.
From: Chris Nandor Date: 02:49 on 13 Sep 2003 Subject: Re: Perl At 22:38 -0500 2003.09.11, Peter da Silva wrote: >I would be even more overjoyed if Perl fanatics didn't toss off handfuls >of line noise as if they were valid responses to legitimate hate, and then >act all bleeding surprised when they're met by unenthusiastic responses. Yes, I suppose Perl looks like line noise to people who don't know Perl. >> 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. >> --Erik Naggum > >In other words, it's fragile and dangerous. Yes, if by "other words" you mean "words that don't mean what the original words meant." >> >And to release things in public I'd be embarassed to admit I'd >> >written. > >> Sounds like a personal problem. > >You wouldn't be embarassed to admit to authorship of Majordodo? Not if I had written it, no. I'd admit it sucked in certain ways and I'd fix the problems or move on. >It's rare I see Perl code I can't easily decipher. It's rare that I see >Perl code that I don't have to decipher at all. From the missing-the-point dept. I was saying that I can read it just fine. >I'm sure there's people who love all the software you hate. Well, some of >us hate the software you love. Deal with it. *shrug* If you can't handle people responding to your hate, then don't hate in public.
From: peter (Peter da Silva) Date: 15:07 on 13 Sep 2003 Subject: Re: Perl > >> 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. > >> --Erik Naggum > >In other words, it's fragile and dangerous. > Yes, if by "other words" you mean "words that don't mean what the original > words meant." I'm sorry, but I can't come up with a reading of that sentence other than something like "using Perl safely requires more care, attention to detail, and knowledge of trivia than any other language or tool". I don't think that's actually true. C++, for example, probably has Perl beat in this area since it's got BOTH badly designed ad-hoc syntax AND buffer overflows. I understand the cowboy attraction of a complex language that "rewards idiotic behaviour in a way that no other language or tool has done". It's a common failing for techies to start to savor the esoteric natire of what they're working with, so you get comments like "UNIX is user-friendly, it's just picky about who it's friends are", and the whole BOFH pseudo-culture. That kind of attitude is even useful. It rewards the kind of concentration it takes to become knowledgable about a complex subject, and builds cameraderie among the initiated. BUT, it can also lead to people treating the difficulties that the uninitiated have as "personal problems" rather than something that should be reconsidered and if possible done away with. One of the GOOD things about the Perl community is that there are people who do recognise the problems, and so Perl 5 is a significant advance over Perl 4, and it looks like Perl 6 has a chance of being even better... if the rear-guard skirmishes I see now and again don't hold up the advance. This leads me to believe that eventually there will be a Perl I don't hate, and that would be a very very good thing. No doubt there will be Perl cowboys who despair over the loss of every jot and tittle of unnecessary obscurity, but most of them will end up happily using and defending the new language and complaining when they have to deal with old-school Perl 5 scripts.
From: Chris Nandor Date: 15:15 on 13 Sep 2003 Subject: Re: Perl At 09:07 -0500 2003.09.13, Peter da Silva wrote: >I'm sorry, but I can't come up with a reading of that sentence >other than something like "using Perl safely requires more care, >attention to detail, and knowledge of trivia than any other language >or tool". > >I don't think that's actually true. C++, for example, probably has >Perl beat in this area since it's got BOTH badly designed ad-hoc >syntax AND buffer overflows. Yes, and that gets more to the point. It's not that Perl requires more care etc., it is that Perl makes it easier to do bad things. It doesn't, conversely, make it harder to do good things. I think your example of C++ is a fine one, where it is hard to do *anything*, good or bad. >That kind of attitude is even useful. It rewards the kind of >concentration it takes to become knowledgable about a complex >subject, and builds cameraderie among the initiated. BUT, it can >also lead to people treating the difficulties that the uninitiated >have as "personal problems" rather than something that should be >reconsidered and if possible done away with. The problem is that you are attacking particular uses of Perl, particular styles of coding, which is not, in my experience, the norm. Perhaps in yours it is, and for that, you have my pity. >No doubt there will be Perl cowboys who despair over the loss of >every jot and tittle of unnecessary obscurity, but most of them >will end up happily using and defending the new language and >complaining when they have to deal with old-school Perl 5 scripts. Unlikely. The new language represents too much of a departure from what we currently know as Perl. I am tempted to do a hates-rant about Perl 6, but Simon Cozens is on this list, and he could offer a better one than I. :-)
From: peter (Peter da Silva) Date: 15:38 on 13 Sep 2003 Subject: Re: Perl > Yes, and that gets more to the point. It's not that Perl requires more > care etc., it is that Perl makes it easier to do bad things. OK. Now can you elaborate on that. I'm struggling with this, somewhere I'm supposed to have an epiphany and realise that it's not a problem if Perl makes it easier to do bad things "than any other language or tool". I don't feel that coming on. Particularly since the vast majority of the things that I object to in Perl do absolutely nothing to increase the basic expressive quality of the language. Perl would be just as powerful without the dual overhead- cam chrome-plated foxtails, and a lot less likely to "reward idiots". > The problem is that you are attacking particular uses of Perl, particular > styles of coding, which is not, in my experience, the norm. I suppose you can be forgiven for that impression, but if you'll have a look at the original message you'll see that was only one of the five points, and none of the others are "particular uses of Perl".
From: Chris Nandor Date: 17:05 on 13 Sep 2003 Subject: Re: Perl At 09:38 -0500 2003.09.13, Peter da Silva wrote: >Particularly since the vast majority of the things that I object to in >Perl do absolutely nothing to increase the basic expressive quality of >the language. Expressive quality is in the eye of the beholder, no? This appears to be about as fruitful as trying to convince someone that Chagall is a great artist. No thanks. >I suppose you can be forgiven for that impression, but if you'll have a look >at the original message you'll see that was only one of the five points, >and none of the others are "particular uses of Perl". It was inferred, whether you intended it or not. That's the point. You are attacking things using words like "awkward" when these things are not awkward when used well, assuming the person looking at it knows Perl. You're either looking at things you don't understand, or you are looking at poorly written code. Either way, this discussion is increasingly tiresome. Cheers,
From: peter (Peter da Silva) Date: 17:51 on 13 Sep 2003 Subject: Re: Perl > Expressive quality is in the eye of the beholder, no? This appears to be > about as fruitful as trying to convince someone that Chagall is a great > artist. No thanks. If Perl was designed as an art form like Befunge I wouldn't have any problem with it. It's all kinds of artistic, yes. > It was inferred, whether you intended it or not. That's the point. You > are attacking things using words like "awkward" when these things are not > awkward when used well, assuming the person looking at it knows Perl. I'm the mad Australian on a skateboard who throws a stack of Adventure printouts in ten different languages at you in the enhanced Berkeley adventure. I dig programming languages, learning new programming languages is one of the things I do for fun. I don't dislike Perl because I don't know it, I dislike Perl because it's a badly designed (if that word can be applied to something that's grown so organically) languages. The syntax is awkward, overcomplex, has too many obscure special cases (there's to many obvious examples to list, I'll just mention one of the obscure ones: the way scalars and collections in for loops are treated), and the result is that you have to not just "know Perl" you have to be a Perl language lawyer just to avoid wandering into a dark alley and getting figuratively mugged by some cool feature. And, again, any reflective language, even one with as simple a syntax as Lisp or Scheme, has more expressive quality. Let's say I want to express a multi-way conditional. In Perl, there's no switch, there's half a dozen alternate ways to do the same thing but none of them actually express the operation being performed. In any reflective language if there's no such construct you can create one that has EXACTLY the behaviour you need. That's "expressive quality". In Perl, well, you can put the conditional after the statement. That's a "cool feature". I hate Perl, and the more I learn about it the more I hate it.
From: Simon Cozens Date: 17:57 on 13 Sep 2003 Subject: More Perl hate Peter da Silva: > The syntax is awkward, overcomplex, has too many obscure special > cases (there's to many obvious examples to list, I'll just mention > one of the obscure ones: the way scalars and collections in for > loops are treated) People will now jump in and tell you that, no, it's all wonderfully regular and it does what you mean. To which I say: Consider: package X; sub new { bless {}, shift } sub add { my $self = shift; new X::Y (@_); } package X; sub new { bless {}, shift } package main; X->add(foo => "bar"); versus package X::Y; sub new { my $class = shift; bless { @_ }, $class; } package X; sub new { bless {}, shift } sub add { my $self = shift; new X::Y (@_); } package main; X->add(foo => "bar"); The syntax is *exactly the same*, but the effect of "new X::Y" is way different. No DWIM here. Why the hell Larry decided that being like C++, of all God-forsaken languages, was a good idea in this instance is completely beyond me, especially give how much it fucks with the language.
From: Chris Nandor Date: 15:37 on 16 Sep 2003 Subject: Re: More Perl hate At 17:57 +0100 2003.09.13, Simon Cozens wrote: >The syntax is *exactly the same*, but the effect of "new X::Y" is >way different. No DWIM here. Why the hell Larry decided that being >like C++, of all God-forsaken languages, was a good idea in this >instance is completely beyond me, especially give how much it fucks with >the language. I am missing something, surely. In the first example there is no X::Y package. What are you trying to point out here?
From: Nicholas Clark Date: 15:43 on 16 Sep 2003 Subject: Re: More Perl hate On Tue, Sep 16, 2003 at 07:37:58AM -0700, Chris Nandor wrote: > At 17:57 +0100 2003.09.13, Simon Cozens wrote: > >The syntax is *exactly the same*, but the effect of "new X::Y" is > >way different. No DWIM here. Why the hell Larry decided that being > >like C++, of all God-forsaken languages, was a good idea in this > >instance is completely beyond me, especially give how much it fucks with > >the language. > > I am missing something, surely. In the first example there is no X::Y > package. What are you trying to point out here? That indirect object syntax is worthy of hate. (I think) Nicholas Clark
From: Chris Nandor Date: 15:46 on 16 Sep 2003 Subject: Re: More Perl hate At 15:43 +0100 2003.09.16, Nicholas Clark wrote: >That indirect object syntax is worthy of hate. >(I think) Indeed. When in doubt, arrow it out!
From: Gavin Estey Date: 15:56 on 16 Sep 2003 Subject: Re: More Perl hate On Tuesday, September 16, 2003 10:43 AM, Nicholas Clark <nick@xxxx.xxx> wrote: > > That indirect object syntax is worthy of hate. > Indeed. What's even more worthy of hate is that most people only use it so they can write my $x = new Something; Gavin.
From: Chris Nandor Date: 16:02 on 16 Sep 2003 Subject: Re: More Perl hate At 10:56 -0400 2003.09.16, Gavin Estey wrote: >Indeed. What's even more worthy of hate is that most people only use it so >they can write > >my $x = new Something; There's nothing wrong with that syntax. It's entirely clear and unambigous, it is easy to read, there are no potential bugs. The problem is when you start using it with arguments like Simon did.
From: Gavin Estey Date: 17:08 on 16 Sep 2003 Subject: Re: More Perl hate On Tuesday, September 16, 2003 11:02 AM, Chris Nandor <pudge@xxxxx.xxx> wrote: >> my $x = new Something; > > There's nothing wrong with that syntax. It's entirely clear and > unambigous, it is easy to read, there are no potential bugs. I still hate it. Gavin.
From: Earle Martin Date: 06:19 on 14 Sep 2003 Subject: Re: Perl On Sat, Sep 13, 2003 at 11:51:45AM -0500, Peter da Silva wrote: > In Perl, there's no switch, there's half a dozen alternate ways to > do the same thing... use Switch; It didn't exist, so someone wrote it. This is why Perl is great, and why I hate every other language ever[0]. [0] Not a desperate attempt to get some hate into this message. Honest.
From: peter (Peter da Silva) Date: 06:31 on 14 Sep 2003 Subject: Re: Perl > > In Perl, there's no switch, there's half a dozen alternate ways to > > do the same thing... > use Switch; BUGS There are undoubtedly serious bugs lurking somewhere in code this funky :-) LIMITATION Due to the heuristic nature of Switch.pm's source parsing, the presence of regexes specified with raw ?...? delimiters may cause mysterious errors. The workaround is to use m?...? instead. Um, I think that should be spelled "don't use Switch;". Of course "mysterious errors" are something one gets used to in Perl so that's not necessarily that much of an issue. > It didn't exist, so someone wrote it. In a reflective language it doesn't take a Leonardo class Perl hacker to produce a flakey implementation of "switch", it's something a casual user of the language can do reliably and routinely. > This is why Perl is great, and why I hate every other language ever[0]. Try any Lisp-family language, or if you really get off on obscurity there's always the Forth family or APL to tune your funk up to 11.
From: Chris Nandor Date: 15:29 on 16 Sep 2003 Subject: Re: Perl At 11:51 -0500 2003.09.13, Peter da Silva wrote: >> It was inferred, whether you intended it or not. That's the point. You >> are attacking things using words like "awkward" when these things are not >> awkward when used well, assuming the person looking at it knows Perl. > >I'm the mad Australian on a skateboard who throws a stack of >Adventure printouts in ten different languages at you in the enhanced >Berkeley adventure. I dig programming languages, learning new >programming languages is one of the things I do for fun. I don't >dislike Perl because I don't know it, I dislike Perl because it's >a badly designed (if that word can be applied to something that's >grown so organically) languages. That's a cute little thing for you to say, but if you have problems reading the day-to-day Perl code that I write, no, you don't know Perl. Sorry, but it is necessarily true. >The syntax is awkward, overcomplex, has too many obscure special >cases (there's to many obvious examples to list, I'll just mention >one of the obscure ones: the way scalars and collections in for >loops are treated) What, specifically, is the problem? At 00:31 -0500 2003.09.14, Peter da Silva wrote: >Um, I think that should be spelled "don't use Switch;". Of course >"mysterious errors" are something one gets used to in Perl so that's >not necessarily that much of an issue. Riiiiight, it is a major problem that the code doesn't handle a construct almost no one ever uses ... one that, in my years of Perl coding, I cannot EVER recall seeing. C'mon, surely you can do better.
From: sabrina downard Date: 15:38 on 16 Sep 2003 Subject: Re: Perl : What, specifically, is the problem? Less discussion! More hate!
From: Greg McCarroll Date: 16:35 on 16 Sep 2003 Subject: Re: Perl * sabrina downard (sld@xxxxxxxx.xxx) wrote: > : What, specifically, is the problem? > > Less discussion! More hate! > totally agreed, i hate stupid mail clients that let people try and argue about the merits of software on lists specifically designed for the discussion of how shit it is. i hates them, do you hear? i wish that every mail client in the world, had a special built in routine that evaluated - will this irk greg in the slightest? and if the answer is yes it would engage the secret electric cattle prod peripheral in the general direction of the user's crotch. Greg p.s. and don't get me started on how much i currently hate a certain TLD DNS providers software, i hates them so much that i might just send a christmas card to SCO this year - of course inside it'll just have the words 'i hates you', but its the thought that counts.
From: mjinks Date: 17:37 on 16 Sep 2003 Subject: a little list pedantry, was Re: Perl On Tue, Sep 16, 2003 at 09:38:52AM -0500, sabrina downard wrote: > > Less discussion! More hate! Indeed. Friends: While I had no hand in founding this august forum nor in crafting the hated software which makes it go, it has always been my impression that we are here to hate software. We are not here to debate its merits ("merits"?), nor to cure its warts ("cure"?), nor to provide any sort of Useful Information at all. Hate, like love, is often blind, deaf, unreasonable, totally random in its motivations and its actions. If I were to say that I love my wife because she makes me donuts fried in lard, ties me up and shoves safety pins through my nipples, and last week she drowned that screaming monster of a child of ours, you might be justified in thinking that I make poor dietary decisions or that I am a murderous pervert, but that does not mean that you could question my love for my wife. Likewise, if I hates foo(1) for doing exactly what the manpage says it will do, well, so what? I hates it. You don't have to hates it. You certainly don't have to stands up, slaps me on the back and shout "Atta boy!" in response to me hating it. And above all, please, if you must defend that narsty quivering gangrenous mound of sludge that is foo(1), just please don't do it here. Eventually, I intend to do some vigorous Mailman hating here, in spite of the fact that I barely know the awful, cantankerous, wretched, filthy thing. I know nothing about its internals, can't program a line of Python to save my life, and have little experience in hating other mailing list software. But when I come here to hate it, I do not want somebody to pop up and tell me that they worked on Mailman, that the obvious design shortfalls that I decry were in fact well-reasoned, and that I should just learn a little more and all my hate will go away. Even if it's true, it's not what I came here for. If I want that, I'll go hate Mailman on the Mailman users' mailing list. I'm certain that I would not be the first. Piece of shit. So please, in the name of decency and charity. Less discussion. More hate. We owe it to one another, and we owe it to the software. Oh boy do we owe it to the software.
From: Jazzy Koala Date: 01:15 on 25 Feb 2004 Subject: Re: Perl > Less discussion! More hate! Well, here's my little bit of hatred ;) However I feel unfair to address a programming language here, Perl or whatever, as everything depends on software developers. Given any existing programming language, a good programmer will develop well designed good looking modular easy to understand scalable (add more stuff here) code, and a bad one will give birth to something which makes his successor who has to extend such a code wish the guy'd go back to primary school again. What's wrong in Perl? It lets one easely develope ugly code? OK, but then any speaking language is bad too as it lets one say ugly sounding distorted phrases. IMHO no tool is good or bad until you do something with it, but then it's your responsibility, not the tool's.
From: Ann Barcomb Date: 08:16 on 25 Feb 2004 Subject: Re: Perl On Wed, 25 Feb 2004, Jazzy Koala wrote: [...] > What's wrong in Perl? It lets one easely develope ugly code? OK, but > then any speaking language is bad too as it lets one say ugly sounding > distorted phrases. IMHO no tool is good or bad until you do something > with it, but then it's your responsibility, not the tool's. This wasn't very hate-filled, since you admit it isn't the fault of the language. This belongs on the 'I hate people' forum. Come on, you can do better! - Ann
From: Matt McLeod Date: 11:25 on 25 Feb 2004 Subject: Re: Perl Ann Barcomb wrote: > This wasn't very hate-filled, since you admit it isn't the fault of the > language. This belongs on the 'I hate people' forum. > > Come on, you can do better! Even if he can't, I sure as hell can. I hate Perl. I used to vaguely like it, because it felt liberating after working in COBOL and Modula-2, and it's easier to write human- readable code for it than /bin/sh once you get past really simple things. But the moment you try to anything properly, try to modularize and, you know, do perverted things like *reusing code*, it becomes a pain in the arse. One exciting feature I came across recently is that under certain circumstances you can create what seems like a module which exports a bunch of names, but if you don't start the name with an upper-case character it only exports the first. And it won't *tell* you this is what is going on (even with -w and use strict), it just whines that it can't find &main::foo() when it's supposed to be getting &thing::foo(). Don't even get me started on the flatten-all-arguments-into- a-list-of-scalars bullshit. Or the lack of any decent support in the basic language for datastructures other than lists. I'm sorry, walking through an array of arrays of hashrefs is not a substitute for a record/struct datatype, and having to fight it's alleged OO model to use a third-party "class" do what would be a simple job in anything else is completely not acceptable to me. Now I feel dirty every time I have to do anything more complicated than: open(FILE,"<somefile"); while(<FILE>){ # do some stuff to the line } close(FILE); in Perl. It makes me want to scratch my eye out. And I have this problem every time I have to write any code, because we're a Perl shop. Entirely due to inertia -- most of us recognise that it's a shitty language for real work, but it's the lingua franca of the UNIX-geek world so we're pretty much stuck with it. Hell, I hate Perl so much I'm willing to overlook the significant- whitespace problem in Python. Matt
From: Simon Cozens Date: 11:28 on 25 Feb 2004 Subject: Re: Perl Matt McLeod: > One exciting feature I came across recently is that > under certain circumstances you can create what seems like a module > which exports a bunch of names, but if you don't start the name with > an upper-case character it only exports the first. I think, but I'm not sure, you've just successfully ranted about case-smashing filesystems. Otherwise, I'm not sure what crack you're on.
From: peter (Peter da Silva) Date: 13:47 on 25 Feb 2004 Subject: Re: Perl > > One exciting feature I came across recently is that > > under certain circumstances you can create what seems like a module > > which exports a bunch of names, but if you don't start the name with > > an upper-case character it only exports the first. > I think, but I'm not sure, you've just successfully ranted about case-smashing > filesystems. Otherwise, I'm not sure what crack you're on. Why on Earth would a case-smashing filesystem have that effect on _language syntax_?
From: Juerd Date: 11:38 on 25 Feb 2004 Subject: Re: Perl Matt McLeod skribis 2004-02-25 22:25 (+1100): > in the arse. One exciting feature I came across recently is that > under certain circumstances you can create what seems like a module > which exports a bunch of names, but if you don't start the name with > an upper-case character it only exports the first. And it won't > *tell* you this is what is going on (even with -w and use strict), No, the name has to be equal to whatever you named your module. Perl is case sensitive. Your hate should be directed at your filesystem, which is not case sensitive. Perl expects a case sensitive filesystem, and does not do anything special with case insensitive ones. Mostly because it is hard to know what you're dealing with. If you named your module Foo by having "package Foo;" in it and saving it as "Foo.pm", you have to "use Foo;" to make it work. In that situation, when you "use foo;", perl loads "foo.pm" (which isn't supposed to work!) and then tries "foo->import", but only if foo->can('import'). But foo does not have a method "import". Foo has, but Foo's import is never used. Perl cannot easily determine if your filesystem is retarded. Perl cannot warn you about a missing import(), because that method is optional. Perl does not warn when the package isn't equal to the filename, because it would lose a great deal of flexibility. So either hate your stupid case insensitive filesystem. Alternatively, use a less flexible programming language. > it just whines that it can't find &main::foo() when it's supposed > to be getting &thing::foo(). It isn't. When you "use Foo;", Foo->import is called. That method, when called from main:: and made to export a symbol "bar", eventually does this: *main::bar = *Foo::bar; Your calls to "bar()" aren't magically converted to "Foo::bar()". > ... is completely not acceptable to me. Then why even use Perl? > open(FILE,"<somefile"); open my $fh, '<', 'somefile' or die "Could not open somefile: $!\n"; You're *ASKING* for troubly by using a global filehandle and not checking open's return value (unless you use Fatal, but I doubt you do). Juerd
From: Matt McLeod Date: 12:44 on 25 Feb 2004 Subject: Re: Perl Juerd wrote: > Matt McLeod skribis 2004-02-25 22:25 (+1100): > > in the arse. One exciting feature I came across recently is that > > under certain circumstances you can create what seems like a module > > which exports a bunch of names, but if you don't start the name with > > an upper-case character it only exports the first. And it won't > > *tell* you this is what is going on (even with -w and use strict), > > No, the name has to be equal to whatever you named your module. Which it was. And no, so far as I am aware the UFS implementation on Digital UNIX is not case-smashing. I had, in "foo.pm": package foo; require Exporter; @ISA = qw(Exporter); @EXPORT = qw(bar baz quux); sub bar { ... }; sub baz { ... }; sub quux { ... }; and then in "test.pl": use strict; use foo; ... bar(...); baz(...); which resulted in: Undefined subroutine &main::baz called at test.pl line 8. You'll note that it was perfectly happy with calling foo::bar. Change the package name to "Foo" and the filename to "Foo.pm" after discussing it with someone else who had a vague recollection that at some point a rule was laid down about package names, and magically it works. The most sensible advice I've heard with respect to this stuff is to simply never use the Exporter thing, and always explicitly specify where the function is coming from in every call. Which rather grates, but seems to work. Now, maybe this is all down to some wacko interaction between the particular versions of Perl and Digital UNIX involved. But it was bloody frustrating to deal with. Even if that is so, it still doesn't make up for the other irritating "features" of the language. > > ... is completely not acceptable to me. > > Then why even use Perl? Because I have no choice in the matter. It's a fine tool for doing text-parsing, not so great for other jobs, but it's usefulness in the former has made it ubiquitous and thus rather difficult to avoid. Damn, I'd almost rather be using COBOL. Almost. Matt (who once hacked COBOL for the Mormons.)
From: Juerd Date: 13:14 on 25 Feb 2004 Subject: Re: Perl Matt McLeod skribis 2004-02-25 23:44 (+1100): > I had, in "foo.pm": > package foo; require Exporter; @ISA = qw(Exporter); @EXPORT = qw(bar > baz quux); sub bar { ... }; sub baz { ... }; sub quux { ... }; > and then in "test.pl": > use strict; use foo; ... bar(...); baz(...); > which resulted in: > Undefined subroutine &main::baz called at test.pl line 8. juerd@ouranos:~/tmp/5$ echo 'package foo; require Exporter; @ISA = qw(Exporter); @EXPORT = qw(bar baz quux); sub bar { 1 } sub baz { 2 } sub quux { 3 }' > foo.pm juerd@ouranos:~/tmp/5$ echo 'use strict; use foo; print bar(), baz(), quux()' > test.pl juerd@ouranos:~/tmp/5$ perl -l test.pl 123 Either your perl is severely broken, you're not telling the truth or you're on crack. In any case, I am sure it is not Perl that you hate for this problem. > Now, maybe this is all down to some wacko interaction between > the particular versions of Perl and Digital UNIX involved. But That would mean that version of Perl is broken. I'd like to learn the versions of the platform and perl in question. Juerd
From: peter (Peter da Silva) Date: 13:52 on 25 Feb 2004 Subject: Re: Perl Every time someone explains why Perl does something weird I learn yet another reason to hate it.
From: Matt McLeod Date: 01:20 on 26 Feb 2004 Subject: Re: Perl Peter da Silva wrote: > Every time someone explains why Perl does something weird I learn yet > another reason to hate it. Haven't you heard? Perl is perfect. No version has any flaw or bug, nor has any weird quirks. And anyone who says otherwise is either taking hallucinogens or is a liar. Matt
From: Simon Cozens Date: 10:32 on 26 Feb 2004 Subject: Re: Perl Matt McLeod: > Haven't you heard? Perl is perfect. No version has any flaw or > bug, nor has any weird quirks. And anyone who says otherwise is > either taking hallucinogens or is a liar. Don't be silly. Sometimes incompetence is an adequate explanation.
From: peter (Peter da Silva) Date: 13:45 on 25 Feb 2004 Subject: Re: Perl > Hell, I hate Perl so much I'm willing to overlook the significant- > whitespace problem in Python. Steady on, man! There may be youngsters about! Here, have a sip of this... what? Oh, it's OK, just a little distilled Forth, quite harmless...
From: Jazzy Koala Date: 12:11 on 25 Feb 2004 Subject: Re: Perl >>What's wrong in Perl? It lets one easely develope ugly code? OK, but [...] > This wasn't very hate-filled Hopefully saying 'I hate all languages' will do the trick ;) Perl too, as for about 2 years I worked as a Perl developer. Reason: once you have to fix/extend ugly software written by someone else, you hate both the moron and the language which is not strong enough to resist such a rape.
From: peter (Peter da Silva) Date: 13:54 on 25 Feb 2004 Subject: Re: Perl Waving its arse in the air screaming "there's more than one way to do me" is not something I would associate with the word "resist".
From: Simon Cozens Date: 14:01 on 25 Feb 2004 Subject: Re: Perl Peter da Silva: > Waving its arse in the air screaming "there's more than one way to do me" > is not something I would associate with the word "resist". Well, I'm sure there are languages which are "strong enough to resist" people writing bad code in them. I'd really not want to work with any of them, though.
From: peter (Peter da Silva) Date: 14:14 on 25 Feb 2004 Subject: Re: Perl I don't need a language that resists abuse, but this one actively solicits it. It'll grab your mouse by the ball and plead with you to do something wicked to terrify the next person to dash with eyes averted past your code. C programmers look on Duff's Device as a piece of awe-inspiring perversion, Perl hackers toss off logic bombs that make it look straightforward without even noticing.
From: Jazzy Koala Date: 14:39 on 25 Feb 2004 Subject: Re: Perl > Well, I'm sure there are languages which are "strong enough to resist" people > writing bad code in them. It'd be a decent consolation to know at least one of them, as I hate all languages because it takes so much time and effort to keep the code 'in good shape'. It's like using a kitchen to arrange plates in the cupboard, to wash frying pans, to arrange bottles by size, but never to cook anything. > I'd really not want to work with any of them, though. Why so? Imagine automatic checks for 1-letter variable names, or missing method comments... Those routine things we have to do manually anyway.
From: peter (Peter da Silva) Date: 16:28 on 25 Feb 2004 Subject: Re: Perl > > I'd really not want to work with any of them, though. > Why so? Imagine automatic checks for 1-letter variable names, or missing > method comments... Those routine things we have to do manually anyway. InterLISP-D did that. It automatically corrected typos as well, it was called the "DWIM" feature -- Do What I Mean. The problem was that it was very good at dealing with the things Teitelman left out or typoed, but if you weren't Teitelman... Quaxity quuxity, Teitelman's InterLISP Has a DWIM feature that's Really a screw; MacLISP has evident Superiority, Letting its customer Mean what he do. -- The Great QUUX, 1976
From: Chris Ball Date: 10:53 on 25 Feb 2004 Subject: Re: Perl >> On Wed, 25 Feb 2004, Jazzy Koala <jazzy_koala@xxxxx.xxx> said: > What's wrong in Perl? It lets one easely develope ugly code? OK, > but then any speaking language is bad too as it lets one say ugly > sounding distorted phrases. Yup. I'm reminded of pudge's response from the "Some people, when confronted with a problem, think ``I know, I'll use regular expressions.'' Now they have two problems." comp.emacs.xemacs thread: "A good language allows people to say "pshaw" and "ain't" and "Barbara Streisand", no matter how unpleasant the words may sound. It allows people to use "bad" to mean "good" no matter how obfuscated the meaning. In fact, it allows meanings to change and evolve. It is the responsibility of the teachers and users of the language to act responsibly." -- Chris Nandor, <http://groups.google.com/groups?&selm=pudge-ya02408000R0209971717090001%40news.idt.net> - Chris.
From: peter (Peter da Silva) Date: 13:42 on 25 Feb 2004 Subject: Re: Perl > "A good language allows people to say "pshaw" and "ain't" and > "Barbara Streisand", no matter how unpleasant the words may sound. Alas, Perl only allows you to say "pshaw" and "ain't" and "Barbara Streisand" because they've been designed into the language... and it doesn't let you say "strooth" or "cobber" or "gruntbugly" because the Academie Perlais hasn't thought of those. The teachers and users of the language have little or no hand in its evolution because it's guided from afar like French, rather than being allowed to grow like English. It reminds me of Terry Pratchet's Guild of Joculators, with its hundred approved puns, "see, what a flexible language, Perl 6 allows you to say 'marry, nuncle' as well as 'forsooth'"...
From: Darrell Fuhriman Date: 16:33 on 25 Feb 2004 Subject: Re: Perl > it doesn't let you say "strooth" or "cobber" or "gruntbugly" because > the Academie Perlais hasn't thought of those. The teachers and users sub gruntbugly { print "Strooth!\n" } What am I missing? Darrell
From: peter (Peter da Silva) Date: 16:42 on 25 Feb 2004 Subject: Re: Perl > What am I missing? Metaphor, one of those features of English poorly parodied in Perl.
From: Piers Cawley Date: 18:30 on 28 Feb 2004 Subject: Re: Perl peter@xxxxxxx.xxx (Peter da Silva) writes: >> "A good language allows people to say "pshaw" and "ain't" and >> "Barbara Streisand", no matter how unpleasant the words may sound. > > Alas, Perl only allows you to say "pshaw" and "ain't" and "Barbara > Streisand" because they've been designed into the language... and > it doesn't let you say "strooth" or "cobber" or "gruntbugly" because > the Academie Perlais hasn't thought of those. The teachers and users > of the language have little or no hand in its evolution because it's > guided from afar like French, rather than being allowed to grow like > English. > > It reminds me of Terry Pratchet's Guild of Joculators, with its hundred > approved puns, "see, what a flexible language, Perl 6 allows you to > say 'marry, nuncle' as well as 'forsooth'"... Hmmm... the design of Perl 6 seems to imply that it's going to be rather more flexible than that; the macro stuff seems to imply that if you can write parser rules for it, it can go in. In theory you can completely replace the Perl 6 parser for a module or two in favour of whatever you prefer (but it's probably easier to target Parrot directly in those cases).
From: peter (Peter da Silva) Date: 13:30 on 25 Feb 2004 Subject: Re: Perl > What's wrong in Perl? It lets one easely develope ugly code? It encourages one to develop ugly code, and makes it almost impossible to develop anything else. I have yet to see any Perl code that I would consider elegant or clever, let alone straightforward and maintainable. I would rather maintain Fortran that had been mechanically translated from COBOL by an undergrad's Visual Basic program than any of the gems of Perl I've ever found littering the Internet. Larry Wall designed a language that has the illusion of the rambling accidental incongruities of English, without any of the charm and flexibility of that mongrel language. It's complex, convoluted, and superficially casual, but when you come right down to it there isn't really "more than one way to do it", there's simply many ways to write the one true way. There are languages that really do have the flexibility and expressiveness claimed for Perl, but they do so not because of a baroque syntax but because they put syntax in the hand of the programmer rather than guiding his hand from afar. Lisp, Forth, Smalltalk, APL, and the many languages derived from them. Languages you can weird, where you can say "There's glory for you" without finding that the Academie Francais has changed the syntax for "glory" in the next edition and all your clever little puns have become one with the snows of yesteryear. Except that you can't write "yesteryear" because Larry Wall didn't think of making that one of his rigidly constrained areas of doubt and uncertainty. Perl is like a Victorian grammarian wandering into a room where Edward Lear and Duke Ellington are having a grand old time combining "The Miller's Tale" and "Jabberwocky" with impromptu jazz, and declaring that he's had the really ripping idea of putting the "if" at the end of the sentence... quite unaware that the ensuing uproar is laughing-at, not laughing-with. Oh, if only Larry Wall were Finnish, so he would have been inspired by a language that had actual syntax. He might then have understood where syntax was a foundation and where it was a crutch. Instead he treated it as a plaything and ensnared every programmer following in a cage as complex as a sonnet or limerick... producing one digital McGonagall after another who manages to cram blank verse into the form of a clerihew and imagines this to be liberating.
From: Jazzy Koala Date: 13:52 on 25 Feb 2004 Subject: Re: Perl > Oh, if only Larry Wall were Finnish, so he would have been inspired > by a language that had actual syntax. Finnish language has syntax?? Sorry for offtopic, but as a Finnish speaking person I have a word to say. Languages derived from Latin do have syntax, while Finnish has more exceptions than rules. Actually 'there's more than one way to say it' could be the motto here ;) This gives Finnish high charm in terms of looking vivid, but no foreigner can ever speak correctly even after 10 years of studying it. Moreover, Finns themselves sometimes argue about which form this or that word should be put in ;)
From: peter (Peter da Silva) Date: 16:15 on 25 Feb 2004 Subject: Re: Perl I've had Finns tell me that Finnish is a far superior and more regular language than English. Of course that doesn't actually contradict you, now that I think of it: > Moreover, Finns themselves sometimes argue about which form this or that > word should be put in ;) That definitely implies a more regular syntax than English.
From: Darrell Fuhriman Date: 16:39 on 25 Feb 2004 Subject: Re: Perl > speaking person I have a word to say. Languages derived from Latin do > have syntax, while Finnish has more exceptions than rules. Actually > 'there's more than one way to say it' could be the motto here ;) Which comes back to "all languages suck". I've studied German, grew up speaking English, and had a smattering of Japanese and Spanish, plus a fair bit of linguistic geekery studying Syntax and Morphology, which allows me state, with at least as much authority as I can on most anything else: They all suck. They just suck differently. > Moreover, Finns themselves sometimes argue about which form this or that > word should be put in ;) That happens everywhere, checkout alt.usage.english or de.etc.sprache.deutsch for example. Darrell
From: peter (Peter da Silva) Date: 16:33 on 16 Sep 2003 Subject: Re: Perl > That's a cute little thing for you to say, but if you have problems reading > the day-to-day Perl code that I write, no, you don't know Perl. You seem to be taking this way too bloody personally, because I'm trying to figure out where I said I had problems reading your code. So far as I know I haven't seen your code. Not to mention the fact that you already said you were gonna quit defending this software I hate and get back (hopefully) to writing about software you hate. But, whatever, for the sake of discussion I'll concede the point, it could be that I still don't "know Perl". Given the amount of time I've spent on it and how much I enjoy hacking languages, if it's that hard to learn that's a hell of an indictment of the language. To illustrate that... > What, specifically, is the problem? Foreach, actually. In foreach, but not in any other context, if you change the temporary variable containing an element of an array you actually change the array. I understand why it's done that way, it's useful. Every single special case in Perl is there because it was a useful exception. The problem is that any time[1] someone came up with a nifty idea for a useful exception, it ended up part of the language. The result is that it's as hard to learn all the exceptions in Perl as it is to learn all the exceptions in English. I realise that this was also deliberate. It's too bad Larry Wall wasn't Finnish or Icelandic, so his idea of a language would be better suited to programming. Because the kind of language you need to communicate to an intelligence is quite different from the kind of language you need to communicate to an automaton, and English is kind of the Poster Boy of why exactly that's the case. In English, it doesn't prevent communication if the rules are irregular. If I say "viri" or "virus" you understand what I mean. If you don't, you can ask me. You don't freak out if I say "verbing weirds language" or "you from context that can glork", and you hardly slow down for "You can eevn siwcth ltetrs ardoun and teh minneag siltl coems trohugh". In Perl if you do the equivalent, the literal minded compiler will happily go off and do the wrong thing. And if a construction in the code is unclear, the reader can't ask the file "do you mean this or that", he has to go to the documentation to look it up. That's like trying to carry on a conversation with a dictionary in one hand and a grammar guide in another (or in the case of Perl, a dozen pamphlets that never quite have everything you need in one volume). Now you go through a phase like that in learning any new programming language. But compared to learning a human language, it's relatively short. You can leave the language behind and start learning the toolkits or libraries. With Perl, instead of having a library to do a task, that task half the time[1] ends up extending some undefined case in the syntax of the language in new and exciting ways. So you have to deal with all the complexity, all the time, because you never know when you're going to make a horrible pun and the compiler will laugh hysterically and delete all your files. I understand why it does that. It makes it linguistically rich and interesting. Like English. The problem is, English is a completely insane thing to model a programming language on. Where we have to write "programs" in English, we constrict and regularize the language, tighten it until it creaks, and don't let people use MAY and SHOULD and MUST in poetic ways. We don't say "the other guy" any more, we say "the party of the third part". Legal papers and standards documents are NOT written in the same linguistically rich language as poetry, because English is a BAD LANGUAGE for writing things that have to be unambiguous. Well, you know, a computer program is one of those things that HAS TO BE UNAMBIGUOUS. This is why Perl is getting less exotic and more like other languages as time gies on. Perl 5 is more regular than Perl 4. Perl 6 promises to be more regular than Perl 5. And that's a GOOD THING. Because the original design philosophy of Perl was fundamentally wrong, and it'll only take another five or ten versions for it to get washed away without Perl Zealots losing so much face they refuse to go along with the changes. > Riiiiight, it is a major problem that the code doesn't handle a > construct almost no one ever uses ... I think you have cause and effect backwards here. [1] Yes, I know this is an exaggeration. This is hates-software.com, not fluffy-bunnies.org.
From: Chris Nandor Date: 16:55 on 16 Sep 2003 Subject: Re: Perl At 10:33 -0500 2003.09.16, Peter da Silva wrote: >> That's a cute little thing for you to say, but if you have problems reading >> the day-to-day Perl code that I write, no, you don't know Perl. > >You seem to be taking this way too bloody personally, because I'm >trying to figure out where I said I had problems reading your code. I'm not; I keep saying that well-written Perl code is not difficult. You keep saying Perl is inherently difficult. I am sorry you are not able to understand. >> What, specifically, is the problem? > >Foreach, actually. In foreach, but not in any other context, if >you change the temporary variable containing an element of an array >you actually change the array. Yes, this is well-documented, and used by just about everyone. There's nothing obscure or overcomplex about it. Awkward is, again, in the eye of the beholder. >In English, it doesn't prevent communication if the rules are >irregular. If I say "viri" or "virus" you understand what I mean. >If you don't, you can ask me. You don't freak out if I say "verbing >weirds language" or "you from context that can glork", and you >hardly slow down for "You can eevn siwcth ltetrs ardoun and teh >minneag siltl coems trohugh". No, most of those cause significant problems for me. Sorry to mess up your point. :) "verbing weirds language" does not cause problems for me only because I have seen it before, and because it is a joke. >I understand why it does that. It makes it linguistically rich and >interesting. Like English. > >The problem is, English is a completely insane thing to model a >programming language on. Your argument boils down to "I don't like working this way," but you state your argument as "Perl was designed poorly." That's my only real problem with what you are saying: it's dishonest. >Well, you know, a computer program is one of those things that HAS >TO BE UNAMBIGUOUS. And, you know, my Perl code *is* unambiguous, as unambiguous as any other language. Perl gives you rope, and the good programmer -- in a significant program -- only uses it when necessary. >> Riiiiight, it is a major problem that the code doesn't handle a >> construct almost no one ever uses ... > >I think you have cause and effect backwards here. No, I mean almost no one ever uses ?...? regexes in general, not just in Switch code. I can't recall ever seeing it except in examples. So that Switch does not support this construct is almost entirely insignificant, except as a curiosity.
From: peter (Peter da Silva) Date: 19:03 on 16 Sep 2003 Subject: Re: Perl > I'm not; I keep saying that well-written Perl code is not difficult. Oh fiddlesticks. What you keep saying is that if you can't read well-written Perl code you don't know Perl. What I keep saying is that it's clearly too bloody hard to "know Perl" if that's the case. What you keep saying is that Perl's practically perfect for you. That's great, mate, but what's that got to do with this joint? To be precise: >>> That's kinda the point: Perl fits the way we think. If it >>> doesn't fit the way you think, I guess you shouldn't use it. This site is chockablock full of people who find themselves forced to use software they hate. Why should Perl get a free ride? > >Foreach, actually. In foreach, but not in any other context, if > >you change the temporary variable containing an element of an array > >you actually change the array. > Yes, this is well-documented, and used by just about everyone. So are the spelling rules for "ie" versus "ei". > >In English, it doesn't prevent communication if the rules are > >irregular. If I say "viri" or "virus" you understand what I mean. > >If you don't, you can ask me. You don't freak out if I say "verbing > >weirds language" or "you from context that can glork", and you > >hardly slow down for "You can eevn siwcth ltetrs ardoun and teh > >minneag siltl coems trohugh". > No, most of those cause significant problems for me. Obviously you don't "know English". > >The problem is, English is a completely insane thing to model a > >programming language on. > Your argument boils down to "I don't like working this way," but you state > your argument as "Perl was designed poorly." That's my only real problem > with what you are saying: it's dishonest. This is "hates-software.com", and one of the bits of software I hate is Perl. Everything I'm writing is predicated on that. So it's not bloody "dishonest", it's a bloody "opinion". It's not just my opinion, by the way, that Perl was not so much "designed" as "left to grow": that's pretty well documented. What's my opinion is that this is a Bad Thing, because it leads to unnecessary complexity and ambiguity. So far you've argued that I don't know it well enough, that you write clean code that I should have no problem with, and that lots of people use the well documented exceptions that I object to. That's bloody great, mate, honest, you're happy with Perl, have a great time with it. But if you want to actually explain why I'm WRONG for hating Perl because it's an ad-hoc pile of poorly integrated special cases, then tell me why that's a good thing, or tell me why it's not an ad-hoc etcetera after all. Last time someone did the latter they ended up telling me about a whole new set of obscure special cases I hadn't known about [1], so I think you're better off with the "it's a good thing that it's a mess" argument. There you only need to explain why the "rich syntax" is an advantage when the best examples of Perl code that I've found or that have been demonstrated to me strenuously avoid using the "rich syntax" in the same way that legal jargon restricts itself to a well-defined subset of English... and thus the author's freedom of expression would be in no wise diminished if the syntax was less rich. "Perl gives you rope". Joy. Lots of languages do. The good ones give you rope when you ask for it. Perl's a bloody rope pusher, mate. It hangs around playgrounds with coils of sisal and hemp under its trenchcoat and gives away free samples to kiddies. "Nobody uses ?...? regexes in general". You're really not helping me hate Perl any less, mate. Not only does it have screwed up syntax because someone needed it to do something useful, it's got screwed up syntax that nobody uses. [1] Not to mention that that's NOT the only problem with Switch. AND you're still missing the whole point of why any reflective language does a better job of encouraging expressive programming than Perl. Which is no reason for you not to like Perl, I hasten to add before you go ballistic again, but it shoots down the whole "expressive quality" argument as far as I'm concerned. [1] Oh look, there's one now.
From: Chris Nandor Date: 19:38 on 16 Sep 2003 Subject: Re: Perl At 13:03 -0500 2003.09.16, Peter da Silva wrote: >> I'm not; I keep saying that well-written Perl code is not difficult. > >Oh fiddlesticks. What you keep saying is that if you can't read >well-written Perl code you don't know Perl. What I keep saying is >that it's clearly too bloody hard to "know Perl" if that's the >case. I wouldn't put yourself down like that. >> Yes, this is well-documented, and used by just about everyone. > >So are the spelling rules for "ie" versus "ei". ... which I have no problem with. >> No, most of those cause significant problems for me. > >Obviously you don't "know English". You give examples of incorrect English as evidence I don't know English. Hmmmm. Try again, maybe? >Not to mention that that's NOT the only problem with Switch. It's the only one YOU mentioned, as I noted before.
From: peter (Peter da Silva) Date: 20:18 on 16 Sep 2003 Subject: Re: Perl > >Not to mention that that's NOT the only problem with Switch. > It's the only one YOU mentioned, as I noted before. Not only did I quote two separate problems from the documentation, but I also pointed out that this is just a symptom, and explained why it's relevant at some length. But, whatever. It's Perl I'm all about hating here, not Perl users, that's something for, oh, hates-users.com or the Monastery.
From: Chris Nandor Date: 20:25 on 16 Sep 2003 Subject: Re: Perl At 14:18 -0500 2003.09.16, Peter da Silva wrote: >Not only did I quote two separate problems from the documentation, No, you quoted one. Unless you honestly think "there may be bugs in this software" -- something true of all software -- is a "problem." >but I also pointed out that this is just a symptom, and explained >why it's relevant at some length. Right. Because you don't know Perl.
From: David Champion Date: 20:58 on 16 Sep 2003 Subject: Re: Perl * On 2003.09.16, in <p0600200cbb8d13e8ed38@xxx.x.x.xxxx>, * "Chris Nandor" <pudge@xxxxx.xxx> wrote: > > Right. Because you don't know Perl. What if he doesn't? He's still allowed to hate it, and on a list for software catharsis, no less. Holy Mother Jehosaphat, for the love of the Pope and all that is Catholic, put it away, please. It's clear to us now who has the larger wrist splint. I hate... hmm, just to pull one out my back door: mail software that doesn't properly maintain references: headers so that I can *PLONK* within specific threads, without writing my own external killfiler. Really, what would it take to just copy References: and add a Message-ID? In-Reply-To: is cute, but pretty bloody useless for tracking a thread of which parts might me missing, such as would appear in, say, my inbox.
From: Yoz Grahame Date: 17:01 on 16 Sep 2003 Subject: Re: Perl On Tue, Sep 16, 2003 at 10:33:34AM -0500, Peter da Silva wrote: > I understand why it's done that way, it's useful. Every single > special case in Perl is there because it was a useful exception. > The problem is that any time[1] someone came up with a nifty idea > for a useful exception, it ended up part of the language. The result > is that it's as hard to learn all the exceptions in Perl as it is > to learn all the exceptions in English. I completely identify with this, despite being a big Perl fan, and it's probably my biggest Perl-related Hate. You know those stories about boats sailing quite happily up to some island and the islanders then pointing out just how astonishingly lucky the boat was not to hit any of the bazillion rocks just below the surface which the boat's pilot ignored? (No, neither do I, but I'm sure there have been some) Well, I happily bought O'Reilly's Perl Cookbook and as I read it I just got scared shitless by all the gotchas. So many situations where if you do something a slightly different way that *looks* near-identical it actually does a completely different thing. One of Perl's nicest qualities is the flamboyance and fluidity of the code - something that counts for very little in a software engineering sense but accounts for the devotion that Perl gets, because it sometimes feels more like composing than programming. There's an emotional response and a resulting emotional attachment. The problem is that due to Perl's radical inconsistency and those rocks that I now know are just under the surface (though I can't remember where they are, because there are loads and I have a terrible memory for inconsistencies and I've lost my copy of the Cookbook anyway), the fear of those rocks prevents me from being as fluid with my code. And this is a Good Thing in software engineering terms, but counts against Perl, in the same way that the flexibility and easy-going-attitude of Perl's compiler, while often welcome, is also sometimes a pain in the arse when you want to be *SURE* that your code is Doing The Right Thing. In those cases, compiler errors are your friend. Perl 6 is fixing lots of this, it's true. One of the biggest giveaways that damns Larry's earlier choices is the removal of context-sensitive variable operators or whatever they're called - if you want the one major reason why people choose that horrific abortion PHP over Perl, it's that. (Oh, and it being easy to install and available everywhere and always identical) -- Yoz
From: Juerd Date: 17:24 on 11 Sep 2003 Subject: Re: Perl Peter da Silva skribis 2003-09-11 9:36 (-0500): > > Yup. Of course, this is because those "two lines" use several thousand lines > I hate the absurd syntax. Unless this do that if not something else. > And the precedence rules make C's already tottery tower look simple. The precedence rules are equal to C's, for all operators that the languages share. But Perl has more operators, so there are a few more levels of precedence. Fortunately, they are made to DWYM in most situations and you can always use parentheses when in doubt. Should you need to know the precedence rules, a quick look at "perldoc perlop" shows all you need. > I hate the absurd quoting rules. Give me a reflective language and I > can create the quoting rules I need, I don't need ten different > variants on qw(er/ty/). You may use source filters (the extremely powerful equivalent of #define) to create any syntax you like. If you do not need ten different variants, you can choose to use only one. > I hate the absurd dependency maze I end up in every time I delve into > CPAN, which usually ends up with my having to upgrade CPAN before I > can build anything. This is a problem with software in general. Not just CPAN. Note that if you keep your software up to date, you do not need to go through a lot of trouble when you need something. > I hate the way it encourages idiots who shouldn't be allowed within > ten meters of anything sharper than Cobol to write things like > Majordodo. And to release things in public I'd be embarassed to admit > I'd written. Please tell us where the documentation says something like "You should write things like Majordomo". This mistake needs to be corrected. Please note that making something possible is not the same as encouraging something. It is possible to ignore red traffic lights, it is possible to run over pedestrians and it is even possible to kill yourself using pain killers. But you're not encouraged to do so. Perl is the perfect language to shoot yourself in the foot with. If you cannot handle the freedom, then stay inside. > And I'll take a couple of hundred lines of rules, much as I'd prefer > to trim them down to a couple (and now I know there's an RFC to follow > I don't hate this list software nearly as much as I did), over several > thousand lines of such line noise. I am glad you like editing your .procmailrc and .ezfilter files now. It is only one more line. And another. And another. :)) Juerd
From: peter (Peter da Silva) Date: 18:03 on 11 Sep 2003 Subject: Re: Perl > The precedence rules are equal to C's, for all operators that the > languages share. But Perl has more operators, so there are a few more > levels of precedence. I assume that this is some kind of reverse-psychology thing. The fact that Perl has more operators is, of course, another reason to hate Perl. > Fortunately, they are made to DWYM in most situations /me laughs hysterically > You may use source filters (the extremely powerful equivalent of #define) > to create any syntax you like. Yeh, and I can probably modify YACC to generate Perl instead of C, that doesn't mean that Perl or C is reflective. > If you do not need ten different variants, you can choose to use only > one. That's great if you never have to work on anyone else's code. > > I hate the absurd dependency maze I end up in every time I delve into > > CPAN, which usually ends up with my having to upgrade CPAN before I > > can build anything. > This is a problem with software in general. Not just CPAN. It's a problem for software that has a lot of dependencies *and* where the build tool itself is unstable. I try to avoid such software. > Note that if you keep your software up to date, you do not need to go > through a lot of trouble when you need something. I'm in a business where regression due to routine updates has killed people. You get in the habit of restricting them to times you can do regression tests, even when it "doesn't matter".
Generated at 10:27 on 16 Apr 2008 by mariachi