A few things I’ve read lately state or imply that developer experience is what drives platforms. Paul Graham says: “If programmers used some other device for mobile web access, they’d start to develop apps for that instead [of iPhone].” Dharmesh Shah says explicitly: “What drives these technology cycles [thin client, thick client] as much as user experience is the developer experience.”
I disagree. I think user experience drives platforms.
A software platform is a bipartite network of developers and users, with classic bipartite network effects: Developers want their apps to have the most users possible; users want the platform with the most/best apps. In many (all?) such networks, one side dominates and controls the network; the other side follows them and often pays all the costs of the matchmaking. Sellers go where the buyers are. Companies spend tens of thousands of dollars per hire to get the best candidates. Men go to the bar or dating site with the most interesting women.
I’m not sure what determines which side of a network will dominate. It doesn’t seem to be based on which direction the money is flowing (or whether there’s money involved at all). I suspect it’s based on how many matches each side is looking to make, and how fungible they consider the other side to be. In commerce, in particular, each buyer is looking to buy one or maybe two cars, let’s say, and the decision matters a lot to him, whereas each dealer is looking to sell many cars, and doesn’t care so much whom he sells to—all dollars are the same.
In software, I think users dominate the network. Software is primarily an industry; every company has to calculate the ROI of development effort against each platform, and will ultimately choose the platform that gives them the most customers or users. Even hobbyists are motivated by attention and appreciation; they may not care about making money, but they want their software to be used and liked. Thus the same bipartite network effects are in play. (Those who are creating software purely as a personal project are a small minority, isolated by definition, and don’t drive the market.)
So users will go to the platform that has the best user experience, and developers will follow. Otherwise, why have so many applications been written for Windows? Most software engineers prefer the Unix development environment. But Unix, written by and for software professionals, dominates only in the server market, where the users are technical people—developers and admins. (Graham claims that “Our horror at that prospect [of developing for Windows] was the single biggest thing that drove us to start building web apps.” But I find it hard to believe that this was the primary driver, rather than free distribution, rapid iteration, and all the other benefits of apps in the cloud.)
Apple’s platform strategy with the iPhone was exact: First, build a large user base without relying on third-party apps—just by building a better phone. Then, once it’s the hottest device on the market, open the platform to developers. Now, by writing for one device, developers are on a platform getting 100 million downloads a month, several times the rate on other platforms. The consequence is that as much as developers hate the App Store and its review process, they will continue to develop for iPhone until another platform gives them the same ROI.
The only hope for Android or any other platform is to appeal not to developers, but to users. Like the downtown bar that offers ladies’-night specials in order to attract the men, attract the users and the developers will follow.