
Roman Neuhauser wrote:
I'd like to see the rationale. What's the benefit?
This is excerpted from pp. 19-21, where I'm not bothering to include ellipses to show where I've elided information. So this is a set of their words (mostly full sentences) knitted together to try to show their arguments, but it doesn't show all their text, so for the full story, you need to consult the book. [Begin pseudoquote] Many developers expect to learn the basics of a new framework very quickly. By experimenting with the framework on an ad hoc basis. The initial encounter with a badly designed API can leave a lasting impression of complexity and discourage some from using the framework. This is why it is very important for frameworks to provide a very low barrier for developers who just want to experiment. Many developers experiment with an API to discover what it does and then adjust their code to get their program to do what they really want. There are several requirements that APIs must meet to be easy to experiment with: - It has to be easy to start using an API, regardless of whether it does what the developer wants it to do. A framework that requires an extensive initialization or instantiating several types and hooking them together is not easy to experiment with. - It has to be easy to find and fix mistakes resulting from incorrect usage of an API. For example, APIs should throw exceptions clearly describing what needs to be done to fix the problems. Scott