Why doesn’t Apple allow developers easy access to their platform? Well, that is what this post will be about. As Apple releases more hardware it seems as though they are becoming more and more closed when it comes to opening up their API to developers, or at least giving developers some choice in how they develop their applications).

As a point of full disclosure, in my day job I am a software engineer/Systems Architect, mostly on the Windows Platform. I am not prejudice on any platform, in fact I have both Windows and Linux running, as well as deal with ESX, Citrix,Mobile,etc platforms. I don't really care about the platform as long as I can get or write the application that the user needs.

Now, I am not saying here that you cant write any applications for the MAC, I absolutely know that you can (The iPhone is a different story, but more on that later). What my point here is that the initial cost of writing those applications is pretty substantial compared to other platforms, like BlackBerry/Windows Mobile/Android and that Apple needs to open up more and embrace the developer community, we are not all evil :).

For example, If I want to write a native application for the MAC, lets say in Objective C and test it. I will need the following.

1 Mac device (A decent MacBook or iMAC). Approximate cost 1200.00 –1300.00. Now I already have some Windows devices and some Linux devices, why cant i use one of those hardware devices?

Now, if I wanted to say, write that application in Java, I certainly could, but i would still have no way to integrate with the native API’s on the MAC platform and certainly no way to test it, since I would not have a MAC device. Once again I would have to go out and buy one.

As a developer, I already have multiple Linux and Windows devices, so why in fact would I need to purchase and additional hardware device in order to develop applications for the MAC?

Lets talk about the iPhone/iPod Touch. Awesome devices and the SDK does come with an emulator but that only runs on MAC, and in order to write an application for them, you will need to write the code in XCode, since the language for iPhone development is Objective C. Once again sounds like a MacBook or iMac will need to be purchased in order to do any dev for this device. Cha-Ching…

Lets compare that with three other mobile platforms, Windows Mobile, BlackBerry and Google’s Android. All three of these platforms offer SDK’s and IDE’s that run on the windows platform with BlackBerry and Android offering a Linux distribution of their SDK’s and IDE’s. So now as a developer I can write applications for the Windows Mobile platform, Android platform and BlackBerry platform all from the same device. No need to have a separate hardware device just for writing code for that specific device. And if I was a diehard Linux fan, i could use a virtualization technology like VirtualBox to standup a Linux VM and away I go. No such luck with Apple though, still need a physical device.

By the way, both Google Android and BlackBerry use the Eclipse IDE as their IDE for developing applications for their platform, where Microsoft use its Visual Studio product for developing applications for windows mobile. Eclipse is an open source IDE and Microsoft has free version of their VS product called Visual Studio Express.

Soapbox: One of the other issues I have seen specifically when it comes to Apple’s iPhone/Touch is the amount of control that Apple wants to impose on the applications that can get installed on your iPhone/Touch. This is eerily like the big brother syndrome and as a user/developer I don't want a company deciding which applications are good for me. I purchased the device as well as the service, I should be able to decide what applications I want on my device. This is why other platforms, like is one of the reasons why android, blackberry and Windows Mobile are more developer friendly, because *you* can decide what applications are important to you. Look, I understand that Apple doesn't want some rogue applications out there, but don't we, as consumers, have the obligation to do the do diligence of researching an application before installing on our device? Why should Apple be the big brother?

A little more on Apple being more closed than it is open. One example of this is in the mobile space, all of the mobile platform vendors i have mentioned above offer access to all the hardware on the phone, things like the dialer, camera, accelerator, etc. Good for the developer. But the iPhone has certain restrictions when it comes to the dialer and other features, plus if you use any undocumented features, you know like the ones that apple can use, you are in violation of your agreement. Not very conducive to developing cutting edge applications, at least not for the Apple line of products.

So, In order to write any applications for the Apple line of products, developers will have to shell out at least 1200.00 bucks to just get started. Not chump change when it comes to this economy and certainly not very embracing of Apple (although I’m sure the stockholder like this mechanism :))

How can Apple help address this high price entry point for developers and embrace more people developing for their platform? Well, I say that Apple should offer a developers license of their OS  platform (Citrix does this, as well as VMWare). Lets say for $79.00. But that is only half the battle. That still doesn't address the hardware issue. I believe that Apple, in this developer's license should allow their OS X to be able to be run from x86 based hardware, and really should be allowed to be run in a virtualized environment. This would open up a huge amount of developers to the MAC platform and I’m sure would produce so awesome applications that everyone would benefit from.

In addition to this, I also believe that Apple should offer some type of solution to let users install whatever application they want on their phone. There is a reason why so many people are jail breaking their phones.

Anyways, that’s my .02.

Please tell me what you think, you can comment from my blog of follow me on twitter. twitter.com/johnmcbride