Quotes
- My favourite definition of an intellectual: Someone who has been educated beyond his/her intelligence. - Arthur C. Clarke
- A completely predictable future is already the past. - Arthur C. Clarke
- Just because you are doing a lot more, doesn't mean you are getting a lot more done. - Denzel Washington
- Don't confuse movement with progress. - Denzel Washington
- It seems that perfection is attained not when there is nothing more to add, but when there is nothing more to subtract. - Antoine de Saint-Exupery
- No functional specification survives first contact with reality. We literally don't know what we're trying to make. - Doug Crockford
- 'That hardly ever happens' is another way of saying 'it happens'. - Doug Crockford
- For no cost, by adopting a more rigorous style, many classes of errors can be automatically avoided. - Doug Crockford
- A wise man knows everything. A shrewd one, everybody.
- Programs must be written for people to read, and only incidentally for machines to execute. - Abelson & Sussman
- That language is an instrument of human reason, and not merely a medium for the expression of thought, is a truth generally admitted. - George Boole, quoted in Iverson's Turing Award Lecture
- ...the greatest single programming language ever designed. - Alan Kay, on Lisp
- Lisp is a programmable programming language. - John Foderaro, CACM, September 1991
- Lisp isn't a language, it's a building material. - Alan Kay
- 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.
- Any sufficiently complicated C or Fortran program contains an ad hoc informally-specified bug-ridden slow implementation of half of Common Lisp... Including Common Lisp. - Robert Morris in response to Greenspun
- 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 Dijkstra
- Lisp is a programmer amplifier. - Martin Rodgers (first said by Chuck Moore about Forth)
- A foolish consistency is the hobgoblin of little minds... - Ralph Waldo Emerson
- I object to doing things that computers can do. - Olin Shivers
- Imprisoned in every fat man a thin man is wildly signaling to be let out. - Cyril Connolly
- Most papers in computer science describe how their author learned what someone else already knew. - Peter Landin
- The key to performance is elegance, not battalions of special cases. - Jon Bentley and Doug McIlroy
- The behavior you see a tool being used for is the behavior that tool encourages. - Gary Bernhardt
- Any program that can be written in javascript will eventually be written in javascript. - Attwood's law
- Demonstrations are half cheats and half optimization.
- Fast, small, easy to understand - pick any two!
- The number you have dialed is imaginary. Rotate phone 90 degrees and try again.
- If brute force doesn't solve your problems, then you aren't using enough.
- 2 + 2 = 5 for extremely large values of 2.
- A bus station is where a bus stops. A train station is where a train stops. On my desk I have a workstation.
- Never test for an error condition you don't know how to handle. - Steinbach's Guideline for Systems Programmers
- If I had a nickel for every time I've written for (i = 0; i < N; i++) in C I'd be a millionaire. - Mike Vanier
- Make each program do one thing well. To do a new job, build afresh rather than complicate old programs by adding new features. - Doug McIlroy
- Expect the output of every program to become the input to another, as yet unknown, program. Don't clutter output with extraneous information. Avoid stringently columnar or binary input formats. Don't insist on interactive input. - Doug McIlroy
- Design and build software, even operating systems, to be tried early, ideally within weeks. Don't hesitate to throw away the clumsy parts and rebuild them. - Doug McIlroy
- Use tools in preference to unskilled help to lighten a programming task, even if you have to detour to build the tools and expect to throw some of them out after you've finished using them. - Doug McIlroy
- This is the Unix philosophy: Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface. - Doug McIlroy
- You can't tell where a program is going to spend its time. Bottlenecks occur in surprising places, so don't try to second guess and put in a speed hack until you've proven that's where the bottleneck is. - Rob Pike
- Measure. Don't tune for speed until you've measured, and even then don't unless one part of the code overwhelms the rest. - Rob Pike
- Fancy algorithms are slow when n is small, and n is usually small. Fancy algorithms have big constants. Until you know that n is frequently going to be big, don't get fancy. - Rob Pike
- Fancy algorithms are buggier than simple ones, and they're much harder to implement. Use simple algorithms as well as simple data structures. - Rob Pike
- Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming. - Rob Pike
- Rule 6. There is no Rule 6. - Rob Pike
- Rule of Modularity: Write simple parts connected by clean interfaces.
- Rule of Clarity: Clarity is better than cleverness.
- Rule of Composition: Design programs to be connected to other programs.
- Rule of Separation: Separate policy from mechanism; separate interfaces from engines.
- Rule of Simplicity: Design for simplicity; add complexity only where you must.
- Rule of Parsimony: Write a big program only when it is clear by demonstration that nothing else will do.
- Rule of Transparency: Design for visibility to make inspection and debugging easier.
- Rule of Robustness: Robustness is the child of transparency and simplicity.
- Rule of Representation: Fold knowledge into data so program logic can be stupid and robust.
- Rule of Least Surprise: In interface design, always do the least surprising thing.
- Rule of Repair: When you must fail, fail noisily and as soon as possible.
- Rule of Economy: Programmer time is expensive; conserve it in preference to machine time.
- Rule of Generation: Avoid hand-hacking; write programs to write programs when you can.
- Rule of Optimization: Prototype before polishing. Get it working before you optimize it.
- 90% of the functionality delivered now is better than 100% of it delivered never.
- Premature optimization is the root of all evil. - Donald Knuth
- Rule of Diversity: Distrust all claims for `one true way`.
- Rule of Extensibility: Design for the future, because it will be here sooner than you think.
- The object of golf is to play the least amount of golf.
- If a pickpocket meets a saint, he sees only his pockets. - Hari Dass Baba
- If I forget my password it means my past self has outwitted my present self. - from Reddit
- Whenever you get people acting intelligently, it's often because they belong to institutions with rules that are designed to make up for the idocies of any individual person. - Steven Pinker
Quotes By Dijkstra
- Advice to a promising researcher: Only do what only you can do.
- The problems of the real world are those that remain when you ignore their known solutions.
- Always design your program as a member of a whole family of programs, including those that are likely to succeed it.
- Avoid operational reasoning like the plague.
- Separate concerns.
- The prisoner falls in love with his chains.
- A programming language is a tool that has a profound influence on our thinking habits.
- I pray daily that more of my fellow programmers may find the means of freeing themselves from the curse of compatibility.
- The program and the correctness proof grow hand in hand.
- Brainpower is by far our scarcest resource.
- In their capacity as a tool, computers will be but a ripple on the surface of our culture. In their capacity as intellectual challenge, they are without precedent in the cultural history of mankind.
- 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.
- For the absence of a bibliography I offer neither explanation nor apology.
- Progress is possible only if we train ourselves to think about programs without thinking of them as pieces of executable code.
- This solution is gloriously non-deterministic.
- Ik hou van wiskunde, maar spaar me de mathematen. [`I love mathematics, it's the mathematicians I cannot stand.']
- If somewhere you read `in depth', ignore it.
- Nothing is as expensive as making mistakes.
- Program testing can at best show the presence of errors, but never their absence.
- Software Engineering is Programming when you can't.
- We must give industry not what it wants, but what it needs.
- Waiting is a very funny activity: you can't wait twice as fast.
- It helps hand-eye coordination if, as you're doing your formulae, you gently sing the notation.
- Do not try to change the world. Give the world the opportunity to change itself.
- While current curricula extensively teach existing mathematics, they pay scant attention to the doing of mathematics, i.e., to the question of how to design and to present solutions.
- Teaching to unsuspecting youngsters the effective use of formal methods is one of the joys of life because it is so extremely rewarding... within a few months, their concept of intellectual culture has acquired a radically new dimension.
- I mean, if 10 years from now, when you are doing something quick and dirty, you suddenly visualize that I am looking over your shoulders and say to yourself, `Dijkstra would not have liked this', well that would be enough immortality for me.
- Many mathematicians derive part of their self-esteem by feeling themselves the proud heirs of a long tradition of rational thinking; I am afraid they idealize their cultural ancestors.
- The traditional mathematician recognizes and appreciates mathematical elegance when he sees it. I propose to go one step further, and to consider elegance an essential ingredient of mathematics: if it is clumsy, it is not mathematics.
- Don't compete with me: firstly, I have more experience, and secondly, I have chosen the weapons.
- Aim for brevity while avoiding jargon.
- Maintaining a large range of agilities - mental and physical - requires regular exercise [..]. That is why the capable are always busy.
- Mathematicians are like managers - they want improvement without change.
- And even now my first reaction to formulae, written by someone else, is one of repulsion - in particular when an unfamiliar notational convention is used - and when reading an article, my natural reaction is to skip the formulae.
- Show any mathematician a really elegant argument that is new for him: at the moment it becomes his intellectual property, he starts to laugh!
- ... I had already come to the conclusion that in the practice of computing, where we have so much latitude for making a mess of it, mathematical elegance is not a dispensable luxury, but a matter of life and death.
- For me, the first challenge for computing science is to discover how to maintain order in a finite, but very large, discrete universe that is intricately intertwined. And a second, but not less important challenge is how to mould what you have achieved in solving the first problem, into a teachable discipline...
- Simplicity and elegance are unpopular because they require hard work and discipline to achieve and education to be appreciated.