102 Larry Wall Quotes on Programming
Larry Wall quotes on programming
-
Although the Perl Slogan is There's More Than One Way to Do It, I hesitate to make 10 ways to do something. :-)
Permalink to quote #1 -
And don't tell me there isn't one bit of difference between null and space, because that's exactly how much difference there is. :-)
Permalink to quote #2 -
Besides, REAL computers have a rename() system call. :-)
Permalink to quote #3 -
I dunno, I dream in Perl sometimes...
Permalink to quote #6 -
If you want to program in C, program in C. It's a nice language. I use it occasionally... :-)
Permalink to quote #9 -
It's all magic. :-)
Permalink to quote #13 -
Perl programming is an *empirical* science!
Permalink to quote #19 -
Real programmers can write assembly code in any language. :-)
Permalink to quote #21 -
There are probably better ways to do that, but it would make the parser more complex. I do, occasionally, struggle feebly against complexity... :-)
Permalink to quote #23 -
Though I'll admit readability suffers slightly...
Permalink to quote #25 -
You want it in one line? Does it have to fit in 80 columns? :-)
Permalink to quote #27 -
Besides, it's good to force C programmers to use the toolbox occasionally. :-)
Permalink to quote #30 -
If I allowed 'next $label' then I'd also have to allow 'goto $label', and I don't think you really want that... :-)
Permalink to quote #32 -
In general, if you think something isn't in Perl, try it out, because it usually is. :-)
Permalink to quote #33 -
It's there as a sop to former Ada programmers. :-)
Permalink to quote #35 -
last|perl -pe '$_ x=/(..:..)...(.*)/&&$1ge$1&&$1lt$2' That's gonna be tough for Randal to beat... :-)
Permalink to quote #38 -
Perl itself is usually pretty good about telling you what you shouldn't do. :-)
Permalink to quote #40 -
There are many times when you want it to ignore the rest of the string just like atof() does. Oddly enough, Perl calls atof(). How convenient. :-)
Permalink to quote #42 -
> (It's sorta like sed, but not. It's sorta like awk, but not. etc.) Guilty as charged. Perl is happily ugly, and happily derivative.
Permalink to quote #51 -
...this does not mean that some of us should not want, in a rather dispassionate sort of way, to put a bullet through csh's head.
Permalink to quote #55 -
What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against?
Permalink to quote #57 -
Well, enough clowning around. Perl is, in intent, a cleaned up and summarized version of that wonderful semi-natural language known as 'Unix'.
Permalink to quote #60 -
Lisp has all the visual appeal of oatmeal with fingernail clippings mixed in.
Permalink to quote #62 -
They can always run stderr through uniq. :-)
Permalink to quote #74 -
Of course, I reserve the right to make wholly stupid changes to Perl if I think they improve the language. :-)
Permalink to quote #76 -
I think $[ is more like a coelacanth than a mastadon.
Permalink to quote #78 -
That could certainly be done, but I don't want to fall into the Forth trap, where every running Forth implementation is really a different language.
Permalink to quote #80 -
Randal can write one-liners again. Everyone is happy, and peace spreads over the whole Earth.
Permalink to quote #83 -
P.S. Perl's master plan (or what passes for one) is to take over the world like English did. Er, *as* English did...
Permalink to quote #86 -
You can prove anything by mentioning another computer language. :-)
Permalink to quote #87 -
I think you didn't get a reply because you used the terms 'correct' and 'proper', neither of which has much meaning in Perl culture. :-)
Permalink to quote #88 -
True, it returns ' ' for false, but ' ' is an even more interesting number than 0.
Permalink to quote #90 -
Any false value is gonna be fairly boring in Perl, mathematicians notwithstanding.
Permalink to quote #91 -
We didn't put in ^^ because then we'd have to keep telling people what it means, and then we'd have to keep telling them why it doesn't short circuit. :-/
Permalink to quote #92 -
Perl has a long tradition of working around compilers.
Permalink to quote #95 -
Of course, this being Perl, we could always take both approaches. :-)
Permalink to quote #100 -
A 'goto' in Perl falls into the category of hard things that should be possible, not easy things that should be easy.
Permalink to quote #112 -
Well, that's more-or-less what I was saying, though obviously addition is a little more cosmic than the bitwise operators.
Permalink to quote #114 -
The choice of approaches could be made the responsibility of the programmer.
Permalink to quote #116 -
But the possibility of abuse may be a good reason for leaving capabilities out of other computer languages, it's not a good reason for leaving capabilities out of Perl.
Permalink to quote #122 -
Magically turning people's old scalar contexts into list contexts is a recipe for several kinds of disaster.
Permalink to quote #125 -
switch (ref $@) { OverflowError => warn 'Dam needs to be drained'; DomainError => warn 'King needs to be trained'; NuclearWarError => die; }
Permalink to quote #129 -
I surely do hope that's a syntax error.
Permalink to quote #130 -
Anyway, my money is still on use strict vars . . .
Permalink to quote #131 -
Just don't make the '9' format pack/unpack numbers... :-)
Permalink to quote #137 -
Well, you can implement a Perl peek() with unpack('P',...). Once you have that, there's only security through obscurity. :-)
Permalink to quote #140 -
That gets us out of deciding how to spell Reg[eE]xp?|RE . . . Of course, then we have to decide what ref $re returns... :-)
Permalink to quote #145 -
'Course, that doesn't work when 'a' contains parentheses.
Permalink to quote #146 -
(To the extent that anyone but a Prolog programmer can understand X totally. (And to the extent that a Prolog programmer can understand 'cut'. :-))
Permalink to quote #149 -
The code also assumes that it's difficult to misspell 'a' or 'b'. :-)
Permalink to quote #155 -
Well, hey, let's just make everything into a closure, and then we'll have our general garbage collector, installed by 'use less memory'.
Permalink to quote #156 -
Boss: You forgot to assign the result of your map! Hacker: Dang, I'm always forgetting my assignations... Boss: And what's that 'goto' doing there?!? Hacker: Er, I guess my finger slipped when I was typing 'getservbyport'... Boss: Ah well, accidents will happen. Maybe we should have picked APL.
Permalink to quote #166 -
And other operators aren't so special syntactically, but weird in other ways, like 'scalar', and 'goto'.
Permalink to quote #170 -
If this were Ada, I suppose we'd just constant fold 1/0 into die 'Illegal division by zero
Permalink to quote #172 -
Almost nothing in Perl serves a single purpose.
Permalink to quote #174 -
It's hard to tune heavily tuned code. :-)
Permalink to quote #178 -
Perl will always provide the null.
Permalink to quote #179 -
Well, I think Perl should run faster than C. :-)
Permalink to quote #181 -
To Perl, or not to Perl, that is the kvetching.
Permalink to quote #182 -
I suppose you could switch grammars once you've seen 'use strict subs'. :-)
Permalink to quote #183 -
Perl should remain fast and intuitive (to the extent that it is :-)
Permalink to quote #187 -
Just put in another goto, and then it'll be readable. :-)
Permalink to quote #189 -
I'm reminded of the day my daughter came in, looked over my shoulder at some Perl 4 code, and said, 'What is that, swearing?
Permalink to quote #190 -
: I could understand principles of Perl source in 2-3 days [. . .] Gee, it took me about eleven years. :-)
Permalink to quote #193 -
There's often more than one correct thing. There's often more than one right thing. There's often more than one obvious thing.
Permalink to quote #194 -
I'd make people say 'use Fork;' if I thought I could get away with it.
Permalink to quote #197 -
Maybe we should take a clue from FTP and put in an option like 'print hash marks on every 1024 iterations'. :-)
Permalink to quote #201 -
The court finds everyone to be in contempt (including himself :-), and orders everyone sentenced to five years hard labor. (Working on Perl, of course.)
Permalink to quote #203 -
I note that the Python folks still think they like JPython. I wonder how long that will last?
Permalink to quote #204 -
Perl did not get where it is by ignoring psychological factors.
Permalink to quote #211 -
If this were Ada, we'd simply doc it as 'erroneous'.
Permalink to quote #215 -
That being said, I think we should immediately deprecate any string concatenation that combines '19' with '99'. :-)
Permalink to quote #226 -
Accidental stacks considered harmful.
Permalink to quote #232 -
And in the limiting case where the optimizer is completely broken because it's not implemented yet, we get to work around that too. Optionally...
Permalink to quote #234 -
#define NULL 0 /* silly thing is, we don't even use this */
Permalink to quote #238 -
#define SIGILL 6 /* blech */
Permalink to quote #239 -
break; /* don't do magic till later */
Permalink to quote #242 -
stab_val(stab)->str_nok = 1; /* what a wonderful hack! */
Permalink to quote #243 -
OOPS! You naughty creature! You didn't run Configure with sh! I will attempt to remedy the situation by running sh for you...
Permalink to quote #253 -
#else /* !STDSTDIO */ /* The big, slow, and stupid way */
Permalink to quote #263 -
/* This bit of chicanery makes a unary function followed by a parenthesis into a function with one argument, highest precedence. */
Permalink to quote #264 -
Be consistent.
Permalink to quote #265 -
Does the same as the system call of that name. If you don't know what it does, don't worry about it.
Permalink to quote #266 -
Even if you aren't in doubt, consider the mental welfare of the person who has to maintain the code after you, and who will probably put parens in the wrong place.
Permalink to quote #267 -
Help save the world!
Permalink to quote #268 -
If you want your program to be readable, consider supplying the argument.
Permalink to quote #269 -
Perl is designed to give you several ways to do anything, so consider picking the most readable one.
Permalink to quote #272 -
Remember though that THERE IS NO GENERAL RULE FOR CONVERTING A LIST INTO A SCALAR.
Permalink to quote #273 -
The autodecrement is not magical.
Permalink to quote #274 -
I simultaneously believe that languages are wonderful and awful. You have to hold both of those. Ugly things can be beautiful. And beautiful can get ugly very fast. You know, take Lisp. You know, it's the most beautiful language in the world. At least up until Haskell came along. (laughter) But, you know, every program in Lisp is just ugly. I don't figure how that works.
Permalink to quote #280 -
Now, I'm not the only language designer with irrationalities. You can think of some languages to go with some of these things.
Permalink to quote #281 -
If there's a particular problem that Perl is trying to solve, it's the basic fact that all programming languages suck. Sort of the concept of original sin, applied to programming languages.
Permalink to quote #283 -
There are a lotta computer languages out there doing drugs.
Permalink to quote #284 -
The three chief virtues of a programmer are: Laziness, Impatience and Hubris.
Permalink to quote #288 -
The problem with being consistent is that there are lots of ways to be consistent, and they're all inconsistent with each other.
Permalink to quote #289 -
Q. Why is this so clumsy? A. The trick is to use Perl's strengths rather than its weaknesses.
Permalink to quote #295 -
I already have too much problem with people thinking the efficiency of a perl construct is related to its length. On the other hand, I'm perfectly capable of changing my mind next week... :-)
Permalink to quote #296 -
I might be able to shoehorn a reference count in on top of the numeric value by disallowing multiple references on scalars with a numeric value, but it wouldn't be as clean. I do occasionally worry about that.
Permalink to quote #298 -
Interestingly enough, since subroutine declarations can come anywhere, you wouldn't have to put BEGIN {} at the beginning, nor END {} at the end. Interesting, no? I wonder if Henry would like it. :-)
Permalink to quote #299 -
> This made me wonder, suddenly: can telnet be written in perl? Of course it can be written in Perl. Now if you'd said nroff, that would be more challenging...
Permalink to quote #303 -
I knew I'd hate COBOL the moment I saw they'd used 'perform' instead of 'do'.
Permalink to quote #309 -
Many computer scientists have fallen into the trap of trying to define languages like George Orwell's Newspeak, in which it is impossible to think bad thoughts. What they end up doing is killing the creativity of programming.
Permalink to quote #313