The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise.
Edsger DijkstraThe effective exploitation of his powers of abstraction must be regarded as one of the most vital activities of a competent programmer.
Edsger Dijkstra...Simplifications have had a much greater long-range scientific impact than individual feats of ingenuity. The opportunity for simplification is very encouraging, because in all examples that come to mind the simple and elegant systems tend to be easier and faster to design and get right, more efficient in execution, and much more reliable than the more contrived contraptions that have to be debugged into some degree of acceptability....Simplicity and elegance are unpopular because they require hard work and discipline to achieve and education to be appreciated.
Edsger Dijkstra