Apple is just Microsoft with better marketing

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:

  1. Getting Rid of XML from HTML Files Editted by MicroSoft Word
  2. Why Apple Rejected Google Voice
This entry was posted in Classic, Software Business. Bookmark the permalink. Post a comment or leave a trackback: Trackback URL.
  • http://www.alertowl.com Janko M.

    I couldn’t agree more. Also on the action to take:

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

    • http://www.dirtyphonebook.com Jacob Allise

      The iPad IS NOT A COMPUTER!

      This is the key difference!

      They make good products and not garbage.

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

  • http://blog.barrkel.com/ Barry Kelly

    I find the people turning against Apple amusing – Apple has been like this for a long, long time, and it’s only now that (a few) folks are noticing.

  • Boo

    Hate will only make your life harder. Hate is not good for you. Good developer dont care about language, it is only tool. What is difference between mature C++ and Ruby ? Smarter syntax? Bunch of operators? Mess in type casting? They are all the same level, no new language of higher level since Prolog has ever leaved academical field. No new (i mean really NEW) will do it in near future. So stop cry and hate, its only about developer lazyness.

    • Jamie Eisenhart

      There are lots of differences between C++ and Ruby. For instance, pointers and buffer overruns. Academic language research is being incorporated into new and existing languages all of the time. For instance, take a look at how LINQ has injected functional programming into C#.

    • http://www.loup-vaillant.fr Loup Vaillant

      You are so blind. When I code in C++, I think in C++. When I code in Ocaml, I think in Ocaml. And the results are wildly different. See, programming languages aren’t just “tools”. They’re a framework of thought.

      Take math, for example: there was a time when the equation x²+2=6 would be written as “find the number that, when squared and added to two, equals six”. Suddenly, solving the equation is way more difficult. Programming languages are alike. And this isn’t just a matter of syntax. Learn Haskell, and you may understand.

      By the way, good craftsmen are supposed to care about their tools. So I can’t picture a good developer who doesn’t care about his programming languages. Even if you assume they are “mere tools”.

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

  • http://www.ducktools.org Jan Ehrhardt

    The iPhone has a great browser that’s as free as any other browser and Apple does not controll, what content is in it.
    The best is, that this browser is able to run more advanced applications than an Internet Explorer on a PC. So go on developing web applications instead of doing what Apple wants you. Don’t sell Apps, sell services.

    • emilk

      Jan> The browser is really nice, but its UI will always be there, you will never manage to have a command of all the screen real estate, so your UX will not be as good as with a native app :(

      • http://saturnpolly.net SaturnPolly

        emik, if the user chooses to add your webapp to his/her homescreen then you can make your webapp fullscreen. The statusbar will stay, but you can choose the style (http://ajaxian.com/archives/iphone-full-screen-webapps). With a cache manifest you can make it available offline as well.

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

    Remember when Apple charged an early adopter fee on the iPhone, and then apologized with Apple store gift certificates? Remember how people declared that they were geniuses, responsive to their customer base, and all around great folks? Yeah, Apple learned that they can do no wrong— after all, if they do something scummy to help themselves and nobody notices, they win. If they do something scummy to help themselves and people gripe, they can give an apology that helps them (say, Apple developer tax credit), change the policy slightly, and they still win.

    Apple has always been extremely proprietary. Proprietary about their hardware (note: “In the Beginning was the Command Line” loses on this point), their software, their intellectual property—all that jazz. It’s all part and parcel with what Apple is as a company. If you develop for them, they own you and your product, and people sign up in droves for the privilege of being owned. These developers aren’t stupid to do so—there’s lots of money to be made in handing over your product to Apple, and that will continue to be true for quite some time.

    • 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?

  • Marc

    I’m officially anti-Apple as well. They’ve always been a very closed company but I’ve felt they’ve just been pushing up against he line of what’s too far. This new policy takes a giant leap across the line of what’s ok. I have an iPhone a MacBook Pro and I was planning on buying an iPad (when the 3g came out) but I will not buy any more Apple products until they get their heads out of their asses.

    That said, part of me hopes they stick with this language in their license because I’m really curious how it would hold up in court. After all, Apple is dictating how or whether you can use products even outside of their ecosystem. It’s truly a dark day in the software development world at large.

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

      I’m going to continue buying MacBook Pros until a Linux laptop with a lower tax rate comes out. Yes, everyone tells me how easy it is to get a Linux laptop up and running these days, but my attempts at such a feat has consistently been frustrating and futile, so I’m officially willing to pay the extra cash for a laptop with a Unix-derivative OS that just works.

      • Zeev

        Did you try installing Ubuntu? Ubuntu validated laptops

      • Lance

        You can get a Ubuntu laptop from Dell for about $200 more than the Windows 7 couterpart. It’s a small price to pay for freedom.

        • 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://enfranchisedmind.com/blog/posts/author/bhurt-aw/ Brian Hurt

    Robert: your right to wave your fist in the air stops short of the tip of my nose. Once your actions start affecting me, I get a say in whether you get to do those actions or not. This is what so pisses me off about this move by Apple- not the impact it will have on you or the iPhone developers, but the impact it will have on me.

    This is why I didn’t care when Apple licensed it’s API. Apple wasn’t the first company to license their API, they won’t be the last either. But licensing the API didn’t have a big impact on anything outside of Apple. And as long as it’s only Apple doing this stupid licensing trick, and only for the iPhone, again no big deal. I wasn’t likely to start developing for the iPhone before, so me swearing a blood oath to never do so no isn’t a big deal for either Apple or me.

    The question is- still!- are you allowed to be free as a developer? Free to develop software and not be owned by this or that major corporation?

    This is a non-trivial question, and it’s impacting you already. You say you don’t use Linux because of the problems you have installing it on laptops. I’m willing to bet dollars to donuts that all of the problems you’ve encountered have been new hardware that isn’t yet (well) supported by Linux. The hardware vendors put hardware out there with little or no specs, and only provide drivers for Windows. Leaving the Linux developers scrambling madly to reverse engineer things and develop drivers and support. This is, of course, Linux’s fault- if only they were Microsoft Windows, they wouldn’t have this problem.

    So, by all means choose the path of least resistance, and sell your soul for some convenience. But remember that this is what you choose when you’re forced to code in C++ because every more advanced language has been outlawed.

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

      If Apple locks down the programming languages on their platform, then that’s their call. They’re a hardware vendor (and a relatively minor one at that, despite the hype), so I’m not too concerned that they’ll ban all the languages. I’ve suffered a lot more arbitrary limitations based on client proclivities. And as long as Linux exists, there’ll be a space for more advanced programming languages. And as long as those advanced programming languages actually offer competitive advantages, there’ll be start ups willing to use them.

      Quite frankly, I’m much more concerned about the .Net standard library having the word “windows” built right into the API than anything Apple can do.

      • Marc

        “Quite frankly, I’m much more concerned about the .Net standard library having the word “windows” built right into the API than anything Apple can do.”

        Then you’re not thinking far enough ahead. Once a company can dictate what you do outside of their ecosystem, then a very slippery slope opens up on what they can require of you. Unfortunately, most developers really don’t care and haven’t thought about the possible consequences so Apple will get away with this crap and you will see more bs coming in the future. I don’t give a rip about Adobe or how this will impact them but this WILL impact me, and you, and everyone else eventually if it stands in court.

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

        The problem isn’t if Apple bans all languages invented post-1986 (more or less)- the problem is everyone starts doing the same.

        And there is a difference when the platform provider does it then when the platform customer does it. So what that 9 out 10 software houses don’t want their programmers to use advanced languages- that doesn’t stop the 10th software house from taking advantage of the advanced languages. And that 10th software house applies pressure and the “foot in the door” for new programming languages, allowing the industry to (slowly, spasmodically) advance forward. But when the platform provider outlaws new languages, there is no longer any 10th software house using new languages. Worse yet, not only is there no opportunity to move forward, this is no impetuous to do so either.

        Yeah, Microsoft uses it’s API to try to lock in software developers. This is well known and has been going on for decades. But this doesn’t retard the growth of software development in any significant way- new languages can be developed on and for the Windows platform. Consider F# as an example of this. Heck, C# is an example of this (being that it started as just a knock-off of Java). Yes, they want you to code only for Microsoft, but at least with the adoption of C# and now F#, the Microsoft-only programming being done now is significantly more advanced than what was going in in 1988 (which was the last time C++ vr.s Objective C was a hot debate topic).

      • Jamie Eisenhart

        “I’m much more concerned about the .Net standard library having the word “windows” built right into the API than anything Apple can do.”

        Not sure what you are talking about. It’s the Microsoft .NET Framework. There are Windows-specific APIs, but they are appropriately restricted to Windows-specific namespaces (System.Windows.*, etc.). It seems to me that the Mono project (which MS supports) is an existance proof that contradicts what you are trying to imply.

  • http://www.merit.de Michael Ruppert

    First: I agree to your main point.
    Coding in Objective-C since the NeXT Step days, I can’t commit that it takes a “modern” language to write cool applications.

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

      You can write cool applications in assembler, too. It’s just easier to write applications- cool and otherwise- in more advanced languages.

  • Chuck

    I read a blog the other day that had an interesting alternate take. In the version of iPhone OS that the new agreement applies to, C, C++ and Objective-C are actually extended versions of themselves including a kind of closure that Apple calls “blocks.” These blocks are fundamental to a lot of the new APIs introduced in the SDK. Apple’s variants of {Objective-}C{++} are the only languages that use this particular block implementation, so they’re the only ones that can really be good citizens on iPhone OS 4.

    So it could be that Apple’s actually intention was “You must use a language that is compatible with our standard APIs” and Apple’s lawyers came out with something more restrictive than was intended — maybe using other languages alongside Objective-C is fine as long as they interoperate well. That would actually be pretty reasonable. I’m not holding my breath, but I will wait to make sure Apple is actually doing what it looks like it’s doing before crying for Steve Jobs’ head.

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

      Because Apple is the only one who can extend a programming language? Note that if I wrote a modified version of Ocaml, let’s say, that supported blocks, this modified Ocaml version would be illegal to use for iPhone development, despite the fact that it’s as good citizen on the iPhone as C++ or Objective C.

  • Pingback: My Theory: What you don’t say says a lot « The-Source.com

  • http://blueskyonmars.com Kevin Dangoor

    While you’ve got some valid points in your article, you got the title wrong, unless you consider product design to be a part of marketing. Apple’s success over the past decade is almost entirely due to exceptional product design (with good marketing supporting that design).

    Once the DRM went away, the switching costs for ditching an iPod and picking up a Zune dropped to near zero. And yet, few people stopped buying iPods. iPods never had more feature, but they always had a great end-to-end design.

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

      I hereby name this the “oh, look- shiny!” argument. I’m supposed to ignore the long-term damage Apple is doing, to my industry and my society as a whole, simply because they build prettier yuppie bling than the next guy over? And yes, I’m being deliberately provocative in how I phrase the question, but the question still remains.

      • Andrew James

        The lack of appreciation or understanding of design indicated by your comment here suggests that you were never the target market for Apple in the first place.

        If ‘free’ is more important to you than the usability of your computing devices, then fine. There is Linux for that (no snark intended).

        The ‘damage to society’ claim is just ridiculous hyperbole.

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

  • Tom Harada

    This is a fresh perspective and a good one, I think. One that’s easy to forget when trying to analyze the different strategies (some business-related, some development-related) involved.

    One thing I will say though is that it could be a good thing in the long run. Would Linux have received such attention if Apple, Microsoft and Sun had suddenly become enlightened about the long-term consequences of their quarterly-profit-based strategies?

    That’s why I’m optimistic about NotionInk and all the rest. Any time there’s in-fighting among large corporations, there’s a golden opportunity. That’s how Microsoft and Apple started. That’s how Google and the first dot-com bubble happened. That’s how evolution happens. That’s how civilizations happen.

    Though this is a huge oversimplification. But yeah, sometimes badish things need to reach a critical mass. Sometimes they need to be successful (e.g., Goldman in subprime) and get the right attention finally.

    Which makes SPJ’s ‘avoid success at all costs’ kind of prescient. Anyway, I enjoyed the post.

  • http://cheerfulsw.com Amy@slash7.com

    Your argument is just plain silly.

    Microsoft made it nearly impossible to buy a PC without Windows. They twisted the arms of OEMs and added hundreds of dollars to the cost of each machine. They integrated the web browser into the file system so you theoretically couldn’t even look at your folders without it.

    If you wanted a PC without Windows, your choices were either to build your own, or pay for Windows and delete it.

    On the other hand, you are free to buy a Blackberry, Palm Pre, any plethora of Android phones, Symbian, and many more, with no involvement or interference from Apple.

    So, given this cornucopia of choice, you have no logical recourse except to admit that Apple doesn’t hold a monopoly. They have every legal, moral, and ethical right to limit what programming languages are used on their phones. They are not competing directly with Adobe on any phone front, therefore it is not anti-competitive.

    Just because you want access to their customers, your way, with your language, doesn’t mean they have to give it to you. Just because you don’t like it, doesn’t make it wrong. And just because you think this is happening to you (and is therefore important), doesn’t make it true.

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

      Your rebuttal is silly.

      Apple’s decision can impact me, despite the fact that I don’t develop iPhone/iPad apps. If this stunt can- and probably will- affect me, in that other platforms that I do develop for may adopt similar restrictions, and that these restrictions, having become common, will stifle innovation in software engineering, especially in programming languages.

      And I don’t believe that I ever said Apple has a monopoly. Get this- you don’t have to be a monopoly to be a douche bag. You don’t have to be a monopoly to make decisions which have very bad consequences to society at large. And I have legal, moral, and ethical right to call Apple out on it’s behavior, and to advocate that you shouldn’t stay their customer.

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

        So your argument is based on fear that this move by Apple may be adopted by your favorite platform? If this move is so damn stupid and illogical then why in the world would other vendors follow suit? Do you think a move like this is capable of halting innovation from happening? If that’s the case then I’m sorry but you are underestimating humanity’s capacity for innovation. Will the inability to develop for the iPhone with your favorite language lessen your freedom as a developer? No. Simply pick a different and more open platform. Bring your innovation somewhere else.

        With this level of reaction shouldn’t you be anti-Nintendo as well considering they have a more rigorous application process (see http://www.warioworld.com/apply/). People often make the mistake of treating the iPhone platform as a full blown OS like Windows or OSX or Linux where they are free to choose the tools and languages they want to use for their software project. Well it is not. Think of it as a Nintendo DS, a Zune or an Xbox 360. Let us stop kidding ourselves that Apple owe us the openness of their platform. If you buy an iPhone, you own the hardware, but not the platform, not the community, not the app store.

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

          The problem is that the move isn’t stupid and illogical for Apple to do, unless we make it so. Behavior that is rewarded is repeated, and behavior which appears to reward others is imitated. Likewise, behavior which is punished is not repeated. Whether Apple is rewarded for this behavior- which would encourage other companies to imitate Apple’s behavior to achieve the same or similar reward- or not is what is under debate here.

          And we do have an alternative here- the android, at the very least, if not the palm pre as well. “Bring your innovation to a more open platform” is exactly what I’m advocating. We are not (yet) serfs in a proprietary technology manor house, and we should act to keep it that way.

          As to your Nintendo example, I don’t see any clauses similar to the one I’m objecting to from Apple- clauses that outlaw any advancements in the field of software engineering. Indeed, the license page explicitly talks about licenses for companies looking to provide third-party tools- I’d assume that would include things like new programming languages. Yeah, there are a lot of clauses in the license agreement designed to try and make sure you keep Nintendo’s secrets secret, and you have a decent chance of actually producing a product, and similar.

          If Nintendo does have an Apple-like clause, buried somewhere I can’t see it, then I would call for death and destruction to be rained down Nintendo just like I’m calling for it be rained down on Apple. But note that if such a clause does exist, this is evidence that this evil clause is being imitated and more widely adopted- and the danger is that much more real.

          • 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.codingthewheel.com James Devlin

    The iPhone has a great browser that’s as free as any other browser and Apple does not controll, what content is in it.
    The best is, that this browser is able to run more advanced applications than an Internet Explorer on a PC. So go on developing web applications instead of doing what Apple wants you. Don’t sell Apps, sell services.

    A great browser? 40% of the Internet is closed to the iPhone browser. By what definition is that “great”?

  • Pingback: Apple is just Microsoft with better marketing

  • Pingback: Apple is just Microsoft with better marketing « mnml

  • http://www.JaretManuel.com Jaret Manuel

    This is an interesting post. Mac rocks especially for the technical ill inclined, however Mac is ignorant but so good in what they deliver they can do so and get away with it. For how long who knows but I think being anti-Apple or Microsoft may be ignorant itself to some degree. It people don’t like it, it in this rapidly changing world will bring about change. Thus if anything a better product or ecosystem can emerge from this should the right amount of passion get fueled behind it. Mac to me rocks, but I am frustrated by their lack of openness but it begs the question how long can it last? Time will tell. Thanks for sharing this awesome insight.

    Jaret

  • Oh

    Surprise surprise. A big company that acts like a big company. And man, come on. We know that 95% of commercial standalone applications are written in C or in a dialect of C. And statistically speaking Haskell + Ocaml + Clojure + Lisp + Ruby + Python + Groovy + Scala + F# + Java + C# (together) are just a nique market.

    Open your eyes.

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

      My problem is that Apple wants to reduce that 5% to 0%.

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

  • frevd

    I’m still asking myself why a hardware vendor would restrict anything that’s going on on his platform at all – why is there such a thing as an app store (please dont mention the quality ensurance aspects, thats not how advancement in technology works, it just keeps things under control), why is the domain even closed to so-called apps? I will never consider to even buy such a stupid device if I’m not sure I can do whatever I like with it, including commercially. hence, i dont understand the whole discussion. the concept was wrong from the very beginning and now seems to have reached a first conflict, which was just a matter of time.

  • http://www.kwiclick.com Vin

    “No, really- aside from games, how many new applications have been developed on the desktop in the last 15 years? ”

    Napster and all the other P2P clients + BitTorrent.
    All the original Macromedia products.
    Skype
    Every single IDE that developers use.
    Every single video editing application that people use.

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

      You’ve proven my point here. Go snag a PC magazine from circa 1990 or so, an compare that list you just gave me to the number and breadth of applications advertised in that magazine.

  • Pingback: Products: Apple iPad With Wi-Fi + 3G – Jackie O-Face

  • Darren

    Hey

    To be honest this article lists a whole load of alternative languages, but none of them are particularly valid alternatives :-

    - F# and C# are Microsoft languages that only target the .Net virtual machine (=Windows)
    - Haskell are Lisp are functional languages (primarily useful for maths, not application programming)
    - Scala, Clojure and Groovy all run within the Java virtual machine *
    - Ruby and Python are both interpreted languages, not particularly well suited for high-performance/optimised apps either

    * Java is another platform iPhone doesn’t support – funny how no-one’s complaining about this one

    So obviously none of these languages target the Apple OS or hardware. Apple was never going to develop APIs/bindings for any of them (to allow you to program on the iPhone using these languages), but no-one complained about this lack of bindings until Apple specifically disallowed them. Why? Because Objective-C is the sensible choice of language app dev on the iPhone. If Apple start supporting lots of other languages, they will be dividing their effort and that’s obviously not good for quality. And if Apple open the possibility to allow other people to develop those bindings, they lose control and the quality of apps produced using those languages will be limited to external influences (the 3rd party developer of that language/binding), just as it would be if they allowed Flash.

    As for the argument about the languages Apple allowing all being relatively old ones, this is a moot point:

    - Objective-C 2.0 was released in October 2007 and included garbage collection and a whole bunch of other modern additions. Snow Leopard introduced Grand Central Dispatch (support for multiprocessor machines) and a new Objective-C language feature named Blocks was introduced to support them in the simplest, most elegant way. Objective-C is an evolving and modern language. [ I just realised Chuck's comment makes this point too, I read it afterwards. ]

    - Similarly, C++ was updated in 2003. The next version of C++, known as C++0x, is in development and the latest draft version was published in March 2010.

    So, “The last 15-20 years of language design, lessons learned and advancements made, have been thrown out and outlawed.” – I would disagree with entirely.

    “If this clause had been written fifteen years ago, the languages then would have been C, Fortran, and Cobol” – well make that 30 years, not 15, but then of course Apple aren’t going to stay stuck with the current version of C++/Objective-C for ever, they are going to move with the times, as they did when they introduced all the new features of Objective-C 2.0 just 3 years ago.

    Anyway, once you reach a certain level of programming experience, you begin to care less about the language you have to use. Just as a good guitarist can pick up any guitar and make it sound amazing, a good programmer can write a program in any language, and he’ll be able to do it elegantly too. Objective-C is a decent language, it’s absolutely fit for the purpose.

    So there you have it :-)

    Darren

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

      Work is progressing on the new standards for both Cobol and Fortran (Cobol had an ANSI standard update in 2002, Fortran in 2008), so I guess those are modern, evolving languages as well, eh? So you wouldn’t have a problem being restricted to those languages, would you?

      Yes, Eric Clapton can pick up that $20 guitar in specials bin and make it sound amazing, but you notice- when he walks out on to stage, the guitar he’s carrying isn’t that $20 specials bin one. A good workman doesn’t blame his tools- but you can tell the quality of the workman by his tools, as the good ones strongly prefer the best tools they can get. And know it’s worth it to spend the time and effort to get the best tools, even if they aren’t the most popular.

      By the way, I have written real (non-maths-oriented) applications, for pay, in Ocaml, and am writting them in Clojure. So your dismissal of functional languages as being unsuited for real work simply reflects a complete lack of knowledge of the languages, and their capabilities. As for why they aren’t used more often, that’s a topic for another post.

      • 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

      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!

  • Neil

    Very insightful analysis.

    I say this as a happy MacBook Pro owner, which shows that I am clearly not an Apple-hater.

    The irony here, which you hint at, is that Microsoft was preinstalling IE and making it so that Windows relied on a lot of the same code, so that you couldn’t fully uninstall IE. If Microsoft did then what Apple is doing now, they would have stated that Netscape, etc. will not be allowed to run, period. (to Apple’s credit, they did finally approve Opera, but I don’t see it as a really choice for them–not doing so would have made the parallel so painfully, brutally, clear-cut obvious it would have made the coming anti-monopolist suits much easier win against Apple).

    You say people had no alternative to Windows, but Mac was a very solid
    alternative at the time.

    Android is the new Mac. Apple is the new monopolist.

    I hope Apple swallow some pride and admit that it was wrong. Openness is good for all of us.

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

    As a general comment, I just want to point out this exchange with Steve Jobs, which has the chilling comment from Jobs:

    All video codecs are covered by patents. A patent pool is being assembled to go after Theora and other “open source” codecs now.

    Now, there are a couple of different ways you can interpret that- one being that other parties, not including Jobs and Apple, are assembling this assault on free software, and Jobs is simply aware of it. But given that Apple has a large stake in the MPEG-LA, it’s not inconceivable that Apple is party to this threat.

  • http://alexch.github.com Alex Chaffee

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

    Amen. This is the point which has been lost in most of the analyses I’ve read. IANAL, so I have no idea whether Apple has the legal right to do this… they probably do. But just because something is legal, or even commercially viable, doesn’t make it right.

    @Darren -

    > Anyway, once you reach a certain level of programming experience, you begin to care less about the language you have to use.

    Nonsense. I’ve been programming for 30 years and I now care much much more than I did back in 1987, when I had to learn Pascal in order to write programs for the Macintosh.

    > Ruby and Python are both interpreted languages, not particularly well suited for high-performance/optimised apps either

    Also nonsense. And anyway, even if that were true, who are you, or Steve, to make that decision for me? Perhaps I want to trade off runtime performance for time to market.

  • http://wingolog.org Andy Wingo

    Oddly enough, Microsoft could come out now, parroting all of the lines of the “good guys”, and actually make a good impact. I hope they do that.

  • http://www.mynext.co.uk steve

    Would disagree that Microsoft is still a monopoly, don’t think they have a monopoly on anything any more.

    Through apple is just microsoft with better marketing really =]

  • cm

    Great posts… at the end of the day it all boils down to hindering innovation. There is no better way to do that then limiting what and how developers get their software onto your devices and Apple seems to be setting a horrible example of this. I just hope that as it did in the 1980′s that its shit like this that will cause Apple itself to fall behind in the markets, just because they have some shiny hardware now does not mean others will not in upcoming years.

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

  • 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

  • Categories