The APIs of companies like Twitter and Facebook seem to have a history of complaints from developers as they constantly change to the detriment of devs and the benefit of the company. There seems to be a cycle of openness at the start to encourage growth and then after some time the company with the API starts to make it more strict and tightens how devs can use it.
With all the lessons over the past few years, is there a model now for an API which can better maintain a good dev relationship without really hampering the company with the API?