Prev: Anybody mind to translate this Felleisen quote from German to English
Next: Macros and anonymous functions
From: ccc31807 on 26 Feb 2010 18:07 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 26 Feb 2010 18:55 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 26 Feb 2010 20:09 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 26 Feb 2010 20:11 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 26 Feb 2010 22:30
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 |