Openness vs. Freedom

There has been a lot of fuss lately about the lack of openness on apple’s platform.  There is still time for things to change, and hopefully this ends as a win for developers and consumers, but unless Apple changes their tune there will be no winners, only losers.

The general consensus among the developers falls into two camps:

  1. Apple should open their platform and let people develop however they want.
  2. Objective-C and XCode is all roses, why use anything else?

Personally I fall in the first camp (which you probably guessed from my opening paragraph.)  I think it would be great if Apple’s platforms were open and I could use most any tool as long as I called the correct API and use the right UI controls.

At the same time I disagree with those who believe laws should be passed, or lawyers retained to regulate how open Apple makes their platform, all in the name of freedom.  I’ve got news for you, freedom means Apple can decide to not have an open platform.

I may disprove of Apple’s actions, but I will defend their right to do it.  That is what is known as freedom, and I will not give up freedom for the benefit of openness.  If I want openness to be an option in the future, then that means allowing Apple the freedom to have a closed platform today.

Giving up freedom for openness means loosing both.

Voltaire wrote “Think for yourselves and let others enjoy the privilege to do so too,” which Evelyn Beatrice Hall summarized as “I disapprove of what you say, but I will defend to the death your right to say it.”

Ben Franklin said “Sell not virtue to purchase wealth, nor Liberty to purchase power,” which was later paraphrased as “Any society that would give up a little liberty to gain a little security will deserve neither and lose both.”

Seeking to take away Apple’s freedom for the sake of openness is to sacrifice the very freedom that allows others to make open platforms.  So if we take away that freedom and we give up our freedom to be open.

I’ll just remind you of Hodges 1st Law before someone makes another car analogy, they don’t work anyway.


MonoTouch and the new iPhone license

Apple announced their new iPhone SDK and license agreement today. Part of the change in the license agreement to use the SDK and publish apps to the app store includes

Changing Section 3.3.1 from:

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.

To now read:

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).

This is most likely the latest volley in Apples war against Adobe Flash, since Adobe announced that their new Flash Studio would include the ability to translate Flash applications into iPhone applications.  A lot of people are also saying that this will kill MonoTouch (which allows C# and Delphi Prism iPhone development).

I checked Miguel de Icaza’s twitter stream to see his take on this.

Someone suggested that maybe MonoTouch add an option to generate Objective C for X Code to compile, to which Miguel responded:

MonoTouch already has an option to compile to C + XCode, just call mtouch –xcode program.exe

Then TheZDuck asked:

@migueldeicaza I just saw this. Does this mean the end of MonoTouch!?

Which seems to be a pretty direct question, and Miguel responded:


Sure, it would have been nice if he elaborated more, but it is a direct answer.

Earlier in the day Miguel tweeted:

Started work on iPhoneOS 4.0 support in MonoTouch.

Why would he work in it if it violates the license agreement?

Miguel is on the beta and has Novell’s legal department to pour over the license agreement, so he has more information then those who are speculating wildly about the end of MonoTouch.  So go back to learning and using Delphi Prism and MonoTouch.  You iPhone and iPad apps are safe for now.  It would appear Apple doesn’t hate MonoTouch as much as it hates Flash.