software design
The purpose of abstracting is not to be vague, but to create a new semantic level in which one can be absolutely precise.
— Edsger W. DijkstraJoe's law: Frameworks grow in complexity until nobody can use them.
— Joe ArmstrongClearly, I reject the view that there is one way that is right for everyone and for every problem
— Bjarne StroustrupI have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone.
— Bjarne StroustrupThe advance of technology is based on making it fit in so that you don't really even notice it, so it's part of everyday life.
— Bill GatesData 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 PikeThe code might be organized in a hierarchy, but the solution has more dimensions than will fit in a hierarchy. So when you discover a solution in a dimension that crosses across the hierarchy, you just have to go where the solution takes you and put the solution in.
— Ward CunninghamMost adults have some childlike fascination for making and arranging larger structures out of smaller ones.
— Marvin MinskyThe finest pieces of software are those where one individual has a complete sense of exactly how the program works. To have that, you have to really love the program and concentrate on keeping it simple, to an incredible degree.
— Bill GatesA service starts with the satisfaction and needs of its users in mind and is defined by those two things. Spending core resources and time repeatedly on the optimisation of the obvious characteristics is basically the mania of novice internet entrepreneurs.
— Ma HuatengThe problem with being consistent is that there are lots of ways to be consistent, and they're all inconsistent with each other.
— Larry WallUgly problems often require ugly solutions. Solving an ugly problem in a pure manner is bloody hard.
— Rasmus LerdorfMathematics is the kingdom of specification and computation is the kingdom of implementation. It's very important to understand this difference.
— Joscha BachSimplicity is the shortest path to a solution.
— Ward CunninghamMost 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.
— Alan KayWiki pages are very much free form. Across the whole wiki there is a hypertext structure, but on a given page, within the versatility of your command of your natural language, you can say whatever needs to be said.
— Ward CunninghamIf there is ever a science of programming language design, it will probably consist largely of matching languages to the design methods they support.
— Robert FloydObject-oriented [programming] never made it outside of Xerox PARC; only the term did.
— Alan KayThe novice-friendly software is more like a misbehaving dog: it shits on the floor, it destroys things, and stinks – the novice-friendly software embodies the opposite of what computer people have dreamed of for decades: artificial stupidity. It's more human.
— Erik NaggumGood design is also an act of communication between the designer and the user, except that all the communication has to come about by the appearance of the device itself. The device must explain itself.
— Donald Norman