Shawn Hargreaves has been writing about the upcoming changes in XNA 4.0 (interesting stuff). The topic is obviously one that resonates with me given my own recent posts.

I particularly enjoyed this post. Back in 2007, when SlimDX was a young API, we had the luxury of having very few serious users. When we realized we’d screwed something up, we just changed it, and it didn’t matter how much that change would impact a client code. There were no clients.

But now, three years later, that’s no longer the case. We have quite a few users; SlimDX has been used in commercially released games and applications, and helps power internal content production tools used by professional studios like Zipper Interactive. We no longer have the luxury of implementing sweeping changes on a whim, no matter how correct they may be. We have practical realities to consider: providing sufficient advance warning and documentation. Developing upgrade paths. Transitioning deprecated versions of the API to “support mode” for an appropriate period of time.

I believe that breaking changes are for the best when they actually improve the overall health of the API. But they’re also pretty scary.