Avoiding the Chasm

April 11, 2010

A Step Too Far

Filed under: Software — Tags: , , — vextasy @ 10:14 pm

AppleLogoOver at www.knowing.net Larry O’Brien discusses the craziness of of Steve Jobs’ latest edict – namely the changes to the iPhone developers licence that says:

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.
Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine,
and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link
to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

Larry’s article is a good read and I wholeheartedly agree with what he has to say. In a funny kind of way I feel a sense of relief at this latest ridiculous declaration from Apple. I wanted so much to develop for the Apple platform that I purchased a book on Cocoa programming with a view to progressing to iPhone development. I started to read the Objective C tutorial but the stench of the 1980s was so  overwhelmingly strong that, try as I might, I couldn’t complete the chapter. No one voluntarily writes code like that these days do they?

So my next thought was to investigate ways of using F# or C# to sidestep the inevitable insanity that would have resulted from Spaghetti-C Objective-C but now Steve Jobs has put a stop to all of that. A number of interesting products exist. The two that jumped out at me were – MonoTouch and Unity. But both of these break the new commandment and so have, as things currently stand, been removed from my list of options.

For those developers who have already made the commitment to prostitute themselves for the financial gain that comes from writing for the iPhone platform this is probably no big deal. But, for every other developer out there who was considering investing in the platform the message is a very negative one, and one that I think Apple will pay for in 12 or 18 months time when they no longer have such a perceived lead in the mobile application market.

Developers are used to working to an API. We view it as the dividing line between the bits that we have to write and the bits that the system will do for us – a contract of sorts. Most platforms are keen to expose their APIs in as many languages as possible and the choice of language and supporting toolset is usually left to the developer – after all a good craftsman knows which is the best tool for a job. In general, as long as we satisfy the requirements of the API we can use whatever steps we like to get there. But not with Apple. in his post on the subject Greg Slepak likens Steve Jobs to “the ignorant boss” who knows nothing about programming but still insists that you use a particular tool and that is exactly how it feels.

There is a good reason why few, if any, other big platforms are using Objective-C as the application development language of choice and that is because things have moved on in the last twenty years. There are now much more reliable ways to write applications and all good developers know that. Not only do Apple insist on choosing the language for us but they also restrict our freedom to choose our own tools and these two things together really are a step to far.

So the decision has been made for me – I now feel like a great weight has been lifted from my shoulders and I look forward to the freedom I’m going to have with the Android and the forthcoming Microsoft Windows 7 mobile platforms.

Perhaps I won’t upgrade my iPhone when they announce the new models this year but instead look further afield. After all, Apple are still fretting about multitasking when Microsoft are applying themselves to addressing the problems of multithreading in F# – and let’s face it Microsoft will be the good guys soon.



  1. Interesting: code-wise, Apple are still thinking 80s, and (as I’ve read somewhere recently) have the attitude of Microsoft from the 90s. As well as it’s doing now, there may well be some sort of backlash where Apple is no longer considered as ‘cool’ as it is now. MS changed – I wonder if Apple will change too.

    Comment by Stu Mitchell — April 11, 2010 @ 10:49 pm

    • I hope they do Stu, but at the moment it feels like they are heading too fast in the wrong direction to make a
      sudden U-turn. That’s my view from a developers perspective. From a commercial perspective they seem to
      be doing everything right and so there might be less of an incentive to keep the developers happy.

      Comment by vextasy — April 12, 2010 @ 8:47 am

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

Blog at WordPress.com.

%d bloggers like this: