Quotessence
Home / Topics / Software Design Quotes

Software Design Quotes

Browse 109 quotes about Software Design.

Related topics

Software Design Quotes

“Inheritance has recently fallen out of favor as a programming design solution in many programming languages because it’s often at risk of sharing more code than necessary. Subclasses shouldn’t always share all characteristics of their parent class but will do so with inheritance. This can make a program’s design less flexible. It also introduces the possibility of calling methods on subclasses that don’t make sense or that cause errors because the methods don’t apply to the subclass. In addition, some languages will only allow a subclass to inherit from one class, further restricting the flexibility of a program’s design. For these reasons, Rust takes a different approach, using trait objects instead of inheritance.”

“To the extent that AI mimics human intelligence without being sentient we have to weigh the output against the shortcomings. AI can help to cure certain diseases, but it will also replicate highly dysfunctional behaviors. Developers say they can control for these adverse behaviors. Yet behavioral psychologists themselves don't fully understand them.”

“Let me try to explain to you, what to my taste is characteristic for all intelligent thinking. It is, that one is willing to study in depth an aspect of one's subject matter in isolation for the sake of its own consistency, all the time knowing that one is occupying oneself only with one of the aspects. We know that a program must be correct and we can study it from that viewpoint only; we also know that it should be efficient and we can study its efficiency on another day, so to speak. In another mood we may ask ourselves whether, and if so: why, the program is desirable. But nothing is gained—on the contrary!—by tackling these various aspects simultaneously. It is what I sometimes have called "the separation of concerns", which, even if not perfectly possible, is yet the only available technique for effective ordering of one's thoughts, that I know of. This is what I mean by "focusing one's attention upon some aspect": it does not mean ignoring the other aspects, it is just doing justice to the fact that from this aspect's point of view, the other is irrelevant. It is being one- and multiple-track minded simultaneously.”

“When I am working on a problem, I never think about beauty but when I have finished, if the solution is not beautiful, I know it is wrong.”

“Know what you're talking about.”

“Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves.”

“Human beings either function as individuals or as members of a pack. There's a switch inside us, deep in our spirit, that you can turn one way or the other. It's almost always the case that our worst behaviour comes out when we're switched to the mob setting. The problem with a lot of software designs is that they switch us to that setting.”

“A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.”

“A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away.”

“Any intelligent fool can make things bigger and more complex... It takes a touch of genius - and a lot of courage to move in the opposite direction.”

“The greatest obstacle to discovery is not ignorance - it is the illusion of knowledge.”

“Know what you are talking about.”

“Design is where science and art break even.”

“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.”

“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.”

“It should be noted that no ethically-trained software engineer would ever consent to write a DestroyBaghdad procedure. Basic professional ethics would instead require him to write a DestroyCity procedure, to which Baghdad could be given as a parameter.”

“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.”

“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, not smart enough to debug it.”