In many ways, instead of asking how many software platforms can the market deal with isn't as important as many think it is. The most important question is how do ensure that all software platforms play along with each other nicely, which is something of vital importance to both users and developers.
Why making software platforms that play along nicely more important the number than the number of platforms? Mainly because restricting the number of platforms a user has access to, also restricts the user's ability to choose the platform that better suits his, or her, particular needs. Users should be the ones shaping the market, not the market shaping the users.
The answer to this problem is both simple and complex at the same time, since the to get to the point where an user can choose any software platform there needs to be open standards for all to work with.
Having open standards simplifies things for all mainly because we all would have the same things to work with, meaning that one doesn't have to worry about on what platforms will it work with. Which means that users can focus on what platform works better for their particular work flow, while developers can focus on adding value to their platforms.
The problem mainly resides on creating and maintaining those standards truly open for all those who need to work with them. The temptations to try to keep potential adversaries out will always be there, and not sharing updates to the standard in order to have an edge over competition.
Not only that, some companies have vested interests in making sure that open standards don't become the norm.
So, it's on the users and small developers, to make sure that open standards to become the norm. For users having them means true freedom of choice, and for small developers means a more lever playing field with access to a wider audience.