Software Quotes

110 quotes from 22 authors

Software quotes by author

Selected software quotes

  1. Every program has two purposes: The one for which it was written and another for which it wasn't.

  2. Fools ignore complexity. Pragmatists suffer it. Some can avoid it. Geniuses remove it.

  3. In software systems it is often the early bird that makes the worm.

  4. Is it possible that software is not like anything else, that it is meant to be discarded: that the whole point is to always see it as a soap bubble?

  5. Obsolescence and death, the reign of the archaic, the abandoned, and the corny: Really, if you saw Windows 3.0 on the sidewalk outside the building, would you bend over and pick it up?!?

  6. I define UNIX as 30 definitions of regular expressions living under one roof.

  7. A computer shall not harm your work or, through inaction, allow your work to come to harm.

  8. A computer shall not waste your time or require you to do more work than is strictly necessary.

  9. TCP implementations will follow a general principle of robustness: be conservative in what you do, be liberal in what you accept from others.

  10. I want to see people using Perl to glue things together creatively, not just technically but also socially.

  11. Part of language design is perturbing the proposed feature in various directions to see how it might generalize in the future.

  12. Think of prototypes as a funny markup language--the interpretation is left up to the rendering engine.

  13. Portability should be the default.

  14. Almost nothing in Perl serves a single purpose.

  15. One operator is no big deal. That can be fixed in a jiffy.

  16. Orthogonality for orthogonality's sake is not something I'm keen on.

  17. In general, they do what you want, unless you want consistency.

  18. It is easier to port a shell than a shell script.

  19. 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.

  20. An infinite number of monkeys typing into GNU emacs would never make a good program.

  21. In short: just say NO TO DRUGS, and maybe you won't end up like the Hurd people.

  22. A lot of people still like Solaris, but I'm in active competition with them, and so I hope they die.

  23. C++ is a horrible language. It's made more horrible by the fact that a lot of substandard programmers use it, to the point where it's much much easier to generate total and utter crap with it.

  24. Security people are often the black-and-white kind of people that I can't stand. I think the OpenBSD crowd is a bunch of masturbating monkeys, in that they make such a big deal about concentrating on security to the point where they pretty much admit that nothing else matters to them.

  25. Microsoft isn't evil, they just make really crappy operating systems.

  26. The wonderful thing about standards is that there are so many of them to choose from.

  27. Let's say the docs present a simplified view of reality... :-)

  28. Let us be charitable, and call it a misleading feature :-)

  29. All language designers are arrogant. Goes with the territory... :-)

  30. I think it's a new feature. Don't tell anyone it was an accident. :-)

  31. The way I see it, if you declare something portable, you'll always be wrong, and if you declare it non-portable, you'll always be right. :-)

  32. Portability is for people who cannot write new programs.

  33. When you say 'I wrote a program that crashed Windows', people just stare at you blankly and say 'Hey, I got those with the system, *for free*'.

  34. Software is like sex; it's better when it's free.

  35. A programming language is for thinking of programs, not for expressing programs you've already thought of.

  36. ... an initial underscore already conveys strong feelings of magicalness to a C programmer.

  37. That's the thing about people who think they hate computers ... What they really hate are lousy programmers.

  38. In the Middle Ages people built cathedrals, where the whole town would get together and make a thing that's greater than any individual person could do and the society would kind of revel in that. We don't do that as much anymore, but in a sense this is kind of like building a cathedral.

  39. Logo for the Macintosh: An Introduction through Object Logo (1992)

  40. I don't know if it's what you want, but it's what you get. :-)

  41. Sometimes we choose the generalization. Sometimes we don't.

  42. How do Crays and Alphas handle the POSIX problem?

  43. I wasn't recommending that we make the links for them, only provide them with the tools to do so if they want to take the gamble (or the gambol).

  44. If you remove stricture from a large Perl program currently, you're just installing delayed bugs, whereas with this feature, you're installing an instant bug that's easily fixed. Whoopee.

  45. You don't have to wait--you can have it in 5.004_54 or so. :-)

  46. It's not really a rule--it's more like a trend.

  47. The code also assumes that it's difficult to misspell 'a' or 'b'. :-)

  48. The way these things go, there are probably 6 or 8 kludgey ways to do it, and a better way that involves rethinking something that hasn't been rethunk yet.

  49. Er, Tom, I hate to be the one to point this out, but your fix list is starting to resemble a feature list. You must be human or something.

  50. I would estimate that the number of programs it breaks in the world will be less than 10. As long as one of those 10 isn't CGI.pm, we're probably okay.

  51. I dunno. Perhaps you should be happy that I have a policy of refraining from grumbling about handicapped operating systems. :-)

  52. That is a known bug in 5.00550. Either an upgrade or a downgrade will fix it.

  53. In computer science, it is said that premature optimization is the root of all evil.

  54. : 1. What is the possibility of this being added in the future? In the near future, the probability is close to zero. In the distant future, I'll be dead, and posterity can do whatever they like... :-)

  55. May you do Good Magic with Perl.

  56. 'Regression testing'? What's that? If it compiles, it is good, if it boots up it is perfect.

  57. Anybody who tells me I can't use a program because it's not open source, go suck on rms. I'm not interested. 99% of that I run tends to be open source, but that's _my_ choice, dammit.

  58. For example, the GPLv2 in no way limits your use of the software. If you're a mad scientist, you can use GPLv2'd software for your evil plans to take over the world ('Sharks with lasers on their heads!!'), and the GPLv2 just says that you have to give source code back. And that's OK by me. I like sharks with lasers. I just want the mad scientists of the world to pay me back in kind. I made source code available to them, they have to make their changes to it available to me. After that, they can fry me with their shark-mounted lasers all they want.

  59. If ordinary people can really figure out how to set the alarm at a hotel, then we are going to make OpenOffice default to vi keybindings in the next Novell Linux Desktop.

  60. In your high school geology class you probably were taught that all life on earth exists in a paper-thin shell called the biosphere, which is trapped between thousands of miles of dead rock underfoot, and cold dead radioactive empty space above. Companies that sell OSes exist in a sort of technosphere. Underneath is technology that has already become free. Above is technology that has yet to be developed, or that is too crazy and speculative to be productized just yet. Like the Earth's biosphere, the technosphere is very thin compared to what is above and what is below.

  61. Architects know that some kinds of design problems are more personal than others. One of the cleanest, most abstract design problems is designing bridges. There your job is largely a matter of spanning a given distance with the least material. The other end of the spectrum is designing chairs. Chair designers have to spend their time thinking about human butts.

  62. The best thing software can be is easy, but the way to do this is to get the defaults right, not to limit users' choices.

  63. Software has to be designed by hackers who understand design, not designers who know a little about software. If you can't design software as well as implement it, don't start a startup.

  64. If you try to solve a hard problem, the question is not whether you will use a powerful enough language, but whether you will (a) use a powerful language, (b) write a de facto interpreter for one, or (c) yourself become a human compiler for one.

  65. When those far removed from the creation of wealth -- undergraduates, reporters, politicians -- hear that the richest 5% of the people have half the total wealth, they tend to think injustice! An experienced programmer would be more likely to think is that all? The top 5% of programmers probably write 99% of the good software.

  66. 'isc remains deeply apologetic that prior versions of BIND did not properly catch the configuration error that you appear to have built your business on.' (2001)

  67. The net software here did its meltdown trick again at the weekend (it happens about once every six months -- if only everything was as reliable as WordPerfect 4.2, which only chews up a novel about once every two or three years...)

  68. I spent this time polishing up the software/hardware documentation, renaming registers to be more meaningful. This was actually time well spent in my life.

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

  70. I suppose one could claim that an undocumented feature has no semantics. :-(

  71. double value; /* or your money back! */ short changed; /* so triple your money back! */

  72. break; /* don't do magic till later */

  73. While discussing the merits of djbdns over BIND (2004):

  74. Joel on Software

  75. Simple things should be simple, complex things should be possible.

  76. Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves.

  77. Perl is another example of filling a tiny, short-term need, and then being a real problem in the longer term. Basically, a lot of the problems that computing has had in the last 25 years comes from systems where the designers were trying to fix some short-term thing and didn't think about whether the idea would scale if it were adopted. There should be a half-life on software so old software just melts away over 10 or 15 years.

  78. Basic would never have surfaced because there was always a language better than Basic for that purpose. That language was Joss, which predated Basic and was beautiful. But Basic happened to be on a GE timesharing system that was done by Dartmouth, and when GE decided to franchise that, it started spreading Basic around just because it was there, not because it had any intrinsic merits whatsoever.

  79. If the pros at Sun had had a chance to fix Java, the world would be a much more pleasant place. This is not secret knowledge. It's just secret to this pop culture.

  80. People who are really serious about software should make their own hardware.

  81. Reading computer manuals without the hardware is as frustrating as reading sex manuals without the software.

  82. Any sufficiently advanced bug is indistinguishable from a feature.

  83. If something's expensive to develop, and somebody's not going to get paid, it won't get developed. So you decide: Do you want software to be written, or not?

  84. It's not manufacturers trying to rip anybody off or anything like that. There's nobody getting rich writing software that I know of.

  85. The next generation of interesting software will be done on the Macintosh, not the IBM PC.

  86. I believe OS/2 is destined to be the most important operating system, and possibly program, of all time.

  87. I laid out memory so the bottom 640K was general purpose RAM and the upper 384 I reserved for video and ROM, and things like that. That is why they talk about the 640K limit. It is actually a limit, not of the software, in any way, shape, or form, it is the limit of the microprocessor. That thing generates addresses, 20-bits addresses, that only can address a megabyte of memory. And, therefore, all the applications are tied to that limit. It was ten times what we had before. But to my surprise, we ran out of that address base for applications within-oh five or six years people were complaining.

  88. There are no significant bugs in our released software that any significant number of users want fixed.

  89. There are people who don't like capitalism, and people who don't like PCs. But there's no one who likes the PC who doesn't like Microsoft.[3]

  90. The finest pieces of software are those where one individual has a complete sense of exactly how the program works. To have that, you have to really love the program and concentrate on keeping it simple, to an incredible degree.

  91. We're no longer in the days where everything is super well crafted. But at the heart of the programs that make it to the top, you'll find that the key internal code was done by a few people who really know what they were doing.

  92. Unfortunately, many programs are so big that there is no one individual who really knows all the pieces, and so the amount of code sharing you get isn't as great. Also, the opportunity to go back and really rewrite something isn't quite as great, because there's always a new set of features that you're adding on to the same program.

  93. The worst programs are the ones where the programmers doing the original work don't lay a solid foundation, and then they're not involved in the program in the future.

  94. Programs today get very fat; the enhancements tend to slow the programs down because people put in special checks. When they want to add some feature, they'll just stick in these checks without thinking how they might slow the thing down.

  95. Bill Gates is a very rich man today ... and do you want to know why? The answer is one word: versions.

  96. The current term of protection for software is the life of an author plus 70 years, or, if it's work-for-hire, a total of 95 years. This is a bastardization of the Constitution's requirement that copyright be for 'limited times.' By the time Apple's Macintosh operating system finally falls into the public domain, there will be no machine that could possibly run it. The term of copyright for software is effectively unlimited.

  97. While the creative works from the 16th century can still be accessed and used by others, the data in some software programs from the 1990s is already inaccessible. Once a company that produces a certain product goes out of business, it has no simple way to uncover how its product encoded data. The code is thus lost, and the software is inaccessible. Knowledge has been destroyed.

  98. I would dramatically reduce the safeguards for software - from the ordinary term of 95 years to an initial term of 5 years, renewable once. And I would extend that government-backed protection only if the author submitted a duplicate of the source code to be held in escrow while the work was protected. Once the copyright expired, that escrowed version would be publicly available from the copyright office. Most programmers should like this change. No code lives for 10 years, and getting access to the source code of even orphaned software projects would benefit all. More important, it would unlock the knowledge built into this protected code for others to build upon as they see fit. Software would thus be like every other creative work - open for others to see and to learn from.

  99. The problems with software are just examples of the problems found generally with creativity. Our trend in copyright law has been to enclose as much as we can; the consequence of this enclosure is a stifling of creativity and innovation. If the Internet teaches us anything, it is that great value comes from leaving core resources in a commons, where they're free for people to build upon as they see fit.

  100. It may be that brain hardware has co-evolved with the internal virtual worlds that it creates. This can be called hardware-software co-evolution.

Also writing on software