Kindel is a former Microsoft guy behind a lot of Windows tools including Windows Media Center where I had the opportunity to work with him during a couple of MCE projects we did while I was working for Schematic (now Possible Worldwide).
I did some research around since at this point of my career I have been involved in the design, development, publishing and maintenance of several APIs for different projects, platforms and companies. Designing good APIs is hard, and designing robust and maintainable APIs is even harder. I agree on that with Charlie. Once you publish an API you can't change it...you have to live with it forever...until you have to kill it !
Here's a summary of the article and my personal opinion:
- APIs need to be well designed and proved from the beginning.
- Public APIs will be used in ways you can't foresee.
- Once an API has clients and users, you will need to support it forever.
- APIs are better when they are easy to use, consume and understand.
- APIs are better when they are simpler and condensed.
- APIs should be public only when there's a strong reason and a real world scenario for them.
I have published a few posts about APIs implementation taking advantage of Microsoft's WCF Framework to expose APIs that can be exposed as SOAP or HTTP endpoints, which I have used in several projects with great results and I believe the article and the document are quite relevant and helpful for everybody out there dealing with public APIs.
Although I know I'm not adding a lot of value to Kindel's already published post, I wanted to log this on my blog and make sure to share the document's link with all of you. I really hope it helps.