Barbara Liskov
Developed the Liskov Substitution Principle and a pioneer in programming language design.
Most quoted
"If for each object o1 of type S there is an object o2 of type T such that for all programs P defined in terms of T, the behavior of P remains unchanged when o1 is substituted for o2, then S is a subtype of T."
— from A Behavioral Notion of Subtyping, 1994
"If for each object o1 of type S there is an object o2 of type T such that for all programs P defined in terms of T, the behavior of P is unchanged when o1 is substituted for o2 then S is a subtype of T."
— from Paper, 1987
"If you want to build a ship, don't drum up people to collect wood and don't assign them tasks and work, but rather teach them to long for the endless immensity of the sea."
— from Attributed (often to Saint-Exupéry, but used in her context)
All quotes by Barbara Liskov (315)
The ability to manage state in concurrent systems is a major challenge.
We need to think about the long-term maintainability of the software we build.
The Liskov Substitution Principle helps ensure that our type hierarchies are sound.
Formal specifications can be a powerful tool for understanding and verifying software.
The evolution of programming languages reflects our evolving understanding of how to build software.
It's important to have a strong theoretical foundation in computer science.
The challenges of building robust distributed systems are still very much with us.
My research has always been about bridging the gap between theory and practice.
The Liskov Substitution Principle is not just an academic concept; it has real-world implications for software quality.
We need to design systems that are resilient to failures.
The power of abstraction allows us to manage complexity by focusing on what's important.
If you have a procedure that takes an object of type T, and you substitute an object of type S, where S is a subtype of T, then the procedure should still work correctly.
A good abstraction is worth a thousand lines of code.
The most important property of a program is whether it accomplishes the user's intent.
You can't just throw a bunch of features together and call it a system. It has to be designed.
If you don't understand it, you can't build it.
Complexity is the enemy of reliability.
The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be more precise.
Good design is simple. Bad design is complicated.
If you can't explain it simply, you don't understand it well enough.
Contemporaries of Barbara Liskov
Other Computer Sciences born within 50 years of Barbara Liskov (1939).