Personal property and computing
I’ve always been a big fan of Apple’s. My first computer was an Apple IIe, and finding a copy of BASIC on there was what first got me into programming. A good percentage of the modern user interface concepts we take for granted today were invented by Apple back in the 1980s. (Yes, I know, they got the basic concepts from Xeroc PARC, but a lot of their work was their work, not Xerox’s.) They’ve always been one of the major drivers of innovation in the computer industry, and they’ve done a lot to hold the line against Microsoft’s campaign for complete domination of the computer industry. They’re one of a very few companies that have actually had any real success in that area, and we all owe them a debt of gratitude for that, if nothing else.
Apple released the latest iPhone development license yesterday, and I suddenly find myself a lot less grateful.
In case you haven’t already seen, it contains the following provision:
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).
Among other things, that means no Object Pascal for the iPhone. At Delphi Live last year, the Embarcadero folks talked about “Native Delphi everywhere.” Everywhere but the iPhone and the iPad, apparently. Oh, and not on any phone that runs on Windows Phone 7 either; only .NET apps that use Silverlight or XNA are allowed there. Google’s Android is only slightly better. You’re “officially discouraged” from using anything but Java, but not outright prohibited. (Language choice is alive and well on Palm’s WebOS, but phones that run on it aren’t doing so well in the market.)
This also slams the door hard right in the face of all the folks at the Lazarus project and the fascinating work they’ve done on Objective-Pascal, and it calls the future of the Delphi team’s cross-platform work into question. With all of the blog posts about Delphi for the Mac in the upcoming “Fulcrum” project, it’s clear that Embarcadero is putting a lot of effort into making Delphi work on the Mac, and does anyone doubt that they had the iPhone/iPad in their sights as part of the long-term plan?
I spent a lot of time thinking about what makes this new policy so offensive to me. Apple has every right to build the iPhone however they want to. The design of the phone is their own intellectual property. And they have the right to build an App Store as a centralized place to buy and sell iPhone content. And if they own the App Store, it logically follows that they have every right to decide what apps people can offer on it. The store’s their property, after all. I’ve seen plenty of brick-and-mortar stores with signs that say “we reserve the right to refuse service to anyone for any reason,” and this is just the electronic version of that.
But here’s where we come to a problem. The design of the iPhone is Apple’s property. The App Store is Apple’s property. But the individual phones and iPads are not. If Apple sells an iPhone to me, it is transferring ownership of the device from Apple to me in exchange for an agreed-upon sum of money, and once this transfer has taken place, they no longer own it. It becomes my property, to do with as I please. That’s a very simple, intuitive concept that anyone can grasp, and it’s been a fundamental principle of capitalism since before Adam Smith wrote the how-to guide: as long as I do not use a personal possession in such a way as to cause actual harm to others, I can do whatever I want to with it.
This principle’s under attack now. The only way to get a new app on your iPhone is through the App Store, or by uploading it directly from your Mac if you have a Mac and the iPhone SDK. On my PC, I can go to some random website, download a new program and install it, but you can’t do that on an iPhone, even though it has a built-in Internet connection. In effect, Apple has decreed you only theoretically own the iPhone; you don’t own the part of it that receives new applications. That still belongs to Apple 100%.
Well, to be frank, that’s a bunch of crap. Apple has no right to tell me that I can’t download an iPhone app from some random website and install it on an iPhone if I want to, and Microsoft has no right to say that I can’t write non-.NET apps for the Windows Phone 7 OS if I can figure out the bindings. Any law that says they do have such a right is evil and needs to be repealed.
This isn’t just about the iPhone, or even phones in general. This is about the future of personal computing itself. What Apple’s managed to pull off with the iPhone looks a whole lot like Microsoft’s vision of the future, in which every computer contains a TPM chip that will place the ultimate control of the system’s functionality under the control of the owners of the software that runs on it, not the owner of the computer. This isn’t some hypothetical bad future bogeyman that Richard Stallman is cooking up to scare people into using Free Software, folks. This is what is really happening, right in front of us, today.
In any other context, taking control of the functionality of a computer away from the computer’s owner and using it against his will and against his interests is known as hacking that computer. It’s universally regarded as a form of computer crime, and rightfully so. But when DRM technology is involved, it’s not a crime; instead it’s a legally-protected “access control.” That’s what the DMCA and similar laws in other countries are all about: they explicitly give copyright owners the right to hack your computer, at any time and for any reason, if your computer runs their copyrighted material. And until this notion is reversed, and the use of DRM technology is legally recognized as the crime it is, we can expect to see the future of computing looking more and more like the iPhone.
It would seem that Apple has come full circle. Thanks to Apple Macintosh, 1984 was not like “1984”. But thanks to Apple iPhone, 2010 might be.
I agree. Like a fpc/lazarus fan and old delphi user i feel really disappointed. I’m sure apple is taking the bad road now with this silly policies and restrictions. In a world opening every day more and more, they choose to close all the doors. If you think about it, maybe all we make a mistake with apple after all. They always close hardware and software to the world. Why anybody can think they will change it? The only difference now is they are more massive than ever!
And the bad taste is OSx was builder over a open source initiative… Apple is not even gracefully with the community who give him a great base to build osx.
True dat.
I agree with your sentiments here (except that I never actually liked Apple much). I do consider all this DRM stuff evil and I must say that for me, DRM is a deterrent to purchase. When Sony’s rootkit was uncovered, I was shocked and appalled (although I kind of expect the worst since), and to this day, I refuse to buy their products. And Apple have secured their place on my black-list too. Unfortunately, to many people the fact that Apple’s gadgets are perceived by some as “cool” is more important in their decision to buy than the fact that their freedom of choice is effectively abolished.
I hate to bring this up and I am *NOT* supporting Apple here, but a salient point needs to be raised. First, let me say this. I fight back the only way I know how and can reasonably afford – with my wallet. The loud snap that was heard at Apple HQ was the sound of my wallet snapping shut without disgorging any money for said i. I have never liked their policies or their products. Same goes for the Kindle – who is Amazon to be getting into “my” device and erasing books? I don’t care if it was an honest mistake, they very rudely just did it without asking for access to my physical device. That they own the platform is one thing, *I* own the hardware and, like my house, they need MY permission to enter. But, according to the DMCR folks and other, highly paid lawyers, apparently not.
Apple is indeed selling you the hardware and you are free to do with it as you please. But as far as I know, most software isn’t sold – it’s licensed to the user. This is why you can buy a copy of Microsoft Office and install it on any computer you like, however, you CANNOT resell copies of it because you do NOT own it! Under normal circumstances, the user can do as they please, however, there is a little clause in most of these licenses that says the license issuer can change the terms at any time they like. So, in essence, Apple actually *can* dictate what software you download and/or write to run on *their* platform. This is one of the reasons why Linux is so popular with developers in the first place – you have the source code, you can do as you please. I am fairly sure that if you asked a tech-savvy lawyer about this, you would be told that you are free to develop your own OS that runs on the Apple hardware, set up your own store, etc. all without violating Apple’s agreement, but you can’t use a line of Apple’s code to do it. Good luck with that.
It comes down to this – if you are going to play in a playground owned someone else, you have to abide by their rules. Makes Linux and it’s ilk MUCH more appealing, eh? I’m NOT saying this is right, just what is. And yes, it’s only going to get worse until the development community stands up and puts an end to this kind of crap.
[…] has been a lot of fuss lately about the lack of openness on apple’s platform. There is still time for things to […]
Ever since I learned that the iPhone would not allow the owner to download third-party apps off their website, I set it in my head that I would not buy one. To me it seemed a barrier against free expression, one of the founding principals of my country (the United States).
While they had the non-disclosure agreement on their iPhone SDK, I made up my mind that I would not develop for it; either, despite being a strong new market. Why? I am an open-source developer, I like releasing most of my projects under open-source licenses, and that prevented me in doing so. Not only was that a restriction on my freedom, it was also a restriction on my user’s freedom.
Now they’re preventing using interpreted languages and every language outside the C family. While this doesn’t affect me (I won’t touch anything other than C or C++ unless I absolutely must), it irritates me. Python, Lua, and Java are all excellent interpreted languages for people that prefer high-level languages, and I see no reason to prevent their use. Especially not Java, which has been pretty much standard in mobile device development for the past god-knows-how-long.
Of course, I’ve always disliked Apple’s policies despite liking their products, so this frustration with Apple is nothing new.
And as for what George says, yes it is true that Apple can change their license agreement whenever they want, just like online communities can change their rules whenever they want to (something that has screwed me once or twice in the past). That doesn’t mean we can’t be angry. 😉
Now, they only list C, C++, Obj-C or the “webkit Javascript” as allowed, But they disallow Assembly.. So basically All applications on the iphone are prohibited since they all get turned into Assembly before being compiled into object code :-D. Ok. real stretch there but this is ridiculous as I’m sure LOTS of apps are using “other languages” to generate things. Examples being “internal scripting” for games (how many games use python, list, lua, etc.. etc.. as level scripts?) This throws a HUGE barrier on legitimate building of applications on the iPhone and going to encourage lots of “disobedience” to that requirement that apple really can’t “detect”. They just need to change that section to state “We don’t want applications from Google or Adobe or created through any of their products” It’s just a big “pissing” contest. Any we are all being caught up in the middle of it.
Android does not really discourage you to use the NDK. But their doc tells you to carefully think where you need to write a lib using the NDK, and where to go Java. Which is true since probably 90% or more of apps can be done perfectly in Java.
The NDK comes in when number-crunching or other performance-critical code needs to be run. Firefox Mobile, or Fennec, for Android (to be released this year) was made possible only by the NDK [1].
Read more here: http://developer.android.com/sdk/ndk/index.html#overview
Apart of that you can use c, c++, pascal, soon c# (mono) [2] or Qt [3], you will also be able to use scripting languages at some point of time [3].
This is the difference between a quite open system, and a proprietary, controlled one.
[1]
http://blog.vlad1.com/2010/03/31/android-progress-march-31-edition/
[2]
http://github.com/koush/androidmono
[3]
http://code.google.com/p/android-lighthouse/
[4]
http://google-opensource.blogspot.com/2009/06/introducing-android-scripting.html
If you don’t like it, don’t buy an iPhone/iPad/iTouch and don’t develop apps for the platform. If more people are bothered by it than are not, then the platform dies. It’s as simple as that.
If more people like it or are simply not bothered by it then, well, whether you like it or not doesn’t really enter into it except in so far as it determines whether you RSVP the invite to the formal dinner party with a positive “Yes”, or churlishly refuse to attend unless they make it a fancy dress cabaret affair.
I am starting to look more and more at JavaScript, jQuery, HTML5 development and building a SaaS applications for those platforms. The “desktop” applications are too restrictive and rely on too many OS dependencies.
I really hope Jobs succeeds with his crusade for HTML5 and defeat the Flash at the end.
Don’t get me wrong, I am HUGE desktop applications fan but nowadays it becomes more and more difficult to handle them for way too many OS, Architectures, XX-bit versions with constantly evolving APIs and new and new bugs in the Virtual Machines and Frameworks. I am getting a bit tired now after 10 years of desktop development and when I look back I see the following:
1. We are still using HTML 4 and it serves well. And we have been using it for ages.
2. The new HTML5 is crazy good
3. You have to learn 10 to 50 new tricks, recall your JavaScript knowledge and code a WebService or RestService for a backend at your web server.
4. When you build a good customer base and you pay too much for a “standard” hosting migrate the backend to either Amazon EC2 or Google App Engine.
So screw Objective-C, MonoTouch and lets go jQuery+HTML5+REST.
Just my 2c.
“So screw Objective-C, MonoTouch and lets go jQuery+HTML5+REST.”
Probably you are aware that in that case you get all your apps running on Android as well, since it supports what you mentioned. Probably windows 7 mobile as well.
As much as I dislike some of Apple’s licensing policies, if I follow the reasoning in your blog, then Nintendo has no right to decree what kind of content can be sold on the Wii, and Microsoft has no right to decide what can be sold on the XBox. It’s your XBox, and you can install whatever you want on it. Is that really what you’re arguing? If so, why aren’t you up in arms about that? This has been around for years, ever since the original Nintendo.
Agree 100%. The whole App Store thing demonstrates perfectly the double standards of corporatism. It’s often marketed as “freedom of choice” yet why the hell do iPhone owners not get the freedom of choice to download apps from 3rd party websites, and developers make apps available at 3rd party websites? Fair enough I guess Apple have a vetting policy for their own App Store, but to prohibit the availability of apps from other sites is closed-shop capitalism at its worst. It has certainly lost them a sale on my part – I would have bought an iPhone had it not been for the ridiculous and restrictive “AppStore only” policy. I got an Android phone instead, whether they make it easy or not to use the NDK at least developers can make their apps available on their own websites perfetly legally.