Skip to content
quotesby

102 Larry Wall Quotes on Programming

Larry Wall quotes on programming

  1. 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
  2. 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
  3. Besides, REAL computers have a rename() system call. :-)

    Permalink to quote #3
  4. I dunno, I dream in Perl sometimes...

    Permalink to quote #6
  5. If you want to program in C, program in C. It's a nice language. I use it occasionally... :-)

    Permalink to quote #9
  6. It's all magic. :-)

    Permalink to quote #13
  7. Perl programming is an *empirical* science!

    Permalink to quote #19
  8. Real programmers can write assembly code in any language. :-)

    Permalink to quote #21
  9. 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
  10. Though I'll admit readability suffers slightly...

    Permalink to quote #25
  11. You want it in one line? Does it have to fit in 80 columns? :-)

    Permalink to quote #27
  12. Besides, it's good to force C programmers to use the toolbox occasionally. :-)

    Permalink to quote #30
  13. 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
  14. In general, if you think something isn't in Perl, try it out, because it usually is. :-)

    Permalink to quote #33
  15. It's there as a sop to former Ada programmers. :-)

    Permalink to quote #35
  16. last|perl -pe '$_ x=/(..:..)...(.*)/&&$1ge$1&&$1lt$2' That's gonna be tough for Randal to beat... :-)

    Permalink to quote #38
  17. Perl itself is usually pretty good about telling you what you shouldn't do. :-)

    Permalink to quote #40
  18. 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
  19. > (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
  20. ...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
  21. 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
  22. 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
  23. Lisp has all the visual appeal of oatmeal with fingernail clippings mixed in.

    Permalink to quote #62
  24. They can always run stderr through uniq. :-)

    Permalink to quote #74
  25. Of course, I reserve the right to make wholly stupid changes to Perl if I think they improve the language. :-)

    Permalink to quote #76
  26. I think $[ is more like a coelacanth than a mastadon.

    Permalink to quote #78
  27. 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
  28. Randal can write one-liners again. Everyone is happy, and peace spreads over the whole Earth.

    Permalink to quote #83
  29. 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
  30. You can prove anything by mentioning another computer language. :-)

    Permalink to quote #87
  31. 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
  32. True, it returns ' ' for false, but ' ' is an even more interesting number than 0.

    Permalink to quote #90
  33. Any false value is gonna be fairly boring in Perl, mathematicians notwithstanding.

    Permalink to quote #91
  34. 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
  35. Perl has a long tradition of working around compilers.

    Permalink to quote #95
  36. Of course, this being Perl, we could always take both approaches. :-)

    Permalink to quote #100
  37. 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
  38. 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
  39. The choice of approaches could be made the responsibility of the programmer.

    Permalink to quote #116
  40. 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
  41. Magically turning people's old scalar contexts into list contexts is a recipe for several kinds of disaster.

    Permalink to quote #125
  42. switch (ref $@) { OverflowError => warn 'Dam needs to be drained'; DomainError => warn 'King needs to be trained'; NuclearWarError => die; }

    Permalink to quote #129
  43. I surely do hope that's a syntax error.

    Permalink to quote #130
  44. Anyway, my money is still on use strict vars . . .

    Permalink to quote #131
  45. Just don't make the '9' format pack/unpack numbers... :-)

    Permalink to quote #137
  46. Well, you can implement a Perl peek() with unpack('P',...). Once you have that, there's only security through obscurity. :-)

    Permalink to quote #140
  47. 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
  48. 'Course, that doesn't work when 'a' contains parentheses.

    Permalink to quote #146
  49. (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
  50. The code also assumes that it's difficult to misspell 'a' or 'b'. :-)

    Permalink to quote #155
  51. 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
  52. 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
  53. And other operators aren't so special syntactically, but weird in other ways, like 'scalar', and 'goto'.

    Permalink to quote #170
  54. If this were Ada, I suppose we'd just constant fold 1/0 into die 'Illegal division by zero

    Permalink to quote #172
  55. Almost nothing in Perl serves a single purpose.

    Permalink to quote #174
  56. It's hard to tune heavily tuned code. :-)

    Permalink to quote #178
  57. Perl will always provide the null.

    Permalink to quote #179
  58. Well, I think Perl should run faster than C. :-)

    Permalink to quote #181
  59. To Perl, or not to Perl, that is the kvetching.

    Permalink to quote #182
  60. I suppose you could switch grammars once you've seen 'use strict subs'. :-)

    Permalink to quote #183
  61. Perl should remain fast and intuitive (to the extent that it is :-)

    Permalink to quote #187
  62. Just put in another goto, and then it'll be readable. :-)

    Permalink to quote #189
  63. 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
  64. : I could understand principles of Perl source in 2-3 days [. . .] Gee, it took me about eleven years. :-)

    Permalink to quote #193
  65. 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
  66. I'd make people say 'use Fork;' if I thought I could get away with it.

    Permalink to quote #197
  67. 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
  68. 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
  69. I note that the Python folks still think they like JPython. I wonder how long that will last?

    Permalink to quote #204
  70. Perl did not get where it is by ignoring psychological factors.

    Permalink to quote #211
  71. If this were Ada, we'd simply doc it as 'erroneous'.

    Permalink to quote #215
  72. That being said, I think we should immediately deprecate any string concatenation that combines '19' with '99'. :-)

    Permalink to quote #226
  73. Accidental stacks considered harmful.

    Permalink to quote #232
  74. 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
  75. #define NULL 0 /* silly thing is, we don't even use this */

    Permalink to quote #238
  76. #define SIGILL 6 /* blech */

    Permalink to quote #239
  77. break; /* don't do magic till later */

    Permalink to quote #242
  78. stab_val(stab)->str_nok = 1; /* what a wonderful hack! */

    Permalink to quote #243
  79. 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
  80. #else /* !STDSTDIO */ /* The big, slow, and stupid way */

    Permalink to quote #263
  81. /* This bit of chicanery makes a unary function followed by a parenthesis into a function with one argument, highest precedence. */

    Permalink to quote #264
  82. Be consistent.

    Permalink to quote #265
  83. 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
  84. 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
  85. Help save the world!

    Permalink to quote #268
  86. If you want your program to be readable, consider supplying the argument.

    Permalink to quote #269
  87. Perl is designed to give you several ways to do anything, so consider picking the most readable one.

    Permalink to quote #272
  88. Remember though that THERE IS NO GENERAL RULE FOR CONVERTING A LIST INTO A SCALAR.

    Permalink to quote #273
  89. The autodecrement is not magical.

    Permalink to quote #274
  90. 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
  91. 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
  92. 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
  93. There are a lotta computer languages out there doing drugs.

    Permalink to quote #284
  94. The three chief virtues of a programmer are: Laziness, Impatience and Hubris.

    Permalink to quote #288
  95. 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
  96. Q. Why is this so clumsy? A. The trick is to use Perl's strengths rather than its weaknesses.

    Permalink to quote #295
  97. 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
  98. 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
  99. 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
  100. > 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
  101. I knew I'd hate COBOL the moment I saw they'd used 'perform' instead of 'do'.

    Permalink to quote #309
  102. 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