Bits and pieces of software development and Unix wisdom, mixed with some humor.
A complex system that works is invariably found to have evolved from a simple system that worked. The inverse proposition also appears to be true: A complex system designed from scratch never works and cannot be made to work.
-- John Gall
The first step of any project is to grossly underestimate its complexity and difficulty.
-- Nicoll Hunt
Treat your code like poetry and take it to the edge of the bare minimum.
"That hardly ever happens" is another way of saying "it happens".
-- Douglas Crockford
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
There's nothing more permanent than a temporary hack.
-- Kyle Simpson
When in doubt, leave it out.
-- Joshua Bloch
The older I get, the more I believe that the only way to become a better programmer is by not programming.
-- Jeff Atwood
All programming languages are shit. But the good ones fertilize your mind.
-- Reg Braithwaite
The problem with object-oriented languages is they've got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.
-- Joe Armstrong (creator of Erlang)
What one programmer can do in one month, two programmers can do in two months.
-- Frederick P. Brooks
Programmers have to fight against the two most destructive forces in the universe: entropy and stupidity.
-- Damian Conway
Simple doesn't mean stupid. Thinking that it does, does.
-- Paul Krugman
The art of programming is the art of organizing complexity, of mastering multitude and avoiding its bastard chaos as effectively as possible.
-- E. W. Dijkstra
In carpentry you measure twice and cut once. In software development you never measure and make cuts until you run out of time.
-- Adam Morse
Hardware eventually fails. Software eventually works.
-- Michael Hartung
Perl - The only language that looks the same before and after RSA encryption.
-- Keith Bostic
The key is to acknowledge from the start that you have no idea how this will grow. When you accept that you don't know everything, you begin to design the system defensively... You should spend most of your time thinking about interfaces rather than implementations.
-- Nicholas Zakas
Well-designed components are easy to replace. Eventually, they will be replaced by ones that are not so easy to replace.
-- Sustrik's Law
Such is modern computing: everything simple is made too complicated because it's easy to fiddle with; everything complicated stays complicated because it's hard to fix.
-- Rob Pike
Development has two outputs... code & bugs
If it doesn't work, it doesn't matter how fast it doesn't work.
-- Ravera's observation on premature optimization
If you want to confuse your enemies, give them the source code. If you want to really confuse them, give them the documentation.
Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius - and a lot of courage to move in the opposite direction.
-- E. F. Schumacher, Small is Beautiful