logo

Quotes About Programming

abstraction is evil. Code is anti-evil, and clean code is perhaps divine.
~ Robert C. Martin
Lots of very funny code is written because people don't take the time to understand the algorithm.
~ Robert C. Martin
What makes a clean test? Three things. Readability, readability, and readability.
~ Robert C. Martin
Programmers can practice in a similar fashion using a game known as ping-pong.8 The two partners choose a kata, or a simple problem. One programmer writes a unit test, and then the other must make it pass. Then they reverse roles.
~ Robert C. Martin
Programming is an act of creation. When we write code we are creating something out of nothing. We are boldly imposing order upon chaos. We are confidently commanding, in precise detail, the behaviors of a machine that could otherwise do incalculable damage. And so, programming is an act of supreme arrogance. Professionals
~ Robert C. Martin
The problem that Dijkstra recognized, early on, was that programming is hard, and that programmers don't do it very well.
~ Robert C. Martin
We are confidently commanding, in precise detail, the behaviors of a machine that could otherwise do incalculable damage. And so, programming is an act of supreme arrogance.
~ Robert C. Martin
Consider, for example, the truly hideous practice of creating a variable named klass just because the name class was used for something else.
~ Robert C. Martin
OO imposes discipline on indirect transfer of control.
~ Robert C. Martin
Don't refer to volatile concrete classes. Refer to abstract interfaces instead. This rule applies in all languages, whether statically or dynamically typed. It also puts severe constraints on the creation of objects and generally enforces the use of Abstract Factories.
~ Robert C. Martin
The problem isn't the simplicity of the code but the implicity of the code (to coin a phrase): the degree to which the context is not explicit in the code itself.
~ Robert C. Martin
Don't override concrete functions. Concrete functions often require source code dependencies. When you override those functions, you do not eliminate those dependencies—indeed, you inherit them. To manage those dependencies, you should make the function abstract and create multiple implementations.
~ Robert C. Martin
In general output arguments should be avoided. If your function must change the state of something, have it change the state of its owning object.
~ Robert C. Martin
Variables in functional languages do not vary.
~ Robert C. Martin
All race conditions, deadlock conditions, and concurrent update problems are due to mutable variables. You cannot have a race condition or a concurrent update problem if no variable is ever updated. You cannot have deadlocks without mutable locks.
~ Robert C. Martin
This means that the UI and the database can be plugins to the business rules. It means that the source code of the business rules never mentions the UI or the database.
~ Robert C. Martin
In Clojure, an atom is a special kind of variable whose value is allowed to mutate under very disciplined conditions that are enforced by the swap! function.
~ Robert C. Martin
Structured programming is discipline imposed upon direct transfer of control.
~ Robert C. Martin
Object-oriented programming is discipline imposed upon indirect transfer of control.
~ Robert C. Martin
It is no longer sufficient that every programmer does what is right in their own eyes. Some disciplines, standards, and ethics will come. The decision before us today is whether we programmers will define them for ourselves or have them forced upon us by those who don't know us.
~ Robert C. Martin
Functional programming is discipline imposed upon variable assignment.
~ Robert C. Martin
The only way to make the deadline—the only way to go fast—is to keep the code as clean as possible at all times.
~ Robert C. Martin
Because this ratio is so high, we want the reading of code to be easy, even if it makes the writing harder. Of course there's no way to write code without reading it, so making it easy to read actually makes it easier to write.
~ Robert C. Martin
Cuteness in code often appears in the form of colloquialisms or slang. For example, don't use the name whack() to mean kill(). Don't tell little culture-dependent jokes like eatMyShorts() to mean abort(). Say what you mean. Mean what you say.
~ Robert C. Martin