Nothing annoys me more than spending an hour, sometimes a lot more, trying to figure out if my use of library code is correct or if the library itself is broken.
In my experience, great developers go the extra mile to catch common misuse patterns and provide succinct and helpful error message and guidance.
Here’s my example of the day from Steve Sanderson’s Knockout.js library:
Error: Multiple bindings (with and template) are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.
Even if you don’t know a thing about the Knockout.js library, you can likely guess from the error message that this is good old fashioned pilot error on my part.
This is really amazingly helpful because if not for this message I likely would have spent 10-20 minutes coming to the same conclusion on my own as (a) this is my first Knockout.js project and (b) as usual I’m trying to do about the hardest thing I can think of 🙂
I look for this attention to detail when I take dependencies on other’s people’s code and strive to do the same in my own creations.
Nice job, Steve! Thanks!