Perfection is reached,
either when there is no longer anything to add,
or when there is no longer anything left to take away.
You can have any two: fast, clean, robust.
Discard the one which matters most, along with the other two if possible.
The more intricate the plot, the greater the renoun,
regardless of success.
A powerful way to Make it fail , Make it slow. and Make it inflexible
|I found a large number of programs perform poorly because of the language's tendency to hide "what is going on" with the misguided intention of "not bothering the programmer with details". [N. Wirth, "On the Design of Programming Languages", quoted in Kiczales p4]|
|Once the programmer is forced away from being able to use the old interface, and into the problem of designing one of their own, its quite likely they won't do as good a job. Simply put, the application programmer doesn't have the time (even if they do have the interest) to design the new interface as cleanly [...] [Kiczales p3]|
|([...E]ven if the interface ends up being just as (or more) elegant, one of the primary purposes of high-level standardization - to be able to easily read each other's code - has been defeated.) [Kiczales p3]|