[ "There are two ways of constructing a software design: One way is to make it sosimple that there are obviously no deficiencies and the other way is to make itso complicated that there are no obvious deficiencies.— C.A.R. Hoare, The 1980 ACM Turing Award Lecture", "The computing scientist's main challenge is not to get confused by thecomplexities of his own making.— E. W. Dijkstra", "The cheapest, fastest, and most reliable components are those that aren't there.— Gordon Bell", "One of my most productive days was throwing away 1000 lines of code.— Ken Thompson", "When in doubt, use brute force.— Ken Thompson", "Deleted code is debugged code.— Jeff Sickel", "Debugging is twice as hard as writing the code in the first place. Therefore,if you write the code as cleverly as possible, you are, by definition, notsmart enough to debug it.— Brian W. Kernighan and P. J. Plauger in The Elements of Programming Style.", "The most effective debugging tool is still careful thought, coupled withjudiciously placed print statements.— Brian W. Kernighan, in the paper Unix for Beginners (1979)", "Controlling complexity is the essence of computer programming.— Brian Kernighan", "Beauty is more important in computing than anywhere else in technology becausesoftware is so complicated. Beauty is the ultimate defence against complexity.— David Gelernter", "UNIX was not designed to stop its users from doing stupid things, as that wouldalso stop them from doing clever things.— Doug Gwyn", "If you're willing to restrict the flexibility of your approach, you can almostalways do something better.— John Carmack", "And folks, let's be honest. Sturgeon was an optimist. Way more than 90% of codeis crap.— viro [http://www.ussg.iu.edu/hypermail/linux/kernel/0310.0/0870.html]", "A data structure is just a stupid programming language.— R. Wm. Gosper", "The essence of XML is this: the problem it solves is not hard, and it does notsolve the problem well.— Phil Wadler, POPL 2003", "A program that produces incorrect results twice as fast is infinitely slower.— John Osterhout", "Life is too short to run proprietary software.— Bdale Garbee", "I had a nightmare once in which I a had convinced a friend how wonderful C++is. A while later he came back., and he was mad.[sic]— Robin Rosenberg [http://groups.google.com/groups?selm=1fYEA-pz-21%40gated-at.bofh.it]", "XML is like violence: if it doesn't solve your problem, you aren't using enoughof it.— Heard from someone working at Microsoft", "XML is like violence. Sure, it seems like a quick and easy solution at first,but then it spirals out of control into utter chaos.— Sarkos in reddit", "Threads [and] signals [are] a platform-dependant trail of misery, despair,horror and madness.— Anthony Baxter [http://mail.python.org/pipermail/python-dev/2005-July/]", "Computers are about making life easier in much the same way that the Republicanparty is about fiscal responsibility and a culture of life.— mister_borogove [http://www.livejournal.com/users/jwz/536902.html?thread=9506374#t9506374]", "All software sucks, be it open-source [or] proprietary. The only question iswhat can be done with particular instance of suckage, and that's where havingthe source matters.— viro [http://www.ussg.iu.edu/hypermail/linux/kernel/0404.3/1344.html]", "Mathematicians stand on each others' shoulders and computer scientists standon each others' toes.— Richard Hamming", "It's not that Perl programmers are idiots, it's that the language rewardsidiotic behavior in a way that no other language or tool has ever done.— Erik Naggum, comp.lang.lisp", "Out-of-band == should be on a separate channel…— Al Viro", "It's a curious thing about our industry: not only do we not learn from ourmistakes, we also don't learn from our successes.— Keith Braithwaite", "Ethernet always wins.— Andy Bechtolsheim", "The central enemy of reliability is complexity.— Geer et al.", "Simplicity is prerequisite for reliability.— Edsger W. Dijkstra", "Beware of « the real world ». A speaker's apeal to it is always an invitation notto challenge his tacit assumptions.— Edsger W. Dijkstra", "Unix is a junk OS designed by a committee of PhDs.— Dave Cutler", "i've wondered whether Linux sysfs should be called syphilis— forsyth", "A program is portable to the extent that it can be easily moved to a newcomputing environment with much less effort than would be required to write itafresh.— W. Stan Brown [http://groups.google.com/group/comp.std.c/msg/083fb09444dbbc76]", "Programming graphics in X is like finding the square root of PI using Roman numerals.— Henry Spencer", "Forward thinking was just the thing that made Multics what it is today.— Erik Quanstrom", "The Eight Fallacies of Distributed ComputingEssentially everyone, when they first build a distributed application, makesthe following eight assumptions. All prove to be false in the long run and allcause big trouble and painful learning experiences.
[Like programmers] prostitutes also think they all suck.And both, programmers and prostitutes, are right: they suck. The big differenceis that prostitutes got the term « user-friendly » right.— yiyus [http://www.reddit.com/r/programming/comments/8y348/my_programming_quotes_file_was_well_received_when/c0aspwo]", "The Purpose of Computing is Insight, Not Numbers.— This is the motto of the book Numerical Methods for Scientists and Engineers by Richard Hamming.", "Every methodology I've come across has, at its kernel, a very small sectionlabelled « do magic here ».— Katie [http://www.fysh.org/~katie/computing/methodologies.txt]", "I recommend the linux people to call it « GNU / Linux » instead of « GNU/Linux ».never hurts to distance yourself from GNU.— mjl on #plan9-social", "For the sinner deserves not life but death, according to the diskdevices. For example, start with Plan 9, which is free of sin, thecase is different from His perspective.— Mark V. Shaney", "Trying to express implicit and fuzzy relationships in ways that are explicitand sharp doesn't clarify the meaning, it destroys it.— Clay Shirky [http://www.shirky.com/writings/semantic_syllogism.html]", "Unix has retarded OS research by 10 years and linux has retarded it by 20.— Dennis Ritchie as quoted by by Boyd Roberts in 9fans.", "Any program that tries to be so generalized and configurable that it couldhandle any kind of task will either fall short of this goal, or will behorribly broken.— Chris Wenham", "Nobody who uses XML knows what they are doing.— Chris Wenham", "Debugging time increases as a square of the program's size.— Chris Wenham", "I guess it's like smart compiler for dumb people, and dumb compiler for smartpeople. But then smart compiler gets too smart.. so neither dumb nor smartpeople can understand it.— fgb on compilers and gcc", "in aeronautical circles, it's said that the f4 is proof that givenenough thrust even a brick will fly.linux is the f4 of computing?— erik quanstrom", "It seems to me more like you use foresight and pessimism to avoid getting intosituations where you need to demonstrate exceptional programming ability.— mister_borogove speaking to jwz [http://jwz.livejournal.com/1096593.html]", "Comparing a computer language to a human language is like comparing anoperating system kernel to a popcorn kernel.— kryptkpr [http://www.reddit.com/r/programming/comments/9upno/c_is_frequently_reviled_both_by_those_who_never/c0eiyqu]", "Hofstadter's Law: It always takes longer than you expect, even when you takeinto account Hofstadter's Law.", "My definition of an expert in any field is a person who knows enough aboutwhat's really going on to be scared.— P. J. Plauger, Computer Language, March 1983", "Every language has an optimization operator. In C++ that operator is ‘//’", "Nobody should start to undertake a large project. You start with a smalltrivial project, and you should never expect it to get large. If you do, you'lljust overdesign and generally think it is more important than it likely is atthat stage. Or worse, you might be scared away by the sheer size of the workyou envision. So start small, and think about the details. Don't think aboutsome big picture and fancy design. If it doesn't solve some fairly immediateneed, it's almost certainly over-designed. And don't expect people to jump inand help you. That's not how these things work. You need to get somethinghalf-way useful first, and then others will say « hey, that almost works forme », and they'll get involved in the project.— Linus Torvalds", "Theory is when you know something, but it doesn't work. Practice is whensomething works, but you don't know why. Programmers combine theory andpractice: Nothing works and they don't know why.", "A computer is a stupid machine with the ability to do incredibly smart things,while computer programmers are smart people with the ability to do incrediblystupid things. They are, in short, a perfect match", "Q: What is the most often-overlooked risk in software engineering?A: Incompetent programmers. There are estimates that the number of programmersneeded in the U.S. exceeds 200,000. This is entirely misleading. It is not aquantity problem; we have a quality problem. One bad programmer can easilycreate two new jobs a year. Hiring more bad programmers will just increase ourperceived need for them. If we had more good programmers, and could easilyidentify them, we would need fewer, not more.— David Parnas", "Well over half of the time you spend working on a project (on the order of 70percent) is spent thinking, and no tool, no matter how advanced, can think foryou. Consequently, even if a tool did everything except the thinking for you –if it wrote 100 percent of the code, wrote 100 percent of the documentation,did 100 percent of the testing, burned the CD-ROMs, put them in boxes, andmailed them to your customers – the best you could hope for would be a 30percent improvement in productivity. In order to do better than that, you haveto change the way you think.", "The best code is no code at all.", "Before software can be reusable it first has to be usable.", "Old programs read like quiet conversations between a well-spoken research worker and a well-studied mechanical colleague, not as a debate with a compiler. Who'd have guessed sophistication bought such noise?— Dick Gabriel", "This is one of the reasons Lisp doesn't get anywhere. The trend to promote features so clever that you stop thinking about your problem and start thinking about the clever features. CL's loop is so powerful that people invented functional programming so that they'd never have to use it.— G_Morgan in reddit [http://www.reddit.com/r/programming/comments/a481l/so_to_get_back_to_the_point_go_vs_algol68_tbh_i/c0fs2nk]", "More computing sins are committed in the name of efficiency (withoutnecessarily achieving it) than for any other single reason - including blindstupidity.— William A. Wulf", "There is not now, nor has there ever been, nor will there ever be, anyprogramming language in which it is the least bit difficult to write bad code.", "Program testing can be a very effective way to show the presence of bugs, butis hopelessly inadequate for showing their absence.— Edsger W. Dijkstra", "The competent programmer is fully aware of the limited size of his own skull.He therefore approaches his task with full humility, and avoids clever trickslike the plague.— Edsger W. Dijkstra", "Parkinson’s LawOtherwise known as the law of bureaucracy, this law states that…« Work expands so as to fill the time available for its completion. »", "It has been said that the great scientific disciplines are examples of giantsstanding on the shoulders of other giants. It has also been said that thesoftware industry is an example of midgets standing on the toes of othermidgets.— Alan Cooper, About Face", "Code never lies, comments sometimes do.— Ron Jeffries", "What I cannot build, I do not understand.— Richard Feynman", "If we'd asked the customers what they wanted, they would have said « faster horses »— Henry Ford", "I (…) am rarely happier than when spending an entire day programming mycomputer to perform automatically a task that would otherwise take me a goodten seconds to do by hand.— Douglas Adams, Last Chance to See", "Programming is not a zero-sum game. Teaching something to a fellow programmerdoesn’t take it away from you. I’m happy to share what I can, because I’m in itfor the love of programming. The Ferraris are just gravy, honest!— John Carmack, from Michael Abrash' Graphics Programming Black Book.", "I have found that the reason a lot of people are interested in artificialintelligence is the same reason a lot of people are interested in artificiallimbs: they are missing one.— David Parnas", "Once you've dressed and before you leave the house, look in the mirror and takeat least one thing off.— Coco Chanel", "When I am working on a problem I never think about beauty. I think only how tosolve the problem. But when I have finished, if the solution is not beautiful,I know it is wrong.— R. Buckminster Fuller", "I have always found that plans are useless, but planning is indispensable.— Dwight D. Eisenhower", "I will, in fact, claim that the difference between a bad programmer and a goodone is whether he considers his code or his data structures more important. Badprogrammers worry about the code. Good programmers worry about data structuresand their relationships.— Linus Torvalds", "Software is like entropy. It is difficult to grasp, weighs nothing, and obeysthe second law of thermodynamics; i.e. it always increases.", "A fool with a tool is a more dangerous fool.— u.", "The best things are simple, but finding these simple things is not simple.— bill [http://stackoverflow.com/questions/58640/great-programming-quotes/1003525#1003525]", "Some problems are so complex that you have to be highly intelligent and wellinformed just to be undecided about them.— Laurence J. Peter", "The most amazing achievement of the computer software industry is itscontinuing cancellation of the steady and staggering gains made by the computerhardware industry.— Henry Petroski", "Theory is when you know something, but it doesn't work. Practice is whensomething works, but you don't know why. Programmers combine theory andpractice: Nothing works and they don't know why.", "Once a new technology starts rolling, if you're not part of the steamroller,you're part of the road.— Stewart Brand", "Einstein argued that there must be simplified explanations of nature, becauseGod is not capricious or arbitrary. No such faith comforts the softwareengineer.— Fred Brooks", "… the cost of adding a feature isn't just the time it takes to code it. Thecost also includes the addition of an obstacle to future expansion. … Thetrick is to pick the features that don't fight each other.— John Carmack", "With diligence it is possible to make anything run slowly.— Tom Duff", "Any intelligent fool can make things bigger, more complex, and more violent. Ittakes a touch of genius – and a lot of courage – to move in the oppositedirection.— Albert Einstein", "A foolish consistency is the hobgoblin of little minds, adored by littlestatesmen and philosophers and divines.— Ralph Waldo Emerson", "For a sucessful technology, honesty must take precedence over public relationsfor nature cannot be fooled.— Richard Feynman", "Comparing to another activity is useful if it helps you formulate questions,it's dangerous when you use it to justify answers.— Martin Fowler", "Simplicity carried to the extreme becomes elegance.— Jon Franklin", "Software obeys the law of gaseous expansion - it continues to grow until memoryis completely filled.— Larry Gleason", "The unavoidable price of reliability is simplicity.— C.A.R. Hoare", "The ability to simplify means to eliminate the unnecessary so that thenecessary may speak.— Hans Hoffmann", "Trying to outsmart a compiler defeats much of the purpose of using one.— Kernighan and Plauger, The Elements of Programming Style.", "You're bound to be unhappy if you optimize everything.— Donald Knuth", "A distributed system is one in which the failure of a computer you didn't evenknow existed can render your own computer unusable.— Leslie Lamport", "But in our enthusiasm, we could not resist a radical overhaul of the system, inwhich all of its major weaknesses have been exposed, analyzed, and replacedwith new weaknesses.— Bruce Leverett, Register Allocation in Optimizing Compilers", "The proper use of comments is to compensate for our failure to express ourselfin code.— Robert C. MartinClean Code", "If you want a product with certain characteristics, you must ensure that theteam has those characteristics before the product's development.— Jim McCarthy and Michele McCarthy - Software for your Head", "You can't have great software without a great team, and most software teamsbehave like dysfunctional families.— Jim McCarthy", "Testing by itself does not improve software quality. Test results are anindicator of quality, but in and of themselves, they don't improve it. Tryingto improve software quality by increasing the amount of testing is like tryingto lose weight by weighing yourself more often. What you eat before you steponto the scale determines how much you will weigh, and the software developmenttechniques you use determine how many errors testing will find. If you want tolose weight, don't buy a new scale; change your diet. If you want to improveyour software, don't test more; develop better.— Steve McConnell Code Complete", "Correctness is clearly the prime quality. If a system does not do what it issupposed to do, then everything else about it matters little.— Bertrand Meyer", "Incorrect documentation is often worse than no documentation.— Bertrand Meyer", "Software sucks because users demand it to.— Nathan Myhrvold", "Unformed people delight in the gaudy and in novelty. Cooked people delight inthe ordinary.— Erik Naggum", "There's no sense being exact about something if you don't even know what you'retalking about.— John von Neumann", "That's the thing about people who think they hate computers. What they reallyhate is lousy programmers.— Larry Niven and Jerry Pournelle Oath of Fealty", "Search all the parks in all your cities; you'll find no statues of committees.— David Ogilvy", "Good code is short, simple, and symmetrical - the challenge is figuring out howto get there.— Sean Parent", "Fashion is something barbarous, for it produces innovation without reason andimitation without benefit.— George Santayana", "Forgive him, for he believes that the customs of his tribe are the laws ofnature!— G.B. Shaw", "The only sin is to make a choice without knowing you are making one.— Jonathan Shewchuk", "It is a painful thing to look at your own trouble and know that you yourselfand no one else has made it.— Sophocles, Ajax", "The primary duty of an exception handler is to get the errorout of the lap of the programmer and into the surprised faceof the user. Provided you keep this cardinal rule in mind,you can't go far wrong.— Verity Stob", "A notation is important for what it leaves out.— Joseph Stoy", "An organisation that treats its programmers as morons will soon haveprogrammers that are willing and able to act like morons only.— Bjarne Stroustrup", "I have always wished that my computer would be as easy to useas my telephone. My wish has come true. I no longer know howto use my telephone.— Bjarne Stroustrup", "The most important single aspect of software development isto be clear about what you are trying to build.— Bjarne Stroustrup", "The best is the enemy of the good.— Voltaire", "As soon as we started programming, we found to our surprise that it wasn't aseasy to get programs right as we had thought. Debugging had to be discovered. Ican remember the exact instant when I realized that a large part of my lifefrom then on was going to be spent in finding mistakes in my own programs.— Maurice Wilkes discovers debugging, 1949", "Software gets slower faster than hardware gets faster.— Wirth's law", "The purpose of software engineering is to control complexity, not to create it.— Dr. Pamela Zave", "I object to doing things that computers can do.— Olin Shivers", "Simplicity – the art of maximizing the amount of work not done – is essential.— From the Agile Manifesto.", "When you want to do something differently from the rest of the world, it's agood idea to look into whether the rest of the world knows something you don't.", "Perilous to us all are the devices of an art deeper than that which we possessourselves.— J.R.R. Tolkien", "Complexity has nothing to do with intelligence, simplicity does.— Larry Bossidy", "If it doesn't work, it doesn't matter how fast it doesn't work.— Mich Ravera", "Simplicity is hard to build, easy to use, and hard to charge for. Complexity iseasy to build, hard to use, and easy to charge for.— Chris Sacca", "… what society overwhelmingly asks for is snake oil. Of course, the snake oilhas the most impressive names — otherwise you would be selling nothing — like« Structured Analysis and Design », « Software Engineering », « Maturity Models »,« Management Information Systems », « Integrated Project Support Environments »« Object Orientation » and « Business Process Re-engineering » (the latter threebeing known as IPSE, OO and BPR, respectively).— Edsger W. Dijkstra — EWD 1175: The strengths of the academic enterprise [Today we could add ‘Extreme Programming', ‘Agile Software Development' and many more.]", "They won't tell you that they don't understand it; they will happily inventtheir way through the gaps and obscurities.— V.A. Vyssotsky on software programmers and their views on specifications", "In software, the most beautiful code, the most beautiful functions, and themost beautiful programs are sometimes not there at all.— Jon Bentley, Beautiful Code (O'Reilly), « The Most Beautiful Code I Never Wrote »", "Computers make it easier to do a lot of things, but most of the things theymake it easier to do don't need to be done.— Andy Rooney", "True glory consists in doing what deserves to be written; in writing whatdeserves to be read.— Pliny the Elder", "The whole point of getting things done is knowing what to leave undone.— Oswald Chambers", "
These are some of the types of problems engineers at REAL software shops haveto solve to be able to ship REAL product for REAL money. If you haven't HADto produce code like this yourself at some point in your carrier then you'velived a sheltered life.Its disingenuous for you to get on your ivory tower to point and laugh.Well, you see, after spending years cleaning up the excrements of self-styled« REAL engineers » it's either get on the tower to point and laugh or get on thetower to point and shoot.— Al Viro in lkml", "‘Layered approach' is not a magic incantation to excuse any bit of snake oil.Homeopathic remedies might not harm (pure water is pure water), but that's notan excuse for quackery. And frankly, most of the ‘security improvement' crowdsound exactly like woo-peddlers.— Al Viro", "The trick is to fix the problem you have, rather than the problem you want.— Bram Cohen", "Security is a state of mind.— NSA Security Manual", "Never attribute to funny hardware that which can be adequately explained bybroken locking.— Erik Quanstrom", "Things which any idiot could write usually have the quality of having beenwritten by an idiot.— Bram Cohen", "In programming the hard part isn't solving problems, but deciding what problemsto solve.— Paul Graham", "[POSIX] unifying unix? more like formalizing historical design mistakes made bymajor vendors…— ttyv0", "Do I really want to be using a language where memoize is a PhD-level topic?— Mark Engelberg about Haskell", "The beauty of small and simple code is that you can bend or break the rules aslong it stays small and simple. Rules allow people to write code withoutthinking. [And when] you dont think […] you get bloated code that justconcatenates stupid patterns.People stop thinking and questioning [and] then its just worshipping some ruleswithout any pruporse.— Cinap Lenrek", "If you start programming by learning perl you will just become a menace to yourself and others.— egoncasteel", "When there is no type hierarchy you don't have to manage the type hierarchy.— Rob Pike", "Programming languages should be designed not by piling feature on top offeature, but by removing the weaknesses and restrictions that make additionalfeatures appear necessary.— RnRS", "Software efficiency halves every 18 months, compensating Moore's Law.— May's Law", "So-called « smart » software usually is the worst you can imagine.— Christian Neukirchen", "Such is modern computing: everything simple is made too complicated becauseit's easy to fiddle with; everything complicated stays complicated because it'shard to fix.— Rob Pike", "It is not that uncommon for the cost of an abstraction to outweigh the benefitit delivers. Kill one today!— John Carmack", "So much complexity in software comes from trying to make one thing do two things.— Ryan Singer", "The standard rule is, when you're in a hole, stop digging; that seems not toapply [to] software nowadays.— Ron Minnich", "Languages that try to disallow idiocy become themselves idiotic.— Rob Pike", "