"The cleaner and nicer the program, the faster it's going to run. And if it doesn't, it'll be easy to make it fast."
Joshua Bloch
When the hierarchy is correct, anyone can successfully create a new subclass.
It's not at all important to get it right the first time. It's vitally important to get it right the last time.
Andy Hunt and Dave Thomas
No tool works perfectly in every context, and much grief visits projects who try to use tools outside their expiration date.
The less code does the more valuable it is