I saw an interesting piece on Microsoft trying to woo Apple iOS developers over to Windows Phone. This got me thinking about developer platforms, and how some companies have limited themselves by limiting their development tools. The idea that I’ve been mulling for a while: if you want developers to build for your device, make your tools available to them on the platform they use. What does this mean? If you want iOS developers, you need to make sure your development system is available on OS X. It also applies in other directions.
If You Want To Build For iOS
Right now, if you want to build apps for iOS, you have to get yourself a Mac. The official way to build apps is using XCode. Yes, I am aware that there are other alternatives for some stages of development, but ultimately, you need XCode to submit the app for review. For now, this doesn’t appear to be a limiting factor for iOS apps. Lots of people are building them, and more are starting every day. That works well for Apple, because it means they also sell Macs to people who ordinarily might not have purchased one.
But that may change in time, in which case Apple may want to consider a version of XCode for Windows, much like they have iTunes and QuickTime for Windows. It wouldn’t surprise me if there was an explosion of iOS apps if Apple did this, because they would be lowering a barrier. This barrier isn’t just for small independent developers who may not have a lot of ready cash to invest in a Mac, but for larger development shops who are resistant to adding Macs to their infrastructure.
But If You Want iOS Developers…
Right now, if you want to build apps for Windows Phone, you have to have a Windows machine to run the Visual Studio toolset. Guess what? There are a lot of iOS developers who don’t own a Windows machine, don’t want to own a Windows machine, and don’t want to run the stuff in a VMWare or Parallels. They want their tools to run natively on the machine they have.
Google has figured this one out from the start, and RIM finally got a handle on it for Blackberry 10. Both offer their developer tools on OS X, Windows and Linux. I don’t have to put up with multiple machines if I don’t want to, or have a machine with the juice necessary to run a reasonable virtual machine with the appropriate operating system. Google has known, and RIM has learned, that not all developers use Windows, and that there are substantial developer bases on Linux and Mac. Further, if you want to encourage iOS developers to build for your platform, then removing any barriers that prevent that at least increases your odds they’ll be interested.
But Microsoft still doesn’t offer Visual Studio for the Mac. If you want to build for Windows Phone, you need a Windows machine (physical or virtual). There are no other options here. The result: Microsoft continues to put a barrier to developers. Sure, it isn’t exactly huge, but it is enough that some small independent developers will think twice about supporting the platform.
Everyone Has Their Preferences
Many developers have a preferred platform. For me right now, that is the Mac, in part because I prefer building apps for iOS over other mobile platforms, and in part because it’s BSD UNIX under the covers, and it’s a bit of nostalgia to have a BSD system I can carry with me :-). But I have colleagues that prefer using Linux, in part because it best supports the technologies they use for their work. I have others that prefer using Windows. To each his own. I lost the “religious fervour” that came with the platform wars long ago. If a project requires that I use Linux or Windows, then I use Linux or Windows. I’m comfortable on any of them.
As with anything, choosing a big enough target (and an appropriate target) is important for any product’s success. When it comes to developer tools, you need to go where the developers are. If you want iOS developers to look at your mobile platform, put your tools on the Mac. If you want Windows developers, then put your tools on Windows. It’s about removing barriers.