Barbara Liskov

Computer Scientist American Born 1939 (age 87)

Turing Award winner for contributions to data abstraction and programming.

378 quotes

"The most reusable code is often code written to solve a specific problem very well."
"When your system has too many configuration options, you've failed to make good default choices."
Leadership
"The interfaces between teams are as important as the interfaces between components."
"A design that requires heroic efforts to implement is probably a design that needs reconsideration."
"The true test of your design is not whether it works in the simple cases, but whether it handles the edge cases gracefully."
Wisdom
"Code is read much more often than it is written; optimize for the reader."
"When you find yourself writing the same comment multiple times, you've found a place where the code should be clearer."
"A type system is a conversation with your future self about what your code promises to do."
"The most dangerous assumption in software is that the current way is the only way."
"Design with principles, not with rules; rules create brittleness, principles create resilience."
Wisdom
"Every successful system tells a story about how its designers understood the problem."
"The progression from monolith to components should be driven by genuine separation of concerns, not fashion."
"A well-designed language or framework should guide users toward correct solutions naturally."
"The test of a principle is whether it consistently helps you make better decisions."
"The key to good software design is understanding what the user really needs, not what they think they want."
Technology
"Abstraction is not about hiding complexity; it's about revealing the essential and obscuring the irrelevant."
Wisdom
"A program should do one thing well, and do it with clarity that others can understand and build upon."
Work
"The best code is code that someone else can read and improve without needing to ask you questions."
Education
"In programming, as in life, consistency creates trust and trust enables progress."
Success
"Data structures are the foundation of good programming; get them right and the algorithms follow naturally."
Knowledge
"When you design an interface, you are making a promise to future programmers about what your code will do."
Leadership
"Modularity is not a luxury; it is the only way to manage complexity in large systems."
Strength
"The measure of a good design is how easily it can be changed without breaking what came before."
Creativity
"We must think about correctness from the very beginning, not as an afterthought."
Truth
"Every design decision carries a cost; the art is knowing which costs are worth paying."
Wisdom
"A well-designed system anticipates the mistakes humans will make and makes them less costly."
Patience
"The substitution principle is not just a rule; it is a reflection of how we should think about relationships between concepts."
Philosophy
"Good design requires empathy—understanding not just what the machine needs, but what the person using it needs."
Kindness
"Inheritance should model a genuine relationship, not just a mechanism for code reuse."
Relationships
"Clarity of intent in code is as important as correctness in execution."