So, I’m assuming that if you read this blog, you’ve heard about Apple’s new licensing restriction- the one wherein you are now only allowed to use C++, Objective-C, or Javascript to program on the iPhone. If you haven’t, here are some links, or just get out from under your rock and glace at the programming reddit or hacker news.
The consensus of the blog sphere is that this new clause is aimed eliminating the ability for people to build abstract environments- especially portable abstract environments- on top of the iPhone. Adobe and flash is mentioned a lot, and Google’s Android phone is mentioned often as well. But whom I haven’t seen mentioned is Microsoft.
You see, this is exactly why Microsoft decided to “cut off the air supply” of Netscape. Netscape was developing what would become Javascript, which would allow developers to write apps which would be portable across multiple operating systems- threatening Microsoft’s dominance in the application market. This causes a freak-out among the upper management of Microsoft, which lead Microsoft to making something questionable moves, which lead to the anti-trust suit.
And as scummy as Microsoft was, what they did isn’t as bad as what Apple just did. Yeah, they used their monopoly power illegally to ensure Microsoft Windows was on every new PC, and then made every copy of Windows had a pre-installed copy of Internet Explorer. But they didn’t just change the licensing agreement for Windows to make Netscape illegal. I mean, imagine if they had done what Apple just did? Just change the licensing agreement for Windows to make it illegal to use anything other than C, C++, or Visual Basic to develop programs for Windows? Among other things, I think we’d now have a number of “Baby Bills” kicking around.
That is one difference between Apple and Microsoft- Microsoft was (still is) a monopoly, while Apple isn’t. Even in the smart phone market. Even in the smart phone applications market. With Microsoft, people felt (rightly or wrongly) that there wasn’t anywhere else to go. As bad as Microsoft was, there wasn’t really anywhere else to go, or so people thought. Once there was, people abandoned the Windows platform in droves. No, really- aside from games, how many new applications have been developed on the desktop in the last 15 years? Application development shifted, basically in it’s entirety, to the web. With Apple, there is somewhere else to go- Google’s Android. Pulling monopoly stunts like this only works if you really are a monopoly- if you’re not, you’ll just bring hellfire and brimstone down around your head.
I hope so, at least. Because here’s the aspect of this whole affair that most concerns me. In attempting to harm Adobe and Google, Apple is hurting the whole industry, by putting the breaks on language development. No language more advanced than the three listed are allowed. No Haskell. No Ocaml. No Clojure. No Lisp. No Ruby. No Python. No Groovy. No Scala. No F#. Heck, no Java or C#. The last 15-20 years of language design, lessons learned and advancements made, have been thrown out and outlawed. If this idea catches on, that this is how you lock developers into your API, then the whole industry will get stuck. If this clause had been written fifteen years ago, the languages then would have been C, Fortran, and Cobol- and how would feel about being required to program in those languages today? Well, that’s how you’re going to fell about C++ and Objective C ten or fifteen years from now.
And don’t give me that shit about Apple being selective in enforcing this clause, so don’t worry they won’t enforce it on you. It doesn’t matter. You have to be insane to risks large amounts of capital (tens or hundreds of thousands of dollars of developer salaries to write the app, if nothing else) that Apple won’t choose to enforce this clause. No sane business manager would voluntarily add risk to an already risky proposition (most software projects fail) if they can at all avoid it.
Microsoft may have destroyed Netscape, and Digital Research, and dozens of other companies, with illegal abuse of their monopoly powers. But nothing they did threatened to bring the industry to a shuddering halt, ceasing all development of new and better ways of doing things. Microsoft never made Haskell illegal.
The danger isn’t just that Apple did this- the danger is that others may try what Apple did. Now that Apple’s broken the ice, what other companies might try this gambit? Who else might decide they want to control this or that API? Microsoft, Oracle/Sun, IBM, Adobe, probably others, all have APIs they might want to capture. One only has to look at the billions of profits Microsoft make from their captive API to understand the allure.
What can we do about this? What can we do to prevent being legally restricted from improving our industry? The one answer I have is to rain (metaphorical) death and destruction on to Apple. Make the iPhone an object lesson for future generations of executives, the Edsel you never want to emulate. Even an apology and a retraction of that clause isn’t sufficient, as that leaves open the door to the idea that maybe Apple didn’t handle it correctly, and that with the correct spin that it might work. I don’t want future executives to say to themselves things like “Well, Apple just screwed up with their choice of languages- if they had included more advanced languages like Haskell or Ruby, things might have worked.” No- the problem I have is with limiting language choice at all. I don’t want to get locked into having to choose between Clojure, Ruby, and Haskell, because tomorrow some new language will come out that is better than all of them, and I want to have the option to use that language as well.
So congratulations, Apple- you’ve just leapt to the top of my shit list, dislodging Microsoft from it’s traditional post at the top of that list. I hereby declare myself, officially, anti-Apple.
Related posts:
Pingback: My Theory: What you don’t say says a lot « The-Source.com
Pingback: Apple is just Microsoft with better marketing
Pingback: Apple is just Microsoft with better marketing « mnml
Pingback: Products: Apple iPad With Wi-Fi + 3G – Jackie O-Face