OS4.0 and the Clause of Doom

There much rhetoric on the 'net at the moment regarding clause 3.3.1 from the OS4.0 license agreement which appears that, by demanding that all iPhone apps are written using Objective-C, C, C++ or Javascript, it prohibits the use of MonoTouch, Unity3D, Flash CS5, and several other tools.

There's an interesting blog post by John Gruber that goes some way to explain, in his opinion, why Apple changed that clause. All sound reasoning with one exception, John argues that part of Apple's reasoning for this is to ensure that iPhone apps are locked into the platform. Apart from the fact that apps written with MonoTouch can't be loaded on any other platform without serious work, i.e. rewriting, Apple are effectively shooting themselves in the foot.

By forcing developers to either develop for iPhone or not they are going prevent a lot of great apps coming to the iPhone, or at least make sure that other platforms are well ahead of the iPhone when said apps do make it. I was very excited about MonoTouch, I'm primarily a .Net developer and particularly a developer without the time to invest in learning Objective-C. MonoTouch offers me a way to join the iPhone platform without such a huge learning curve, yes, I still have to learn CocoaTouch (as MonoTouch does so much layer over it but interface with it) but it's less than a rather abstract paradigm of a C implementation with objects. The C programmer buried within me wants to spit on the floor at that concept (yes, I know that's what C++ is in essence but the constructs seem more intuitive to me).

Without being able to see Flash CS5 and how it implements iPhone application generation, is it just Actionscript on iPhone or is it a Flash projector for iPhone, it's hard to properly judge the target of Apple's machinations. We've all got a good idea on this but if this is the case then it seems rather anti-competitive and blatantly so, in that, good luck Apple, I hear the sound of a tidal wave of legal paperwork crashing your way.

The good news is that this is the Beta of OS 4.0, Apple still have time and opportunity to relax that clause; to return it to it's original form and make everyone happy. I'll be honest, even as a Flash developer (a large part of my income of the past few years), I've no plans to make use of CS5 for iPhone development so there I'm indifferent; however, C# is important to me and it should be important to Apple. Mono and MonoTouch have the potential to allow us to develop apps for Windows, Linux, OS X, iPhone, iPad, etc. albeit without full cross-platform libraries, but with a common paradigm for the underlying language which has got to increase the potential for iPhone/iPad/iPod apps many fold.

Come on Apple, be the adult here and re-open this market to broader innovation.

What is Freedom?

I follow a fair few people on Twitter including a number of well-known developers, one of which drew my attention to the current reported animosity between Richard Stallman and Miguel de Icaza. When I say between, it's largely Richard having animosity toward Miguel, albeit carefully muted.

I read a post on Miguel's blog that had resulted in a flame-war with supporter defending him and the antagonists trotting out the same old tired rhetoric about *their* freedoms and how they are infringed by everyone else. I'd like to think that this isn't the kind of thing that Richard wanted to incite (I don't know him personally so I'm erring on the side of positivity), nor Miguel (again, I don't know the man but his immense patience with the flamers doesn't imply a desire to incite argument).

It just caused me to notice that the first casualty in this war over freedom, is freedom itself?

Let me explain myself. I have freedom, the freedom of choice in most things. I even have freedom in the Law, I know the rules (or most of them) and I can choose to break them or not. I know the consequences. However, the 'freedom protagonists' want to remove my freedom of choice for their view of the way it should be. While I'm more than happy to allow them the opportunity to follow their own beliefs and to live their lives through alternative products that meet their stringent requirements, apparently I can't be allowed to continue to do the same as by doing so I'm infringing on their freedoms. My freedoms do not enter into the conversation.

I currently have the freedom to choose not to buy DRM protected music, I also have the freedom to buy DRM protected music knowing full well what that entails. I have the right to buy a computer and install Linux on it, I can buy a copy of Windows for it as well. I can even dual boot the system, best of both worlds. I can install a virtual machine app and run one within the other. All my choice. And that's my point, I'm not sure either side is right or wrong. They are just different views and I understand that, I'm not about to attack everyone who believes one way or the other. I may put my viewpoint forward but I accept that yours is different. The big difference is that I'm not telling you that you are wrong for what you believe just that you are wrong in trying to berate me until I believe what you do.

Trust me, if your argument was that compelling I'd probably be on your side to begin with.

You'll never get rid of DRM by leaping on every person who buys a DRM protected product, yes they may be supporting the 'machine' fiscally but you can equally not support it. Listen to a different band, watch a different movie, listen to the songs you like on the radio, record your own song. You have that freedom, embrace it.

I'm not a religious man but I do love this quote from Douglas Adams' book, The Hitchhikers Guide to the Galaxy... "And then, one Thursday, nearly two thousand years after one man had been nailed to a tree for saying how great it would be to be nice to people for a change..."

If my beliefs were proved wrong and there were a second coming, he'd be in for a hell of a time. Come on people, use your freedom to be nice to people for a change.

Process without Perspective = Disaster

Not directly programming related but certainly in there somewhere.

This occurred to me the other day, and I'm not afraid to admit that was the first time it occurred to me, I think I knew it but the thought had just never solidified.

In simple terms I became aware of a subset of people who blithely follow a given process, irrespective of the situation. While I appreciate a good process and the guidance that it can give, I do see them as guidance. This might be an odd thing for a programmer to say, given our expectation that a computer will follow our instructions (even when they aren't exactly what we intended). That said, a computer is an automaton, a human being isn't or at least shouldn't be.

Is it any wonder that we are increasingly surrounded by a lack of imagination? I find that fewer and fewer people I encounter have even considered that their working activities might have room for improvement, they've been too busy cranking the handle to look up and see the world passing before their eyes.

Just a nudge for all you out there, don't be afraid to challenge the status quo providing you have a better idea. Challenging for the sake of it is just crass, is unhelpful and isn't going to get you the kind of response you are undoubtedly hoping for.

Last word, when someone comes to you with a situation that's going to make your process hard to follow to the letter... look and see if the process can be improved, even if it's just for the exception conditions. In the long run it'll benefit you and the person coming to you.