It's a mistake to try to anticipate use cases you don't actually have or else you'll end up overengineering your solution.
I wish more people would think like this before sabotaging their perfectly good APIs with noise. I'm a huge fan of the Pareto principle in that regard. First and foremost, expose the 20% that allows me to be 80% effective. The rest can be figured out as we go, but at least, what you'll teach me today, I'll learn fast and will know well.
Especially if you want people to adopt your API's. If I'm looking at using a service and I have to choose between a complicated or a simple API, its an easy choice. Starting off, you want to solve the most annoying problems first.
Comments
It's a mistake to try to anticipate use cases you don't actually have or else you'll end up overengineering your solution.
I wish more people would think like this before sabotaging their perfectly good APIs with noise. I'm a huge fan of the Pareto principle in that regard. First and foremost, expose the 20% that allows me to be 80% effective. The rest can be figured out as we go, but at least, what you'll teach me today, I'll learn fast and will know well.
I agree with you 100%.
This is also known as the YAGNI principle: http://en.wikipedia.org/wiki/You_aint_gonna_need_it
Especially if you want people to adopt your API's. If I'm looking at using a service and I have to choose between a complicated or a simple API, its an easy choice. Starting off, you want to solve the most annoying problems first.