To the pessimist, the glass is half empty.
To the optimist, the glass is half full.
To the engineer, the glass is twice as big as it needs to be.
Any problem in computer science can be solved with another layer of indirection.
But that usually will create another problem.
— David Wheeler