Apple is just Microsoft with better marketing April 10, 2010 | 03:47 pm

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.

  • http://enfranchisedmind.com/blog/posts/author/bhurt-aw/ Brian Hurt

    I’ve got a question for you- is there some evil thing Apple could do, that would make you go “OK, that’s it- Apple has crossed the line, I’m not buying any more of their products”? Is there a point where their design aesthetics can no longer excuse their behavior?

    And yes, given a choice between freedom and convenience, I choose freedom every time. Because my experience has been that the closed, locked-in, products stagnate and decay. The main reason Microsoft shipped shit software was because they could. To paraphrase old Ben, those who sacrifice freedom for convenience deserve neither. And generally get neither.

  • Daniel

    This is the delusional world that spoils so much criticism of Apple. What you call an early adopter fee was (recall): Apple sold a product for a price, then lowered that price. They lowered it too fast and too soon for some but this most traditional of business practices has never been remotely considered scummy except by deranged fanatics.

  • http://enfranchisedmind.com/blog/posts/author/candide/ Robert Fischer

    The lowering of price after time is because of the progress of technology: the value of the old tech is less than the value of the new tech. Explain how the iPhone became outdated in about a month?

  • http://enfranchisedmind.com/blog/posts/author/candide/ Robert Fischer

    When I priced out my MBP and a comparably-powered Ubuntu laptop, they came out to about the same price—the MBP was a bit more value for the money. Dell had nothing that was near the same feature set at the time (dual processor and built in camera/mic were tricky to find, IIRC), so I had to go to custom shops a la System 76.

    I have no idea what the situation is like currently.

  • http://www.tongits.net Rico Zuñiga

    “Rights granted to an Authorized Developer for Wii or DS extend only to the use of Nintendo’s proprietary information for the development of games on Wii or DS.”

    Proprietary information. Meaning you are authorized to develop for the DS or Wii so long as you follow what Nintendo says.

  • http://www.tongits.net Rico Zuñiga

    I’m guessing this is the main point you were trying to get across with your article. So Apple is limiting development on the iPhone/iPad by allowing the use of their tools only. And you’re saying this is dangerous especially if others follow suit. And to prevent this from happening we should become anti-apple.

    It may be true that Apple wants to reduce it to 0%. But only for the iPhone/iPod Touch/iPad platform. You’re still free to develop in whatever language you want in OSX (provided there’s a compiler available of course), and then there’s Linux, Windows, Android, etc. So the “advanced” languages you mentioned are only “outlawed” on this specific platform alone (and in some, Nintendo’s perhaps). So I don’t see any reason to make a huge fuss about it.

  • Bluepork

    Reading this thread as someone who is not a professional programmer, or software developer, but who understands enough to follow the arguments, it is clear to me from the contents of Darren’s comments that he must have at least some knowledge of the issues here.

    You may disagree with his opinion but please don’t use phrases like “reflects a complete lack of knowledge…” It is not respectful and brings the tone of discussion down a notch.

    I noticed that in order to post here, you require the email address of the poster. If you didn’t want to go into it in public, perhaps you could have questioned his reasoning through an email?

  • Darren

    Hi Brian,

    OK, I’ll give you that about Cobol / Fortran. I’ll also concede your point about functional languages; I did come across as quite arrogant in my comment; of course it’s true that I’m no expert myself.

    But I think that my overriding point still stands; that Apple are optimising for the common case, and that allowing 3rd party bindings would cede them quality control. (Is this justification? Well that’s the subjective part that’s open to debate, I guess!)

    All the best,

    Darren

  • http://enfranchisedmind.com/blog/posts/author/bhurt-aw/ Brian Hurt

    My point is that Apple is not just optimizing for the common case, they’re outlawing the uncommon case. If they had just said “we’re only going to support apps developed in the following languages, if you use any other language, don’t come crying to us when it breaks”, I’d have been fine with that. But that isn’t what they did.

    And since all improvements start life as uncommon cases, they’re outlawing all improvements (at least, all improvements that Apple doesn’t do themselves). If Apple had done this in 1986, you probably would have been stuck with C and Fortran as your languages. Yes, object oriented languages (including both C++ and Objective-C) existed back then, but they were the uncommon case.

    This is why I jumped on you about functional languages- if serious improvement isn’t possible, than locking in languages isn’t that big of a problem. Whether Java is a better language than Objective C is debatable, but I’d argue neither is clearly superior to the other, in the way that both are clearly superior to say, Fortran. Now, after the great divide has been crossed, and object oriented languages are common and widely used, it’s easy to say that yes, it’d be a mistake to have locked users in to procedural languages.

    What is needed is an act of imagination. Consider that programmer from 1986 knows C and Fortran and Cobol and PL-1 and Pascal, but doesn’t know Object Oriented. It’d be very easy to see why he might think that serious advances in languages is possible- that while Fortran may not be the best procedural language out there, it’s hard for a procedural language to be all that much better. He might not have a problem with being locked into Fortran and C.

  • kurtnelle

    Developer Laziness? Tell that to the developer’s kid! Tell that 5 year old about how Apple made the decision not to use a more advanced development language like C# and that Daddy and Mommy now has to spend 15+ hours in the office double checking that they’ve de-alloced all of their objects. Apple is trying to undo 15 years of Software Engineering achievement; this cannot be tolerated.

  • kurtnelle

    F# and C# are not specific to windows. They are CLR { Common Language Runtime}. This means that they will run on anything. Go google MonoTouch.

    Developers can’t make the best products without the best tools, regardless of how good their skill may be. The right tool for the job!

  • fred

    Microsoft never made Haskell illegal.
    Hahaha. I though the fact that you chose to use Haskell as your example was funny, since Simon Peyton Jones is employed by Microsoft.

  • http://programming-perils.com John Isaacks

    Yes it is. It is a tablet computer. It has RAM, a CPU, even an OS. It is a computer.

  • Teresa

    Apple has some pretty egregious holes in its features that MS would get pilloried for: no end of page Ability in Safari, no ability to print to your non Apple printer from your IPad (suggested workaround is to buy a new Printer or a $20 sw package), many more. Apples products have a nice interface but I can’t believe how it gets away with missing basic functionality in its SW.

  • http://seoagencies.com seo agencies

    well to be fair, marketing is a pretty big part of business