The best way to predict the future is to invent it.Alan Kay

A thing done well can be done better.Gianni Agnelli

Software Itself

Software is like entropy: It is difficult to grasp, weighs nothing, and obeys the Second Law of Thermodynamics; i.e., it always increases.Norman Augustine

Software is a gas; it expands to fill its container.Nathan Myhrvold

Software is a great combination between artistry and engineering.Bill Gates

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

Software gets slower faster than hardware gets faster.Niklaus E. Wirth (Wirth’s Law)

In software systems, it is often the early bird that makes the worm.Alan J. Perlis from Epigrams on Programming

Einstein argued that there must be simplified explanations of nature, because God is not capricious or arbitrary. No such faith comforts the software engineerFrederick “Fred” P. Brooks

Hardware eventually fails. Software eventually works.Michael Hartung

Any fool can use a computer. Many do.Ted Nelson

It has been said that the great scientific disciplines are examples of giants standing on the shoulders of other giants. It has also been said that the software industry is an example of midgets standing on the toes of other midgets.Alan Cooper

Artificial Intelligence

Software is eating the world, but AI is going to eat software.Jensen Huang

Artificial intelligence is the science of making machines do things that would require intelligence if done by men.Marvin Minsky

The question of whether a computer can think is no more interesting than the question of whether a submarine can swim.Edsger W. Dijkstra

Some people worry that artificial intelligence will make us feel inferior, but then, anybody in his right mind should have an inferiority complex every time he looks at a flower.Alan Kay

Real stupidity beats artificial intelligence every time.Terry Pratchett

The danger of computers becoming like humans is not as great as the danger of humans becoming like computers.Konrad Zuse

Computers are like humans — they do everything except think.John von Neumann

No computer has ever been designed that is ever aware of what it’s doing; but most of the time, we aren’t either.Marvin Minsky

Standards

The nice thing about standards is that there are so many to choose from.Andrew S. Tannenbaum

Whenever a major organization develops a new system as an official standard for X, the primary result is the widespread adoption of some simpler system as a de facto standard for X.John F. Sowa (Sowa’s Law of Standards)

Software Architecture and Design

There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies. And the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult. It demands the same skill, devotion, insight, and even inspiration as the discovery of the simple physical laws which underlie the complex phenomena of nature. It also requires a willingness to accept objectives which are limited by physical, logical, and technological constraints, and to accept a compromise when conflicting objectives cannot be met. No committee will ever do this until it is too late. … The price of reliability is the pursuit of the utmost simplicity. It is a price which the very rich find most hard to pay.C.A.R. “Tony” Hoare

If you think good architecture is expensive, try bad architecture.Brian Foote and Joseph Yoder

Those who can imagine anything, can create the impossible.Alan Turing

Conceptual integrity is the most important consideration in system design.Frederick “Fred” P. Brooks

Software is not limited by physics, like buildings are. It is limited by imagination, by design, by organization. In short, it is limited by properties of people, not by properties of the world.Ralph Johnson

Just because people tell you it can’t be done, that doesn’t necessarily mean that it can’t be done. It just means that they can’t do it.Anders Hejlsberg

…the purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise.Edsger W. Dijkstra

A common mistake that people make when trying to design something completely foolproof was to underestimate the ingenuity of complete fools.Douglas Adams

A good designer must rely on experience, on precise, logic thinking; and on pedantic exactness. No magic will do.Niklaus Wirth

Assumptions are the mother of all failures.Said Ouissal

Judge a man by his questions rather than by his answers and the corollary He must be very ignorant for he answers every question he is asked.Voltaire (François-Marie Arouet)

Re graphics: A picture is worth 10K words — but only those to describe the picture. Hardly any sets of 10K words can be adequately described with pictures.Alan J. Perlis

Simplicity

Make everything as simple as possible, but not simpler.Albert Einstein

Truth is ever to be found in simplicity; and not in the multiplicity and confusion of things.Sir Isaac Newton

Simple things should be simple, complex things should be possible.Alan Kay

The lurking suspicion that something could be simplified is the world’s richest source of rewarding challenges.Edsger W. Dijkstra

Increasingly, people seem to misinterpret complexity as sophistication, which is baffling – the incomprehensible should cause suspicion rather than admiration.Niklaus Wirth

Developers are drawn to complexity like moths to a flame, frequently with the same result.Neal Ford

Simplicity is prerequisite for reliability.Edsger W. Dijkstra

The belief that complex systems require armies of designers and programmers is wrong. A system that is not understood in its entirety, or at least to a significant degree of detail by a single individual, should probably not be built.Niklaus Wirth

UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity.Dennis Ritchie

A primary cause of complexity is that software vendors uncritically adopt almost any feature that users want.Niklaus Wirth

The Art of Programming

Controlling complexity is the essence of computer programming.Brian W. Kernighan

The code you write makes you a programmer. The code you delete makes you a good one. The code you don’t have to write makes you a great one.Mario Fusco

Oh, I’ve certainly never been short of pleasure. Do you know what real pleasure is? A creative act. A pleasure without creativity is dead boring.Gianni Agnelli

Some problems are better evaded than solved.C.A.R. “Tony” Hoare

I don’t know how many of you have ever met Dijkstra, but you probably know that arrogance in computer science is measured in nano-DijkstrasAlan Kay

The fundamental problem with program maintenance is that fixing a defect has a substantial chance of introducing another.Frederick “Fred” P. Brooks

Immutability changes everything.Pat Helland

A good programmer is someone who always looks both ways before crossing a one-way street.Doug Linder

The competent programmer is fully aware of the strictly limited size of his own skull; therefore he approaches the programming task in full humility, and among other things he avoids clever tricks like the plague.Edsger W. Dijkstra

Programming requires more concentration than other activities. It’s the reason programmers get upset about ‘quick interruptions’ – such interruptions are tantamount to asking a juggler to keep three balls in the air and hold your groceries at the same time.Steve McConnell

We should forget about small efficiences, say, about 97% of the time. Premature optimization is the root of all evil.Donald Knuth

Premature optimization is the root of all evil in programming.C.A.R. “Tony” Hoare

… we do not consider it as good engineering practice to consume a resource lavishly just because it happens to be cheap.Niklaus E. Wirth

Every program has (at least) two purposes: the one for which it was written, and another for which it wasn’t.Alan J. Perlis

Good programmers never write what they can steal or borrow.Jeff Atwood

Programming is not a science. Programming is a craft.Richard Stallman

You cannot teach beginners top-down programming, because they don’t know which end is up.C.A.R. “Tony” Hoare

All problems in computer science can be solved by another level of indirection… Except for the problem of too many layers of indirection.David Wheeler

Everybody has a testing environment. Some people are lucky enough to have a totally separate environment to run production in.Michael Stahnke

There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errorsUnknown

The trouble with programmers is that you can never tell what a programmer is doing until it’s too late.Seymour Cray

Most of you are familiar with the virtues of a programmer. There are three, of course: laziness, impatience, and hubris.Larry Wall

Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.Rick Cook

I couldn’t resist the temptation to put in a null reference, simply because it was so easy to implement. This has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years.C.A.R. “Tony” Hoare

One bad programmer can easily create two new jobs a year.David Parnas

Before software can be reusable it first has to be usable.Ralph Johnson

The three most dangerous things in the world are a programmer with a soldering iron, a hardware type with a program patch and a user with an idea.Rick Cook

Some people, when confronted with a problem, think, “I know, I’ll use threads,” and then they have two problems.Ned Batchelder

We don’t do this because it’s easy. We do this because we thought it would be easy.Unknown (The Programmer’s Credo)

Much of the excitement we get out of our work is that we don’t really know what we are doing.Edsger Dijkstra

To iterate is human, to recurse divine.Peter Deutsch

Good programmers don’t just write programs. They build a working vocabulary.Guy L. Steele Jr.

On two occasions, I have been asked [by members of Parliament], “if you put into the machine wrong figures, will the right answers come out?”…I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.Charles Babbage

As a program is evolved its complexity increases unless work is done to maintain or reduce it.Meir “Manny” Lehman (Lehman’s law of Increasing Complexity)

Without requirements or design, programming is the art of adding bugs to an empty text file.Louis Srygley

The key to understanding complicated things is knowing what not to look at.Gerald Jay Sussman

Nothing brings fear to my heart more than a floating point number.Gerald Jay Sussman

On Languages (Especially Lisp)

A programming language is a tool that has profound influence on our thinking habits.Edsger Dijkstra

Computer language design is just like a stroll in the park. Jurassic Park, that is.Larry Wall

Some people prefer not to commingle the functional, lambda-calculus part of a language with the parts that do side effects. It seems they believe in the separation of Church and state.Guy L. Steele Jr.

C treats you like a consenting adult. Pascal treats you like a naughty child. Ada treats you like a criminal.Bruce Powel Douglass

If you give someone Fortran, he has Fortran. If you give someone Lisp, he has any language he pleases.Guy L. Steele Jr.

I did write some code in Java once, but that was the island in Indonesia.Richard Stallman

I made up the term “object-oriented,” and I can tell you I did not have C++ in mind.Alan Kay

SQL, Lisp, and Haskell are the only programming languages that I’ve seen where one spends more time thinking than typing.Philip Greenspun

My being a teacher had a decisive influence on making language and systems as simple as possible so that in my teaching, I could concentrate on the essential issues of programming rather than on details of language and notation.Niklaus Wirth

Anyone could learn Lisp in one day, except that if they already knew Fortran, it would take three days.Marvin Minsky

A good programming language is a conceptual universe for thinking about programming.Alan Perlis

I remember being impressed with Ada because you could write an infinite loop without a faked up condition. The idea being that in Ada the typical infinite loop would be normally be terminated by detonation.Larry Wall

Programming in Basic causes brain damage.Edsger Dijkstra

Job Control Language is the worst programming language ever designed anywhere by anybody for any purpose.Frederick “Fred” P. Brooks

Lisp has all the visual appeal of oatmeal with fingernail clippings mixed in.Larry Wall

C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off.Bjarne Stroustrup

FORTRAN was the language of choice for the same reason that three-legged races are popular.Ken Thompson

As a linguist, I don’t think of Ada as a big language. Now, English and Japanese, those are big languages. Ada is just a medium-sized language.Larry Wall

Object oriented programs are offered as alternatives to correct ones.Edsger W. Dijkstra

The greatest single programming language ever designed.Alan Kay, on Lisp

Lisp has jokingly been called “the most intelligent way to misuse a computer.” I think that description is a great compliment because it transmits the full flavor of liberation: it has assisted a number of our most gifted fellow humans in thinking previously impossible thoughts.Edsger W. Dijkstra

Computer languages of the future will be more concerned with goals and less with procedures specified by the programmer.Marvin Minsky

Take Lisp, you know its the most beautiful language in the world — at least up until Haskell came along.Larry Wall

A programming language is low level when its programs require attention to the irrelevant.Alan J. Perlis

The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense.Edsger Dijkstra

Lisp isn’t a language, it’s a building material.Alan Kay

Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot.Eric S. Raymond

Greenspun’s Tenth Rule of Programming: any sufficiently complicated C or Fortran program contains an ad hoc informally-specified bug-ridden slow implementation of half of Common Lisp.Philip Greenspun

A language that doesn’t affect the way you think about programming is not worth knowing.Alan Perlis

Lisp … made me aware that software could be close to executable mathematics.L Peter Deutsch

[Emacs] is written in Lisp, which is the only computer language that is beautiful.Neal Stephenson

Writing

Writing improves in direct ratio to the number of things we can keep out of it that shouldn’t be thereWilliam Zinsser

I didn’t have time to write a short letter, so I wrote a long one instead.Mark Twain

Writing is thinking on paperWilliam Zinsser

Learning

Success is a lousy teacher. It seduces smart people into thinking they can’t lose.Bill Gates

I, myself, have had many failures and I’ve learned that if you are not failing a lot, you are probably not being as creative as you could be, you aren’t stretching your imagination.John Backus

The only real mistake is the one from which we learn nothing.John Powell

Good judgment comes from experience and experience comes from bad judgment.Frederick “Fred” P. Brooks

You need the willingness to fail all the time. You have to generate many ideas and then you have to work very hard only to discover that they don’t work. And you keep doing that over and over until you find one that does work.John Backus

I have never let my schooling interfere with my education.Mark Twain

You can learn more from failure than success. In failure you’re forced to find out what part did not work. But in success you can believe everything you did was great, when in fact some parts may not have worked at all. Failure forces you to face reality.Frederick “Fred” P, Brooks

Project Management

I have always found that plans are useless, but planning is indispensable.Dwight D. Eisenhower

Later Equals Never.Dave LeBlanc (LeBlanc’s Law)

Weeks of programming can save you hours of planning.Anonymous

Adding manpower to a late software project makes it laterFrederick “Fred” P. Brooks

Nine people can’t make a baby in a month or sometimes the bearing of a child takes nine months, no matter how many women are assigned.Frederick “Fred” P. Brooks

Never put off till tomorrow what may be done day after tomorrow just as well.Mark Twain

Technology is dominated by two types of people: Those who understand what they do not manage. Those who manage what they do not understand.Archibald Putt (Putt’s Law)

It’s harder than you might think to squander millions of dollars, but a flawed software development process is a tool well suited to the job.Alan Cooper

When to use iterative development? You should use iterative development only on projects that you want to succeed.Martin Fowler

The best way to get a project done faster is to start sooner.Jim Highsmith

First law of Bad Management: If something isn’t working, do more of it.Tom DeMarco

How does a project get to be a year late? One day at a time.Frederick “Fred” P. Brooks

I love deadlines. I love the whooshing noise they make as they go by.Douglas Adams

Measuring programming progress by lines of code is like measuring aircraft building progress by weight.Bill Gates

If we wish to count lines of code, we should not regard them as “lines produced” but as “lines spent.”Edsger Dijkstra

People and Teams

True greatness is measured by how much freedom you give to others, not by how much you can coerce others to do what you want.Larry Wall

If we want to build great products, we need great people. If we want to attract and keep great people, we need great principles.Jim Highsmith

We can debug relationships, but it’s always good policy to consider the people themselves to be features. People get annoyed when you try to debug them.Larry Wall

The quality of results from any collaboration effort are driven by trust and respect.Jim Highsmith