Steve Jobs’ response on Section 3.3.1

After posting my reaction to clause 3.3.1 of the iPhone SDK terms I decided to write Steve Jobs the following email:

Hi Steve,

Lots of people are pissed off at Apple’s mandate that applications be “originally written” in C/C++/Objective-C. If you go, for example, to the Hacker News homepage right now:

<http://news.ycombinator.com/>

You’ll see that most of the front page stories about this new restriction, with #1 being: “Steve Jobs Has Just Gone Mad” with (currently) 243 upvotes. The top 5 stories are all negative reactions to the TOS, and there are several others below them as well. Not a single positive reaction, even from John Gruber, your biggest fan.

I love your product, but your SDK TOS are growing on it like an invisible cancer.

Sincerely,
Greg

His response:

We think John Gruber’s post is very insightful and not negative:

http://daringfireball.net/2010/04/why_apple_changed_section_331

Steve

Of course he was right, I had somehow missed that post by Gruber, having only read the original. Gruber’s second post, which Jobs appears to be endorsing here, is indeed, very insightful, and may explain Apple’s motivations for the updates to section 3.3.1.

That said, I did not, and still don’t, consider those reasons to be very good, so I sent a reply in kind:

Sorry. I didn’t catch that post, but I finished it just now.

I still think it undermines Apple. You didn’t need this clause to get to where you are now with the iPhone’s market share, adding it just makes people lose respect for you and run for the hills, as a commenter to that article stated:

“So what Apple does not want is for some other company to establish a de facto standard software platform on top of Cocoa Touch. Not Adobe’s Flash. Not .NET (through MonoTouch). If that were to happen, there’s no lock-in advantage.”

And that makes Apple evil. At least, it does in the sense that Google uses the term in “don’t be evil” – I believe pg translated “evil” as something along the lines of “trying to compete by means other than making the best product and marketing it honestly”.

From a developer’s point of view, you’re limiting creativity itself. Gruber is wrong, there are plenty of [applications] written using cross-platform frameworks that are amazing, that he himself has praised. Mozilla’s Firefox just being one of them.

I don’t think Apple has much to gain with 3.3.1, quite the opposite actually.

Sincerely,
Greg

Within about 3 minutes a second reply graced my inbox:

We’ve been there before, and intermediate layers between the platform and the developer ultimately produces sub-standard apps and hinders the progress of the platform.

With replies this short (understandably, of course) I can only guess at his meaning. Perhaps he’s referring to the days when some applications were being written with CodeWarrior and various other build systems. Or maybe he’s referring to the transition from Carbon-based applications to fully Cocoa applications (like Apple’s own Finder), or applications that were written using Macromedia’s Shockwave, or applications written in pure Java or those written in the now-defunct Java-Cocoa bridge. Perhaps it’s a bit of all of these.

Sure, many of the apps written using these systems aren’t very pretty, but can you imagine a Mac without Mozilla’s Firefox? Or a Mac that couldn’t run applications written in Python, Ruby, Java or a myriad of other languages? You would probably consider such a Mac severly handicapped. I don’t believe the existence of these in any way hampers Apple’s ability to progress the Mac platform, to the contrary, they enhance it. The existence of some sub-standard applications should not remove our ability to use those works of art that just so happen to be written without the aid of Apple’s tools.

I have nothing against Apple’s desire to enforce “quality applications”, but there are far better ways of going about it. Mandating that applications be “originally written” using Xcode and the C-based languages is just foolish as it does not magically create quality. What it does do, as I explained previously, is send developers running for the hills, or more specifically, to competing platforms where they have more creative freedom.

Does Section 3.3.1 help Apple in any way?

Gruber makes several claims:

So what Apple does not want is for some other company to establish a de facto standard software platform on top of Cocoa Touch. Not Adobe’s Flash. Not .NET (through MonoTouch). If that were to happen, there’s no lock-in advantage. If, say, a mobile Flash software platform — which encompassed multiple lower-level platforms, running on iPhone, Android, Windows Phone 7, and BlackBerry — were established, that app market would not give people a reason to prefer the iPhone.

And, obviously, such a meta-platform would be out of Apple’s control. Consider a world where some other company’s cross-platform toolkit proved wildly popular. Then Apple releases major new features to iPhone OS, and that other company’s toolkit is slow to adopt them. At that point, it’s the other company that controls when third-party apps can make use of these features.

There is truth to this, but I think it’s absurd to think that a third-party toolkit that failed to keep up with Apple’s APIs and produced poor quality apps would ever be popular. Why would users and/or developers willingly choose to use an inferior product? And if they do, so what? No one is forcing you to use them. Further, the vast majority of applications written for the iPhone *have* been written using Apple’s tools, before these changes were made to Section 3.3.1.

Are these imagined advantages worth the consequences?

Many (if not most) developers do not view a company that is blatantly trying to “lock them in” favorably. It is not a virtue that people respect. If I were to write an app for the iPhone, I would choose the tools that I deemed “the best”, voluntarily, and that probably means I’ll use Objective-C and Xcode. But the notion that those are the only tools that I’m allowed to use scares me, and it seems, many others.

The iPhone is the #1 smartphone because people *like it*. They chose it based on the quality of the product itself, and developers flocked to it because of its popularity and its amazing tools. There was no need to lock anyone in, Apple got to where it is on merit, and that’s respectable. Trying to forcibly lock users and developers into the platform is a sign of insecurity.

Everyone fears The Ignorant Boss

For developers, this is the person who knows nothing about programming yet insists that you use X tool and write it in Y language. Now, suddenly, it is as if the formerly independent iPhone developers all have such a boss, and the worst part is that they can’t even communicate with this one. He lives several thousand miles away in Cupertino and isn’t even aware of their existence or anything related to their project.

Gruber goes on to discuss the impact Section 3.3.1 has on the user’s point of view:

I can see two arguments here. On the one side, this rule should be good for quality. Cross-platform software toolkits have never — ever — produced top-notch native apps for Apple platforms.

Ignoring the fact that Gruber is making objective that which is totally subjective, this is just plainly untrue.

One of my favorite applications on the Mac is Mozilla’s Firefox, and certainly my favorite web browser. I think it beats the pants off Safari. As this is not a review of Firefox I won’t get into the details, but I will point out that Firefox is written using a cross-platform software toolkit.

A friend of mine is a musician who thinks the world of Ableton Live (also written using a cross-platform software toolkit), while deriding Apple’s Logic Pro as “lackluster.”

Without question these are all examples of “top-notch” software written using cross-platform toolkits. There are hundreds of others. Much of the software that’s hidden from view and supports the foundations of Mac OS X itself is software that is written using cross-platform toolkits, and all of these are “native” in the sense that they run just as fast as software using the Cocoa frameworks. Some might have widgets that look different, but so do most iPhone games written in accordance to Apple’s rules, should we ban them because of it? That would be absurd and tantamount to software-racism!

I sent a final response to this effect:

The Mac has only been helped by the fact that Firefox, Ableton Live, and hundreds of other high-quality applications can run on it thanks to the fact that developers have a choice as to what tools they can use on it.

Crappy developers will make crappy apps regardless of how many layers there are, and it doesn’t make sense to limit source-to-source conversion tools like Unity3D and others. They’re all building apps through the iPhone developer tools in the end so the situation isn’t even comparable to the Mac where applications can completely avoid using Apple’s frameworks by replacing them with others.

In my opinion, 3.3.1 only serves to make the platform less attractive to legitimate developers, giving them reason to write their software for competing platforms instead.

Thanks for considering this.

Sincerely,
Greg

Apple is free to write whatever absurd rules they want for their SDK, but in doing so, I think the “creative company” is undermining creativity itself, and at its own expense.

The full text of this exchange with headers (sans the final reply), is right here.

Update (4/11/10): Steve Jobs’ Response: A Brief Followup

Update (9/10/10): A few months after this posting, Apple updated and relaxed their terms.

227 thoughts on “Steve Jobs’ response on Section 3.3.1

  1. Subd

    wot, steve responds to your mail…?

  2. Greg Slepak Post author

    Oh yeah, we play poker on Tuesday’s actually. ;-)

    He responds to mail sometimes, but I wouldn’t bother him unless you have a genuine question that you feel hasn’t been addressed. I can’t imagine what his Inbox looks like… so it’s incredible and commendable that he ever responds.

  3. Pingback: Apple Vs Adobe: Steve Jobs Responds

  4. Clark

    “Crappy developers will make crappy apps regardless of how many layers there are”

    Pretty much sums up everything.

  5. Goobi

    Totally agree with your final comment. The App Store is full of crap applications already, so what’s the fuss about? If Apple had a stronghold over the qualitative aspects of apps, then Jobs could talk.

  6. Scott Rafer

    No one could defeat your argument any quicker than you have yourself. The beJobsus doesn’t want these devices to be Macs. He’s precisely thrilled at your complaints.

    Crossposted from http://rafer.tumblr.com/post/511804618/sure-many-of-the-apps-written-using-these-systems

  7. Pingback: P2P Talk! » Steve Jobs responds to complaint about new development tool restrictions for iPhone, cites Gruber

  8. Iria

    Why sans the final reply? Interesting tag by the way: F-ingAppStore

  9. david Small

    Steve doesn’t want apps written for the iphone/ipad to simultaneously show up on competitor platforms. Why am I not surprised.

    He’s got to be tired of competitors copying Apple’s products. He’s got to be even more tired of software tools that enable those knock-offs to function like Apple’s produts.

    He’s drawn a line in the sand and I applaud him for that.

  10. Pingback: Steve Jobs responds to complaint about new development tool restrictions for iPhone, cites Gruber | Tech Zone 24

  11. sami

    Greg, don’t bother… android will do for you just fine… SDK TOS is as good as it gets….

  12. eddy Poon

    Greg:
    Thank you for your time and sharing your communcations with Steve Jobs.

    80% of apps downloaded from the appstore sucks, and 80% of them were written using cross platform tools.

    The problem right now is – consumers would not know how apps were written, they only know the experience was bad, and they blame it on the phone and Apple.

    I am not saying this is democratic, I am saying in general, this is the right thing to do for the end consumers.

    Look at Kindle for Mac, for Christ’s sake. It’s a piece of junk.

  13. Aleksandar

    “One of my favorite applications on the Mac is Mozilla’s Firefox, and certainly my favorite web browser. I think it beats the pants off Safari. As this is not a review of Firefox I won’t get into the details, but I will point out that Firefox is written using a cross-platform software toolkit.”

    Seriously? Your arguments just took a huge dive for me, here’s why.

    I’m using Firefox daily on my office Win7 machine where it runs great (on some old Pentium Dual Core, 4GB RAM). On Snow Leopard and 4GB C2D 2.2GHz MBP, it runs like crap. It takes *minutes* to load, UI is clunky and slow to react, it’s barely usable. I tried to use it for months after I moved to Mac, purely out of great experience on Windows, but it was in vain. The only time I ever start it now is to occasionally use Firebug and only after I failed to do what I needed in Safari dev tools.
    Thunderbird 2 was even worse.

    I can’t possibly imagine how you could consider Firefox on Mac to be better than Safari. It’s the worse browser on Mac, by high and large.

  14. Zachary

    I’ve worked on multiple crossplatform projects, and while I agree with the general perspective you have, I disagree with your use of Firefox as an example of good mac software.

    Firefox, at least on my macbook pro, runs like a turtle that has been bathed in superglue. Crashing often, leaking memory horribly, and just being a poor mac program.

    Since I switched to Safari and Chrome, I’ve had many fewer crashes and other poor browsing events. I just can’t understand why anyone would champion Firefox at this point. Maybe you’re on a mutli-core desktop mac and it runs like a dream there.

  15. Pingback: Steve Jobs Weighs In On Developer Agreement Drama [Apple] | i Top Tech

  16. Pingback: Steve Jobs responds to why Apple banned Adobe’s Flash from building iPhone Apps… | Apple iReports

  17. Daniel W

    You keep referencing Firefox as being a prime example of a high-quality product produced by a cross-platform framework, as if it was indisputable.

    I, and I’m certain many others, feel that the Mac version of Firefox is, quite frankly, a piece of crap. It’s slow, buggy, ugly, and feels nothing like a Mac app should.

    It bothers me how you keep referring to Firefox as being “without question” the best example of a high-quality cross-platform app, when many Mac users feel differently. That’s not any better than John Gruber stating that “cross-platform software toolkits have never produced top-notch native apps for Apple platforms.”

    Having said that, I don’t disagree with your side of the argument. But as someone who thinks that Firefox for Mac can do a much better job, I felt I had to respond.

  18. chris f

    what’s wrong with apple wanting to exclude apps that aren’t optimized for their hardware? if anything, i would think it encourages creativity by requiring integration of the app with the features of the iPhone OS system, instead of just being a lazy port from another platform.

  19. RidleyGriff

    Thanks for doing the legwork on this, Greg. Great article.

    WIth your example of Ableton Live, though, I would like to whole-heartedly disagree. Live is, in fact, a great example of what is wrong with cross-platform development.

    It runs its own UI that has pretty much nothing to do with Apple’s Human Interface Guidelines. The way it handles files can often be bizarre. There is no way a Mac user can sit down at that application and intuit how to do much of everything without going through a lengthy tutorial.

    On the Mac side, we see this kind of thing all the time — and we say it “feels like a Windows program”. And for that program, all the benefits of our platform of choice are lost, as we have to relearn how to use our computers for the application that isn’t playing ball with how Macs do things.

    It is, frankly, obnoxious.

    The exact same could be said not only for Firefox, but for Final Draft, a cross-platform screenwriting word processor. Far less complex than something like Live, the Final Draft UI was a living nightmare up until the most recent version 8. Why is 8 so great? Because the Mac version of the application looks and behaves _exactly like a Mac application should_. And suddenly, it goes from being an eyesore that gets in the way (which drove me to the open-source Celtx for a while) into being a transparent interface through which I can do my work.

    A lot of us everyday Mac owners choose this platform because it has the ability to get out of the way of what we are working on. Programs developed with cross-platform toolkits rarely do this. And while your friend may love Live, I would bet he loves it for the features it offers and its innovative take on creating music, not it’s bizarre (for a Mac user) interface.

    Apple is in the process of defining what the user experience is going to be for an OS that is going to be their focus for a very, very long time. They are trying to rebuild user interaction from the ground up. If cross-platform toolkits ruled the day, I have very little doubt that we would end up seeing the same miasma of design elements and operability quirks that we deal with in today’s computers and devices.

    That will be fine in the Android world. It won’t be for what Apple is trying to do here.

    Apple may be forcing people’s hands and playing some brutal hardball — and people have every right to be upset — but from an end user’s perspective, I can’t help but think this will give me a superior experience when all is said and done.

    I want my Mac applications to look and behave like native Mac applications. I want my iPhone apps to behave and look like native iPhone apps. And if they do, I will continue to use this platform.

    That’s the lock-in Gruber is talking about; users staying with something because they prefer the experience it provides.

    And not only will we iPhone users support Apple for providing that experience, we will also support the developers who provide it.

    “Lock in” can look like an ugly phrase, but if it’s a developer being locked into a buying audience of almost 100 million passionate users and growing, it can also look like an opportunity.

  20. Noé bullock

    Apple is devolving into what they hate the most: Microsoft
    I dont want to live in a world according to Apple in as much as one created by Microsoft. It is offensive to creativity and bordering in a dirty monopoly and a software dictartorship. I can envision a lot of viruses coming up labelled “to Apple with love”

  21. VonGuard

    Jobs is actually quite responsive to emails. I’ve gotten responses before, too. They’re usually very short, but always smartly so.

    You just can’t email him something stupid, or silly. He obviously has the “inbox at 0″ obsession.

  22. Pingback: The TechNexus » Blog Archive » Steve Jobs responds directly to developer over new iPhone SDK rules, cites blog for explanation

  23. Barry

    Dude, this is about the iPad/iPhone devices. NOT the Mac. The world isn’t coming to an end. Stop being a douche. Apple can do whatever they want with their iToys. It’s THEIRS. Heck, they could have provided NO SDK and made everyone make web apps.

    Calm down. It’s not that big of a deal.

    -Barry

  24. John Lindal

    All the cross platform frameworks I’ve worked with started from the lowest-common-denominator solution and struggled hard to get out of the pit. You could write simple applications with them, but if you wanted them to feel native, you had to build way outside their bounds. If only one platform supported a cool feature, it ended up at the bottom of the framework’s todo list. (I don’t develop for the iPhone.)

  25. Pingback: Steve Jobs responds directly to developer over new iPhone SDK rules, cites blog for explanation | Technology South Africa

  26. Pingback: Terms of Service « combustible knowledge

  27. Derek

    I think the Mozilla example is a bit off. For quite a while, Mozilla has used the Cocoa API (and before that, Carbon). Before that, the Camino project fused the Mozilla browser engine with a pure Cocoa interface. If a 3.3.1-style clause existed in OS X in Firefox’s heyday, there would have been no problem. The key is that the browser engine has been sufficiently separated from the host API. This is good development practice.

  28. Ethan Osten

    Regardless of whether Firefox is pretty good on the Mac being written on XUL, I think that’s really in spite of its cross-platform architecture. Firefox for Mac still feels in tons of places like a hack – a nice hack, but a hack nonetheless. And given infinite resources, a Firefox written in Cocoa and Objective-C would be a lot more pleasant than what we have now.

    So why invite that sort of situation on the iPhone?

  29. Brian Mastenbrook

    I think it’s unfortunate that the discussion ended up being about cross-platform toolkits, since in the end developers will wind up using them anyway, even if it’s just a home-grown solution that abstracts their application’s core logic away from the user interface layer. There’s no consistent way to crack down on this other than to reject applications that are also running on other platforms with a similar user interface, and perhaps that’s Apple’s goal all along here.

    The more obnoxious part of the restriction is that it prohibits using the iPhone APIs directly from languages other than C, C++, Objective-C, and JavaScript. There are a number of developers who have shipped applications written in other languages. MonoTouch is an example of this, as developers don’t use a compatibility layer but instead call the native APIs from a different language (C#) which is compiled to native code and then linked into an application by Apple’s toolchain. Similarly, developers have shipped applications written in Scheme, Haskell, and pretty much anything else you can think of. These applications are developed on Macs and the user interface is defined in Apple’s own Interface Builder tool; the only difference is in the language used to express the logic of the application.

    Will Apple start rejecting these? Not necessarily, if they’re not specifically looking for it, but the letter of the agreement certainly forbids this. It also forbids inline assembly (though they might just treat that as a C extension) and the venerable parser-generator tools lex and yacc, along with other code-generation techniques.

    Apple’s enforcement of their provisions has been selective and arbitrary. For example, use of interpreters other than the JavaScript implementation in WebKit has been forbidden for some time, which also forbids the use of emulators. Yet as I write this, there are a half-dozen HP-48 emulation programs on the App Store. There’s no significant difference between these emulators and emulators for classic 8-bit computers; the difference between a high-end calculator and a small computer is essentially arbitrary and was often blurred during the 80′s by products like Tandy’s TRS-80 pocket computer line.

    In 1st Amendment jurisprudence in the United States, the term “chilling effects” is used to describe the potential encouragement of self-censorship resulting from an overbroad law. The theory is that by criminalizing certain kinds of speech that are not obviously deserving of the full protection of the law (for example, arguments for the overthrow of the government in absence of a specific call to imminent lawless action), the government will discourage other kinds of speech which are on the margins but more obviously protected (for example, an argument that the president should be impeached for violations of the law). This culture of fear spreads as each individual at the current margin of prohibition decides to practice self-censorship, thus establishing a new margin of acceptable speech.

    Apple’s own restrictions may have this effect over time. As with the law, Apple’s enforcement of its App Store restrictions is selective, frequently arbitrary, and often seems to be motivated by political concerns (in this case, the desire to replace Flash with HTML5). Software developers who invest a significant amount of effort into creating apps for the iPhone platform will self-censor by avoiding tools and techniques they would ordinarily have used as part of their toolchest to deliver the best possible application as rapidly as possible, and some developers will decide to publish on another platform first and save the effort of dealing with Apple’s seemingly-capricious reviewers until later. By and large, this will involve mostly small developers, as those with deep pockets will simply spend the extra resources necessary to develop their applications the way Apple wants them done.

    Does Apple care about this? Probably not; I think they still ultimately view the iPhone OS as a platform for media and entertainment, and secondarily as a vehicle for rich clients to cloud applications, which can of course be written however developers please. Time will tell if the impact is noticeable or not. Ultimately, none of this as silly as the restriction on running unsigned applications on one’s own device, which would probably satisfy many of the creative programmer types who simply want an easy vehicle for experimentation, especially for the iPad and without having to use a computer for development. I think it’s clear to all that Jobs is running the company from his own playbook, which is not necessarily in line with the perception of Apple by some of its most devoted fans. I often wonder what Mr. Gruber would say about a Microsoft which restricted its own platforms in this way, in a world where Apple was more open about development on the iPhone OS. Unfortunately, my Subjunc-TV is on the fritz, so I’ll never know!

  30. Allen Bauer

    As a creator of developer tools based on the Pascal and C/C++ languages, I’m appalled at this move by Apple. The developer tools on which I work are native compilers that don’t rely on any kind of intermediate run-time or interpreter of any kind. By limiting developers into authoring their applications in ObjectveC, C or C++, that means that I could not take our Pascal compiler (again it compiles down to native CPU instructions directly) and make it generate CPU instructions for the iPhone and iPad CPUs. Even though we have a C/C++ compiler too, our Pascal compiler is also very popular and has a very large following. In fact, we’re currently working on getting our compilers to target the Desktop MacOS running on Intel CPUs. Our customers have been asking for a Mac version of our tools and now that we’re working on providing them, this comes along…

  31. Ruben Munoz

    If anyone here has been following the fight over flash should definitely read this article.

    http://www.roughlydrafted.com/2010/04/10/five-tremendous-apple-vs-adobe-flash-myths/

  32. Felipe Cepriano

    I think that Apple’s problem with 3rd party frameworks is that them would break the User Experience of iPhone OS.
    I’ve never used an App made with them, but I’m almost sure that the look and feel of Apps made using Flash or Monotouch would be really different from the native ones. Apple thinks that this adds unneeded complexity and should be avoided.

    You said about Firefox, but I know a lot of Mac users that don’t use it because Firefox “doesn’t feel right as a Mac application” and use Camino (or even Safari) instead.

    PS: I think that giving Firefox as an example of a high-quality “made with cross-platform” app is just bad because XUL is slow as hell.
    K-meleon, that also uses Mozilla Gecko but is made with native Win32 APIs, it’s a lot faster than FF.
    Not saying that every cross-platform framework is bad, though. Qt comes to my mind as a great one.

  33. Glenn

    It’s critical to distinguish between the iphone and the mac. Historically, the Mac played second fiddle to Microsoft. Apple is filled with developers who saw their software ignored because development was so Windows-centric. Apple’s won’t repeat that scenario.

    As for your arguments, distinguish losing control to a commercial ‘entity’ versus a truly open standard. Apple isn’t scared of python, ruby or java. It’s scared of Adobe and Microsoft creating and controlling a meta-platform.

    Finally, why are you pissed? Has Apple shut out something you really want? Otherwise, I see only a reasonable, but largely philosophical objection.

  34. mark

    Someone said consider how Grand Central Dispatch works, which was seen in iPhone OS 4.0. How well would that work with Adobe’s Packager?

  35. Pingback: Finance Geek » Steve Jobs Weighs In On Adobe Flash Furor — And Tells You To Read John Gruber’s Post About It

  36. Justin Baker

    Forcing restrictions on people just makes them resentful, and that’s what is being done to the developers. It hurts both Apple, the developers, and the end users who won’t be getting the great app NOT written in a language used to just to satisfy Apple.

  37. mark

    I’m not sure why you keep referring to how things are acceptable on a Mac. There is a huge difference between Mac – in terms of performance and battery life and component space – and iPhone/iPad.

    So accordingly, Apple has not applied any such restrictions to Mac. A poorly written app on a Mac may drain the battery faster and run slowly but it will be a lot less noticeable or annoying than on a handheld like iPhone.

  38. Enlightenment

    I heard that Apple has a patent on “How to be a Douchebag”. It appears that Apple is using this patent a lot.

  39. Perry

    A few dedicated smalltalk programmers made Squeak work in the iPhone and actually released a bunch of apps written in Squeak. I’m guessing they’ve just gotten told they’re not wanted. Similarly for people who carefully ported a couple of lisp dialects etc.

    The arrogance here is Jobs informing people he knows better than they do how they should write their applications. He’s within his legal rights to change the agreement any way he likes, but he’s just alienated a lot of people who really loved the platform by telling them to take all their hard work and shove it.

  40. watchdog

    The key to every handheld product is optimization. Apple has been optimizing its OS and SDK to squeeze out maximum performance while using as little battery as possible. Battery life and slow performance are the two most basic user complaints.

    A developer who uses the development tools that Apple banned gets his product to market quicker but the cost is optimization in performance and battery life. In the long run, the user loses, and Apple loses, as nobody blames the development tool, but everybody blames iPhone. (As an example, many people say Pre apps suck, but does anyone ask if is it the Pre or is it the app development tools? No, rightly or wrongly, everyone just thinks it is the Pre.)

  41. Kathy Gill

    I’m with Gruber re about cross-platform apps and the Mac — not from the perspective of a dev but from the perspective of a user.

    I’m a long-time Mac user, before that cpm/dos/windows. My experience mirrors his assertion. And yes, I know anecdotes do not research make.

    I have used Firefox since it launched. However, I have not used Firefox on my MacBookPro (although I still use it on my PC) for months because it’s just too unstable and too much of a resource hog. There are things I miss about it, but not enough to put up with the headaches. Although Safari isn’t 100% perfect either, it’s pretty darn good, most of the time. Ditto Camino, for that matter. Chrome works sometimes and other times drives me batty with its sluggishness. (When Safari has issues, it’s more often than not with the Adobe Flash player, which either crashes or dies when I kill it.)

    In the past, I’ve defended Apple’s “tight” control over hardware-software integration because it resulted in “plug and play” when the PC world was willy-nilly. The smartphone world is every bit as willy-nilly as the PC world was 15 years ago. If restrictions on application development results in a better user experience, then so be it.

    Full disclosure: I’m a 15+years AAPL stockholder (and my S.O. works for MSFT).

  42. Rick

    Crappy developers can make crappy apps with Cocoa Touch and Xcode also.

    This is a dumb requirement. As a .NET C# programmer, I’d love to tap in to the iPhone market, but I want to use the tools I know and not have to learn another tool.

  43. Donald Shimoda

    Agree with clark. Is not a matter of layers, dont even a matter of languages ot frameworks. Dont even a matter of the OS you use to make another OS app. And theres many other ways to do quality control.

  44. lostproc

    How can you compare the hw/sw combo of an iPhone and iPhone OS4.x to MacOS X and modern Core Duo or i5/i7 hardware? Steve is correct in the context of the iPhone, intermediaries suck. Mobile devices are still too constrained. You don’t notice the cross platform penalty on a laptop/desktop because you have gigs of RAM and dual/quad core CPUs. When smart phones have Cortex A9s and 1 GB RAM standard, Apple may change this. For the current time, I agree with Steve, resources are too precious on the mobile platform for intermediaries. Learn how use the native tools and make the HW sing. In comparison, do you see cross-platform tools on the XBox 360 or PS3? No, you need to write tight, native code to make those platforms hum as well. Look at the titles out now for these platforms and compare to 2 years ago. Night and day in terms of graphics details, world size, and AI threads.

  45. eikonklast

    Apple invited developers to a great party. And seeing what a great event it was and all the attention it was getting, the guests began to ask why they themselves were not getting credit. And why the host wasn’t more accomodating.

    Yet, this remained Apple’s party.

  46. Manav

    Steve Jobs is a monoplistic control freak. He is misusing Apple’s position to attack Adobe. I wonder where are FTC and other judicial system to kick Apple hard in their nuts this time.

    Jobs is acting like a real asshole here..IMHO.

    Disclaimer: I do not work in Adobe. I just hate such shit that Apple does. If it was Microsoft, not even one person in this whole universe would defend them. I don’t understand why people don’t give same reaction to Apple.

  47. Danno Bonano

    Simply put, if a CS5 platform became a standard for app delivery on multiple platforms, Apple would be beholden to Adobe for future updates. So if Apple releases SDK 5, Adobe’s release schedule may not coincide for 6 more months and that means that Apple’s platform may be slow to adapt.

    Time will tell if this will hurt Apple but users are no longer concerned about “specs”. They care about a simplistic experience where things are completed that the user wanted completed. They want a top-notch, refined, stable, easy to use, attractive device and UI that just works.

    Sorry but giving power to someone else severely jeopardizes that experience. As a developer, I simply cannot agree with your article on any level here and have to agree that Apple is right if they want the power to consistently deliver the best experience for their customers.

    Android is a mess. Wait until people that buy new Droids realize they are running version 1.6 and can’t upgrade to 2.1. Or that they have to find their software from a myriad of questionable sources. Fact is, except for the geeks, people want simplicity and a one stop location. Something that just works.

    The dev platform has to be controlled by Apple to provide the best experience.

  48. Danno Bonano

    And, very few ported cross-platform apps work great. If any. If you want sucky apps, I hear Google won’t be stopping Adobe. Go fish.

  49. K H

    Steve wants his users and his developers to be monogamous. You either choose to stay with Cocoa Touch, or you move on. If you’re going to write an app for the App Store, better make it good and not just some repurposed shit you’ve had sitting around.

    I applaud Apple for heading off the Flash CS5 iPhone packager at the pass. Saved a lot of time with the billions of half-assed converted Flash apps they’d have to reject.

  50. Pingback: has apple come full circle with 3.3.1 terms of service?

  51. Phill Kenoyer

    Personally, I think Firefox on the Mac is _not_ a top quality Mac application. There is a _lot_ of things I think are wrong with it. Starting with Keychain integration and tool bar organization to strange feeling menus and dialogs. The list goes on.

    Chrome is almost a good Mac app, and I use it because I love how nice the address bar works. If it wasn’t for the address bar and extensions I would be still using Safari. Not saying there isn’t a lot of things that I don’t like about Chrome like missing Services integration and other nice Mac integration.

    Just saying that I’ve never personally, fully, liked any non-native Cocoa produced apps.

  52. Horace Ho

    IMHO, 3.3.1 is a lawyer’s way of saying, “I don’t want Flash.”

  53. AdamC

    Funny, control is bad and free to do whatever is good.

    I believe a great end user experience is more important and developers are free to do whatever they want.

    Btw opinions are free to dispense and it will be great if bloggers and developers can do something to rival what Apple has accomplished in he last decade.

  54. Shayne Wissler

    The truth is that no platform is good enough to address every developer’s needs, and in spite of Apple’s success, their crusty old Objective-C system is hardly the platform of the future. Further, using someone else’s platform is an implicit submission to the superiority of those who developed it over you in some respect or other. It may very well be true in many cases that they are superior, but certainly not all, and how dare they pretend otherwise. Apple’s approach is a recipe for pissing off the very best developers and making them go elsewhere. In the long-run it’s a very arrogant and a very stupid business move.

    Every developer with self-respect should shun Apple.

  55. Mark Hernandez

    It’s incredible how so many tech people have trouble with basic critical thinking skills. There’s no clear-cut answer to anything. We live in a world of tradeoffs that must be balanced, and these are Apple’s tradeoffs to balance, not developer’s.

    Given the number of factors here, a primary one is how Apple will lose control once “metaplatforms” implant themselves and then don’t keep up. This is not unlike how the filibuster has changed congress from majority rule to minority rule. MS can no longer do much with Windows anymore because of having to satisfy and bring forward all the other old battleships in the fleet.

    Try not to reply to the children who cannot figure themselves out of a paper bag.

    E.g. “Crappy developers will make crappy apps regardless” is totally true, but unquestionably irrelevant to the intent of Section 3.3.1. This statement pretty much sums up Clark’s critical thinking skills, for instance. Think, people, think!

  56. Pingback: PageBlend LookBook HD digital media publishing - Apple vs Adobe : CTN Digital

  57. Scott

    Greg, Flash sucks. Thankfully, Steve Jobs is refusing to allow it to screw up the iPhone and iPad. I will be so grateful when the day finally comes that this poorly written piece of excrement is no longer found on the internet.
    Apple is totally within its rights to require what developers can use to make money from the platform. Hopefully, some day, Apple will buy Adobe, make use of the worthwhile apps they produce, and flush the rest of whatever is left over, down the toilet.
    Adobe has some useful software, and a lot of low quality “riff-raff” software. I guess Adobe would like to be a real software company whenever it grows up.

  58. Harvey Marcus

    Apple just previewed iPhone 4.0 with 1,500 new APIs. It will be available “summer” – two or three months from now. How long would it take a third-party tool company to design, code and test their development tool to add these 1,500 new APIs? And if they couldn’t , wouldn’t that be a roadblock to developers’ creativity/flexibility/(fill in the blank)bility? Meta-tools need to add value. If they abstract the underlying platforms, then they always lead to “least common denominator” apps. Check your history. Platforms are different by their nature. Meta-tools don’t deal well with such differences.

  59. Steve

    I had been developing apps with Appcelerator Titanium and it also seems fall foul of this clause.

    I cannot sell development work to have it rejected down the line, there is so much uncertainty around Apple and app rejections that I have personally lost confidence.

    I see my future in developing good, creative, reliable and useful apps but for other platforms, primarily Android, Apple is just too risky a bet for me as a small business.

    I have tried to satisfy Apples requirements and quality goals but they change like the wind and it is also too costly to keep up, having to recode on a fairly regular basis to keep up with “today’s” requirements.

    Apple will shed no tears I am sure and why should they, they are in a position to pick and choose but pissing off people can’t last forever, your just sowing the seeds you will have to reap later, ask Microsoft!

    I do feel sorry for people like Appcelerator who have probably sunk millions into a great product and maybe lost a lot of that due to one clause of a contract.

  60. Pingback: Steve Jobs explains iPhone SDK changes regarding Adobe restrictions « It's All Tech - Connected with Technology

  61. James

    Note that your view of cross platform apps is totally subjective though – many feel like Firefox for Mac is an incredibly lack-lustre product; its only virtue being its plugins. But it barfs memory on the floor… which is far from helpful. And the extensions are a mixed bag too – one of my coworkers using Firefox w/ Firebug all day long and (while helpful) by the middle of the afternoon the browser in unresponsive.

    I don’t think Apple’s tools are a panacea (and I wonder what this means for things like MacRuby on the Mac) but even the “best” cross-platform apps can be at times examples of exactly why Apple is making this move.

  62. Pingback: Steve Jobs Responds to Developer About New SDK Regulations via Email

  63. Pingback: Will arrogance be Apple’s undoing? « Old Dog, New Tricks

  64. Ronin

    This is even better than Gruber’s posts: http://www.roughlydrafted.com/2010/04/10/five-tremendous-apple-vs-adobe-flash-myths/

    You fault Gruber for not being objective yet your post is full of opinion and hysterics (“software racism,” “invisible cancer,” “run for the hills”) and short on facts.

    You also say, “The iPhone is the #1 smartphone because people *like it*.” Wow. What insight. But why is it so good and popular? Did you think about that? Maybe because Apple keep crappy, buggy, unsecure, resource-hogging software off of it. And how do they do that? Check the SDK TOS. It’s about much more than app quality or utility.

    Bottom line is that you are free not to deal with Apple. Run scared with all the others. There won’t be many of you. Or just stop whining and learn Objective C. And leave Steve alone. He’s a busy guy.

  65. siraj

    What Apple could do is introduce a test (maybe a worldwide exam?) for developers before they can sign on as iPhone developers. This way they can sieve out crappy developers before they produce crappy apps.

  66. Jem

    You had me until you said that Firefox was one of your favorite mac applications. Good God! How I loathe Firefox. It’s hard to take anything you say seriously when that resource hogging piece of crap is in your top apps.

  67. Ed

    Gruber’s article was quite true. You simply decided to be in denial and continue with your own agenda. And why are you focusing on Firefox and other apps that run on Mac OSX which is an entirely different ecosystem instead mentioning those “quality” ported apps in question on the iPhone OS?

    I’ve used code generators as well. They truly, honestly, do, 100% suck. A good programmer can generate crappy code using one. A crappy programmer can generate a huge pile of a steaming one with it.

    I mean no disrespect, but if having to learn a new language or method to stay current in a field that always evolves is too much for you then perhaps you should consider a different line of work. I say this as a software engineer with 20+ years in the field. One never stops learning. If you don’t adapt, you wither away and die. Adobe is learning first-hand what that means now.

  68. Jem

    …..Not to mention how dreadfully ugly it is

  69. Shane

    Choice of language in no way guarantees the quality of the application. There are tons of crappy apps on the AppStore that were written in C/C++/Obj-C, for example. Perhaps Apple should hire more people to insure that submitted apps adhere to UI quality guidelines rather than blaming something that has pretty much no bearing on it. For example, I would wrap every single API call 1:1 in another language (and do any appropriate marshalling required) and it would behave exactly as a native C/C++/Obj-C app. This TOS thing is zero percent technical and 100% political/business.

  70. Jack Freeman

    I hate to say it, but this is complete bs. How on earth can you possibly say, ” this rule should be good for quality. Cross-platform software toolkits have never — ever — produced top-notch native apps for Apple platforms.” I know for a fact that several Unity games have been #1 in the whole store, and a whole handful of other ones have been in the top 10. (Zombieville USA #1, Skee-ball #1, Battle Bears #3, all Unity3D titles). To say that quality applications cannot be produced with middleware is arrogant and frankly dumb. Unity has made Apple a fair amount of money and now they just want to terminate it and its many developers. Steve Jobs used to be an idol of mine, obviously since he has become such a fascist that is no longer the case. Apple produces superior products with inferior policies, plain and simple.

  71. Jeremy Chone

    Great post, great conversation with Steve Jobs, and great analysis of Gruber’s post.

    Totally agree with your assessment.

    I felt lonely when I was saying that it was wrong for a platform company to fully control distribution of applications for this platform. Was unprecedented in the software industry, and a dangerous path for innovation.

    I am actually happy, Apple made the 3.3.1 change, it makes it more obvious to everybody how this practice is against innovation.

  72. luke

    I am trying to understand a reasoning behind an Apple decision. You brought up Ableton Live (I am not sure about FireFox being cross-platfrom compiled as it is not step-in-step with Windows one, not the all components/parts are cross platform) as one example. My thinking is, how much of a cross-platform framework/libraries Ableton had to build in order to create their app for both platforms. Those libraries by the way duplicate functionality in some ways that is already available on those platforms. At the same time adding unnecessary bulk and weight to those apps.

    In case of FireFox, I assume that the core Gecko and JavaScript engine are written and compiled cross-platform, but then they are wrapped/included in platform dependent frameworks to build other functionality like GUI.

    On a modern desktop with CPU cycles to spare this is not a problem, but on a mobile devices with increasingly more tasks to manage, performance becomes more critical. The use of those general frameworks means that developers will be missing out on a lot of Apple optimized APIs (ex. like the new set of hardware optimized math functions) and use ‘clunky’ ones provided by all-in-one framework. Removing thus any hardware performance advances made.

    From my experience, generalized ‘you-can-build-anything-you-want’ type of frameworks (in web dev you can think Drupal, Joomla) foster ‘lazy’ development that is more concerned about getting something done, than making something truly great and that you care about.

    By saying sub-stantandard, I don’t believe Jobs just meant performance, at least that is what not was his primary reason. The problem becomes much deeper when you start talking about GUI.

    Anyone remember Java and how they always felt out of place? Has anyone seen Air app that looked (yes I am aware of skinks, yuk), acted and behaved like their native or non compile-once run everywhere junk?

    If you were to look at WebOS, Android, upcoming Win7 and iPhone OS, their interfaces have certain language that makes apps intuitive to use to the phone owners. I am not talking about games here, although Unity3D may be a victim of SDK agreement change, as they are all immersive environments. On top of that you have to start to worry about hardware – does it have back/home/search etc.. button? Again, more reasons to get ‘lazy’ or code bloated and so run on all devices.

    Do you know why Apple listed JavaScript, it sure is not as fast C derived languages, but it that can optimize the runtime it runs within. It can actually do something to improve it.

    It can improve its framework, and even it’s compilers.

    Oh, yeah, how good of job those compilers are at creating code for Apple’s particular processors? How good is Adobe at creating software that don’t consume or leak insane amounts of memory. Everyone shouts that ActionScript (running in Flash) makes their computer slow, yet people think that same poor language will magically create great binary/machine code?

    I am afraid today’s computer’s vast speed improvements, has made people forget how to program correctly, and just let the brute force and cheap memory take care of slow code. Tell me why computer have gotten so much quicker, but yet they do same amount of actual work.

    BTW, it seems to me like the same people who dropped JAVA long time ago, and just couple days ago were bashing Adobe for their poor cross-platform efforts with Flash; have suddenly started to defend the same ideas that made that made JAVA and Flash so inherently bad.

  73. Marc

    You obviously have not used Mozilla Firefox on the Mac. It follows NONE of the Mac interface conventions, it is slow and ugly on the mac.

    It is absolutely horrible.

    I support Apple on this one. You don’t like it?, go develop for Symbian, Android.

  74. Ruben Munoz

    Here is another article for those Adobe fanboys http://innerdaemon.wordpress.com/2010/04/10/sorry-adobe-you-screwed-yourself/

    Why does Apple need to allow flash on iPhone when no one else does on any smartphones.

  75. Jay

    Speaking of objective vs subjective, I think Firefox is a slow and bloated app that doesn’t feel very Mac-like. “I think it beats the pants off Safari.” I, and a lot of others apparently, don’t. So you’re right and we’re wrong? Just as subjective as Gruber.

    My opinion (and perhaps Apple agrees) is that given the quantity of software that’s out there for the Mac, a statistically larger number of apps that are written using cross platform technologies are crap. If your primary goal is building an app that can run on multiple platforms, then you’re most likely not going to spend the time making it really smoke on one platform. However, we’re back to subjectivity, and this is my subjective opinion.

    And, as for developers “running for the hills”, frankly, I’m quite happy about this restriction. It will hopefully reduce the quantity of crappy software that my software has to compete against for attention in an already crowded App Store. Note: I’m not worrying about competition on features, price, etc., but rather a potential customer’s ability to find my software among so much crap. So again, subjectively, you believe something that’s different that what I believe.

    I guess ultimately time will tell who was right. But, arguing about subjective vs objective in this instance is a pointless exercise because it’s all subjective.

  76. Dan Downs

    Unity3d is a better example of what should be allowed as the cost for game development is generally higher than most other apps due to creating or licensing assets as apposed to firefox.

    There is one point I didn’t see countered though. I’m not sure how long it took for developers to get their apps to be 3.0 compliant, but this delay and possible future delays to support 4.0, 5.0, etc… due to the use of wrappers could be bad for the end customer and delay them from updating to the newer OS version and in turn delay Apple from moving the platform forward as quickly as they’d wish. How much damage would this actually cause, only they can guess. Personally I think the change in 3.3.1 will only further harm Apple’s image as being over parenting. And with enough fallout I imagine they’ll change the wording, it might take awhile (and this might actually be what they’re looking for) but it’s not like they haven’t rescinded on previous app development issues for the iPhone, *cough* native apps, sdk nda, ratings *cough*.

  77. Mike Rose

    It’s interesting that all the conversation around clause 3.3.1 cites Flash CS5, and to a lesser degree Mono, but leaves out one of the more successful third-party IDEs for the iPhone platform: Unity3D, which has plenty of shipping games already on the App Store.

    For a game, the UI conventions go out the window (in large part), so most of the “it breaks the iPhone experience” arguments don’t hold water.

  78. T. Varadaraj

    One significant point being missed here is that the Iphone/Itouch and even the Ipad have limited CPU power compared to the Mac platform and do not have the cycles to absorb the extra layer of abstraction a cross-compiled app would bring to the table to provide a smooth user experience. For me, the USP of the Iphone is that it gets out of the way of what I’m trying to do, which cannot be said of many other phones I’ve had over the years. And that can happen only if Apple maintains strict control of the software side of the platform. I know I’ve gone over to the dark side, but that’s the way I see it.

  79. Josh of Cubicle Ninjas

    Gruber did a perfect job of explaining the situation. Jobs is watching out for the quality of the platform while also finally pushing Adobe to get their shit together. These are things good programmers ought to be applauding.

    What I’m most confused by is your mention of Firefox as a preferred browser. This is the EXACT problem – Firefox was once amazing, but is now bloated and possibly the worst browser on the market. But some people don’t notice the bad speed or constant nagging notifications, others do. Jobs is eliminating the possibility for these bad apps to exist on this platform.

    If you don’t like these restrictions than go build a web app instead. Or publish on Android and see what a lack of standards gets you…

  80. Tom

    Greg,

    But what about the history of Apple/Adobe?
    1) Fact: Adobe had NeXT’s balls with its Display PostScript engine, and failed on many fixes and efficient implementation issues which led customers to blame NeXT. I know, I was there.

    2) Fact: Apple with Steve back moved to PDF support to get around the PostScript license fiasco and moved to be free of Adobe.

    3) Fact: Adobe was terribly slow and crappy in its support of OS/X and Cocoa, and still doesn’t have the 64-bit support.

    4) Fact: Flash on OS/X sucks, and has sucked for an awfully long time, through years and years of complaints.

    Conclusion: Adobe has not been a good overseer and supporter of Apple’s best interests. Adobe is mainly Windows focused. Adobe doesn’t care about platform differentiation…they are all about selling tools that make all platforms the same.

    Flash is closed and proprietary and does not help Apple in any way…and by Apple locking in its tools its creating incentive and opportunity for Apple-educated developers to compete and innovate in a new space that won’t be dominated by old players with old software.

    You don’t have to like it…but Apple, Microsoft, and Adobe are all playing for the benefits of their own APIs, because who controls the APIs has power. No one is good or evil in this….it’s all about control and money. Adobe is playing the victim now…but they would not be in this place had they not victimized Apple/NeXT over the course of decades.

  81. Jack Freeman

    If Apple bans Unity3D, then they are just foolish.

    If you have to move a bunch of dirt are you going to use a shovel, or a bulldozer? Which one will get the job done better and faster?

    Apple wants to take its developers back to the stone age so that it can hand out the rocks.

  82. arhra

    > I’m almost sure that the look and feel of Apps made using [...] Monotouch would be really different from the native ones.

    MonoTouch binds directly to the exact same CocoaTouch APIs that native ObjC apps use. The UIs are built in Interface Builder, again, exactly like native ObjC apps. The only difference is that the app’s logic is written in C#, rather than ObjC, which is completely invisible to the user.

  83. Wilhelm Reuch

    Is Google buying Adobe? Is this what is going on here?

    Apple and Microsoft is currently rejecting Adobes ambition as platform vendor. Not surprisingly.

    But Google is not. ChromeOS and Flash recently warmed up to each other. ChromeOS will allow 3rd party developers to write webapps or use the Flash platform.

    Android will soon allow 3rd party developers to write webapps, use the Java platform or use the Flash platform.

    And suddenly ChromeOS and Android no longer seem so isolated. They can run the same apps. Flash Apps.

    And what are the Adobe toolchain used for a lot …. ahem … ads!!

    What is Microsoft and Apple doing? Moving into ads. So why wouldnt Google move into platforms.

    Flash would also fit the bill perfectly for putting more finish on Google Office (and Wave :-) )

    I have no idea … but it wouldnt be that surprising if it happened.

  84. Ed

    When every one of you complains about the exact same kind of restrictions placed on XBox, Playstation, Nintendo, Sony Playstation, then perhaps you’ll have something to stand on. Why people continue to treat Apple as the exception to the rule is beyond me.

    It’s their system, their “vision”, their right to do with their platform as they see fit. Consumers love how Apple makes things easier for them even if it results in upsetting a few developers that refuse to go with the flow.

    So while you folks (like Adobe) spend your time playing the “poor me” victim, everyone else is moving on with or without you.

    Welcome to the world of technology. Hate the game, not the players.

  85. Pingback: BlogoFlux – Latest news on Gadgets, Internet, Applications & Hardware » Blog Archive » Steve Jobs on SDK complaints: “intermediate layers produce sub-standard apps”

  86. Devon

    Creativity is born from constraints. Freedom actually stiffles creativity.

  87. John

    What were smoking when you wrote that firefox is the best? Are you so biased?

  88. Scott

    Am I the only one who’s feeling dejavu? Did Apple not learn from the old Mac/PC wars? Now they are making the same mistake again. Job’s argument against Flash and 3rd party Dev is so absurd, I have to wonder if he has lapsed into outright dementia. I’m very confident my team of developers is not the only one who will be abandoning iPhone and iPad development for the forseeable future–and instead moving to Android. This is the same kind of policies that Apple employed that ultimately drove them to the brink during the height of the old Mac/PC wars.

    Incidentally, I’m sorry, but I agree–Firefox on my iMac is hands down better than Safari. So much so, I had to do a double-take and re-read those who claimed the opposite.

  89. Dave

    Greg,
    Interesting post. I see your point of view, but I do fall on Gruber’s side of the argument.

    I went to a lot of trouble to write a java app that worked as well on windows and macs, so I do agree that it can be done, but in the case of Firefox, which I consider about equal with Safari, the use of non standard OSX UI elements at times (pop up menus, for example) bugs me a bit. Camino does a better job.

    Apple doesn’t need any crappy software for the iPhone, and with the commanding lead they have, they can afford to specify what people develop on, which does have a chance of weeding out the crappy programmers, a bit, if crappy programmers don’t/can’t learn Cocoa Touch.

    Having this kind of control also prevents runtimes like Flash from sucking up resources, giving the user a bad experience and the iPhone a bad name. Having a ruthlessly clean OS on the iPhone makes it as fast as it can be. My 3G is already seeming a bit pokey. I shudder to think what Flash would be like on it. Flash is the suck on OSX already.

    I wouldn’t mind Unity3D, which creates complete source code in XCode, will be allowed to go through, as long as it creates lean and mean code.

    I code and have coded in all kinds of environments, but having something with a slightly higher bar for entry (Cocoa, as compared to LabView, say) weeds out the wannabes in a hurry, and frankly I don’t view that as a bad thing. Likewise, I’ve seen some great LabView programmers.

  90. tom

    “There is truth to this, but I think it’s absurd to think that a third-party toolkit that failed to keep up with Apple’s APIs and produced poor quality apps would ever be popular.”

    That’s exactly what Flash/most of Adobe’s lineup is. And it’s the very issue. Adobe has “hindered progress of the platform” (which is the encompassing OS X, not the Mac-specific stuff) before and still now, but now Apple has leverage.
    It is true about crappy developers and crappy apps: there are a whole lot of really, really, really bad apps on the App Store.

    tom

  91. kirasaw

    So why complain? why not simply develop for a different Mobile phone system and sell the software thought their store. oh right the iPhone App store is the only one where you can make money. oh and the way that the iPhone and App Store became so popular was that everything seems to work together so easily and basically it just works. oh and the reason it all works so well together is that Apple keeps control over it! Talk about catch 22!

  92. Civilian

    Let me start by saying that both Firefox and Live are terrible apps to reference as examples of good OSX applications.

    I copied and pasted my comment to a post on another blog to illustrate what Apple is trying to avoid. See, my comment talks about the topic at hand but doesn’t specifically address any of your points. Its analogous to an app that works on the iPhone OS but doesn’t take adhere to any of the development guidelines nor take advantage of the iPhone’s unique features.

    Read on.
    I think that by restricting developers to a specific set of languages, Apple can somewhat ensure that developers target their platform specifically rather than have developers submit apps that are built for the lowest common denominator of mobile devices. I guess they don’t want to foster an environment that mirrors what’s on the web today. Most websites leave out a ton of features just because IE6 cannot support those features. I do believe that developers produce their best work when they target a specific platform and take advantage of the unique features that platform has to offer.

    It is also good business for Apple to maintain a base of developers that are “married” to their platform. Imagine an environment where most iPhone developers migrate to Flash CS5. In such an environment, if Apple releases enhancements to their frameworks, developers would have to wait for Adobe to integrate those changes into Flash before the developers could take advantage of Apple’s improvements.

    What if Google buys Adobe and decides CS6 will only come out on google chrome and Flash will only support Android? Apple and all developers that target iPhone OS get left in the dust!

    Let’s face it, we always have a choice of mobile phones but when it comes to graphics applications, Adobe is a very strong monopoly. I’d be cautious siding with them on an issue such as this. It may not end well. How much is the web premium suite again? Do you think we would have to pay that much if Adobe and Macromedia never merged?

    Adobe is a behemoth. IPhone devs may not be able to use Flash but I’ll bet my last dollar that 99.9999999876% of all graphic content you’ll see on Apple, Sony, Microsoft, Palm & Android devices as well as the web will be created using Adobe’s tools. Isn’t that enough?

    I don’t necessarily have an issue with Adobe’s goal of making flash an indispensable tool but I do think that a lot of comments in the blogosphere wrongly suggest that Adobe may have altruistic motives. Adobe’s goal isn’t to give developers choice; it is to maintain and extend the dominance Flash currently enjoys. Apple’s goal isn’t to limit developers choice but rather to ensure that their platform doesn’t become just another deployment target for Flash.

    Consider the following:
    If a developer uses Flash, who becomes responsible for performance tuning? The developer or Flash?
    My guess is Flash.

    If Flash achieves 65% penetration into the iPhone development market? Who becomes responsible for how efficient Flash generated byte code runs on iPhone?
    My guess is Apple because end users will not attribute sucky performance to Adobe but to Apple.

    Both companies are right so there really is no need for Adobe evangelists to pretend this is a fight about open vs closed.

    I bet the blogs on here will have a totally different tone if MS/Google/Apple release free tools that allow developers to deploy their apps as Flash files. We will not hear all the clamoring for choice on the developers behalf.

  93. iPhone.Coder

    Having been an evangelist of the RealBasic cross-platform tools, I understand Steve Jobs point of view. RealSoftware lags by years incorporating the OS features for the various UIs and underlying features of the OS if ever. They compensate by having a mechanism to load the OS frameworks, libraries and call directly. The compensate by having the ability to craft plug-ins for the tools. Neither is an adequate solution. If you are learning the API you have to understand the language, and without a pressing need you should program in that language. For the desktop the cross platform tools make exceptional sense. Develop once plus some small increment and deploy on Mac OS X, Windows, and Linux from one source. Awesome. But phones and other mobile devices are odd critters. They have specialized hardware, the phone modem, the GPS, location services, the presence or absence of dozens of features like keychain vs registry vs some profile file in text vs … And all that needs to be transparent to the developer. The “Why” of Apples success with fewer issues is they have had User Interface guidelines documents from nearly day one, they promote 3rd party programs they like that fit the Apple “way”, and they set reasonable expectations for users. “New Folder” will always be expected in the same menu of and App, and certainly (unlike certain Redmond vendors) never move from place to place in the menus _of the same application_ crafted not by some third party, but the OS vendor themselves. I am _not_ an Apple fanboy. I send suggestions weekly to them (and get quite a few showing up in future product releases). I do the same to Redmond and it is as if the NIH field is at full strength. Sometimes they would send threatening emails back from Redmond. So … Learn Objective C … It takes all of a few hours if you know C. Or do Objective C++ it takes a bit more moxie and knowledge of what can and can’t be mixed, but opens up a lot.

  94. cakpuad

    I’m almost sure that the look and feel of Apps made using [...] Monotouch would be really different from the native ones.

  95. Paul

    I initially agreed with you, but Gruber’s posts completely changed my mind. Gruber is totally right. Any sort of translation is worse than the original (Try running the same phrase back and forth through Google Translator and see what I mean!). And Greg, you are wrong with your example. Firefox for the Mac *sucks*. I’ve been waiting for them to make it fully cocoa so I can use services and THEY STILL HAVEN’T! Plus, it’s much more buggy AND slower than Safari. I’m still waiting for a great web browser, but Firefox is one of the worst for the Mac.

  96. mconnors

    I will be looking at android to develop and will forget the iphone/ipad for now. This was a stupid idea on apples part. They basically pee’d on the hand that fed them, the legendary loyal fan base that did creative work. Once you tell a developer you’ve decided to change the rules for your own selfish needs and cost them time, and caused them extra work- you just sent them to a competing platform to never return. I expect a lot more cooler apps coming out on android and a few apps, albeit solid apps, for apple. Just like a previous comment wrote, this is exactly how they ended with 5% of the desktop market in the 90′s. Being a pretentious boob with the cooler gadget just doesn’t fly all the time.

  97. Al

    Maybe I am missing something. But if I could download a Flash or Java app off the web and run it inside a browser on an IPad/IPhone, how would Apple be getting its cut that its gets now when apps are sold through the App Store? Allowing Flash/Java would be a suicide for the business model.

  98. Matt D

    Publishing on console hardware is a vastly different experience. Microsoft / Sony / Nintendo et al have transparent TRC (or TCR) documents which you have to abide by, there is no “submit and see” process at all. Failing submission is never a surprise. It’s worth noting that submission also costs a lot of money. The incentive is there to get things right the first time.

    There is also very little control regarding *how* you developed your application. As long as you linked against the correct SDK, you can have scripting languages, intermediary layers, whatever the hell you want as long you have the legal right to publish it. Hell, a number of games ship flash runtimes for UI, lua, javascript. Whatever tools get the job done, as long as you stick within the rules of the TRC (for things such as minimum framerate etc).

    This rule change isn’t about quality, its about adobe, and the perceived lack of quality when CS5 starts translating mediocre flash games to something the iPhone can run. The quality bar for the App Store is already at rock bottom, arguing that intermediary layers (or ported flash apps) will somehow reduce “quality” is absurd.

    As for the performance of cross compiled flash games/apps, if apple’s approval process mandated a minimum frame rate, the questions of “performance” would go away very quickly. If you cant hit frame rate, or some other acceptable, transparent measure of UI performance, you cant publish on the app store. Any end user perception issues go away instantly. Flash itself isn’t the problem in most cases, its usually whatever the author has done that is the issue.

    What apple needs is far better, more transparent TRC’s, transparent interaction with developers, and a push for quality apps. How you get to quality should not be of concern of apple.

  99. Civilian

    It’s funny how developers get so emotionally attached to a feature in a yet to be released Flash CS5. How oh how did all the apps in Apple’s app store get built without Flash CS5?
    When in England, drive on the left.
    When on iPhone, develop in objective-c!
    I know the square brackets look menacing but I can assure you with utmost sincerity that those buggers do not bite :-[=]

  100. chandra

    The point that is missed in this argument is, it is not about cross platform tools but meta platforms like Flash CS5 and MonoTouch.

    And Apple’s section 3-3-1 seems to apply only to the code that accesses the iPhone API. I am not 100% sure but you should be able to write your logic in any mini-language as long as there is a native interpreter built into the app.

  101. Michael

    I have been reading though a bit on this topic… and it seems to be muddied just like most every topic in this area.

    The fact is… and this is my stance with the desktop as well… There is no experience that can compare let alone beat a native experience.

    I agree with others in that using Firefox is a very poor case statement. As much of a fan as I am on using Qt for cross platform work, I also believe that user facing code needs to be native. Why so? because there are methods and behaviors that are polar to each platform. What makes Mac OS X so great is that even the most marginal 3rd party software can be stellar when written 100% in Cocoa and follows the guidelines.

    The integration of software to the platform and the consistency of this integration is even more paramount when it comes to mobile devices.

    Understand that while the IPhone OS is built upon the seeds of Mac OS X, it is not Mac OS X (for the Ux perspective).

    I do contend that when looking at Section 3.3.1, The only “looser” in the end will be the developer who does not want to adhere to standards. Can anyone provide an an Anti-3.3.1 example where the ” Selfishness ” of the developer is not palpable? And if in the case of Flash developers… Isn’t it less effort Adobe to implement a Flash/AS -> HTML5/CSS3 export tool then to write an interpretation layer? Damn right it is easer!

    But I am starting to digress…

  102. taher

    can i get the email address :)

  103. Civilian

    @Matt D
    I think the “submit and see” is just a stopgap and a very unsustainable one at that. I think it will disappear shortly and be replaced by a more reasonable process.

    I think it is also worth mentioning that even though console manufacturers may not care about how you develop, unlike Apple, they care about who you are. I doubt that any developer who doesn’t have the resources to port a flash app to objective-c would even qualify to develop for any of the consoles. You will not even qualify if you work out of a home office let alone a college dorm.
    I lifted this from Nintendo’s dev site.
    “Developer Qualifications: An Authorized Developer will have demonstrated the ability to develop and program excellent software for Nintendo video game systems or for other game platforms. In addition, an Authorized Developer will have a stable business organization with secure office facilities separate from a personal residence ( Home offices do not meet this requirement ), sufficient resources to insure the security of Nintendo confidential information and in order to ensure an effective environment for working with Nintendo and/or its Publishers. Nintendo provides Authorized Developers with highly confidential information and many of Nintendo’s Publishers also rely on recommendations and referrals to Authorized Developers. For these reasons, Nintendo exercises a very high level of care in evaluating Authorized Developers.”

  104. Tim

    The best thing about this argument is that it provides yet another fine example of when passion overrules reason. Apple users make me laugh, they all turn up on mass to road shows, applaud everything discussed. Never criticize. For them, everything Apple does is a “game changer”.

    How I fondly look back at all the arguments for the Power PC and how superior it was to the Windows/Intel chips (back in those days the terms intel, microsoft and windows were interchangeable).

    Then, oh my god, Apple switched — GAMECHANGER, REVOLUTIONARY, AMAZING. THREE CHEERS FOR HIS HOLINESS JOBS.

    Then we got stories about how BSD.. I mean OSX was better and more innovative and Apple were so much smarter. Bang lands the
    1. IPOD – GAME CHANGER,
    2. smaller iPOD – AMAZING,
    3. smaller smaller iPod – INCREDIBLE,
    4. smaller smaller iPod without a screen – bloody unbeliveable!!
    5. iPHONE – GAME CHANGER,
    6. iPHONE without the phone bit (iTOUCH) – INCREDIBLE GAMECHANGER ..
    7. bigger iPOD Touch/iPAD – REVOLUTIONARY GOING TO REDEFINE COMPUTING…

    Imagine if back in the day, Microsoft bared Oracle from it’s platform as it competed with SQL Server, how would that have gone down? Imagine if Microsoft banned iTunes from Windows because it competed with WMP? Oh the outrage you all would have felt. Imagine if the open source movement made similar rules to bar reuse of it’s code in commercial applications, you wouldn’t have OSX and arguably you wouldn’t have Apple.

    All these big companies are pirates (or poor Xerox, how many of your ideas did these guys steal and continue to pass off as your own!)

    Please write on my Apple friends, I am loving every minute of your outrage and sense of entitlement. Please don’t take this as a criticism of your religion, it’s just you are all so dammed funny.

    See you on the other side..

  105. Pingback: Go Steve Jobs « GP Apps

  106. Rich

    Developing for various platforms often requires an investment in learning some new tools to provide the best end user experience. Whether it be for the Playstation, or the iPhone, each platform has it’s own optimized tools, languages and preferred methods of delivering applications. Learning these new tools (and in some cases languages) has the side benefit of providing insight into the target platform, and I think ultimately producing a better quality product.

    Barriers to entry (such as understanding the iPhone SDK and Objective C, which is a fairly minimal barrier) are not necessarily a bad thing. Those that have invested the time, gained some understanding of the platform, and have published apps are likely to be more keen to see the platform as whole succeed. I think in the end you have a more vibrant, vested developer community.

    On the other hand, taking an existing flash application, doing the conversion, chucking it on the appstore, and seeing if it sells, does not enhance the iPhone developer community at all, only results in a glut of less than stellar apps that clog the appstore. I don’t see the benefit for the end user, Apple or iPhone developers, only for those that don’t want to invest any time or effort into the platform.

    Ultimately the developer can determine which is the best use of his / her time, learning something new, or sticking with what they know and targeting those platforms where their skills are applicable. Nobody is forced to develop apps for Apple, they can choose any number of other platforms and maybe ‘Flash Apps’ on the Android will be what every end user is looking for and will flock to that platform. In fact, maybe all those that feel that ‘Flash Apps’ are the killer applications should prove Apple wrong and port them over to the Android platform, make their millions and laugh all the way to the bank. Good luck with that.

    I’m glad that Apple took a stance that I believe will ultimately strengthen the iPhone / iPad franchise, and shows a commitment to those developers that have invested the effort. If you want to be in the club, then pay your dues, which are minimal ($99 plus a bit of time).

  107. JB

    First, like most people here, I have to agree that Firefox on the Mac sucks more than any other browser. I use Safari and Chrome regularly, and avoid Firefox like the plague unless I absolutely need it (which is very rare). It’s slow, buggy, leaks memory and definitely doesn’t feel like a real Mac app.

    Second, to everyone here that has been making comments like “Any developer with self respect will shun Apple”, you people are idiots. I’ve written an iPhone app, it’s in the store right now, I definitely have self respect, and I think Apple’s decision is fine. In fact, I applaud it. Now the time I spent learning Objective-C and Cocoa Touch proves itself worthwhile, and I’ll have less competition from people too lazy to bother. Really, this is just a whine fest from people that don’t want to learn a new tool. Wipe the wha wha tears off your chin and start acting like adults instead of first graders.

  108. Michael

    First of all, Firefox on the Mac is objectively terrible, it is the slowest browser on the platform. Moreover, it is non-standard and ugly.

    However, the real thing that bothers me is that Adobe is not stepping up and admitting their problems. I have to have an entire separate server at my office to handle our scanning in pdf format due to the bloated inefficient nature of pdfs. Flash is so terrible that people install things like click2flash. I am also tired of hearing from Adobe that flash is coming soon to mobile devices…have been hearing that for years. Yeah, works real great on the joojoo.

    Yes, Apple could have handled this better. But if you think that having CS5 with an export to iphone is going to make anything other than an app store filled with crappy ports of crappy flash games you are wrong.

    Most of the public won’t even be aware of the battle. They just want something that works. That requires a lot of control and tough decisions, many of which unfortunately make life difficult. My non-techie friends who have tried Android hate it. There is a reason iphone has been number one for three years: Apple’s control.

  109. Michaelthewalker

    If anything, I think Firefox is a case against 3.3.1 rather than for it. I think Firefox is a fantastic browser, and it’s definitely my brow ser of choice when on Windows or Linux, but the OS X port is hideous. Not only does it run more slowly than both Safari and Chrome on OS X, but it’s significantly slower than Firefox on any other platform I’ve used. Firefox is NOT a good example to bring up when discussing well-written cross-compatible software on the Mac.

  110. Frank Cohen

    Excellent analysis. Please keep it coming.

    I have 2 things to point out:

    1) Appcelerator Titanium is an Web development toolkit that does not require Objective C expertise. It’s pure HTML5/Ajax. It is effectively banned under the new terms.

    2) Flash isn’t a development environment as much as a content playback mechanism. How will iPad/iPhone/iTouch benefit from all the Flash encoded porn in the world?

    It seems to me a very USA-centric thought process at work at Apple. It’s the same thinking that got us in Iraq, that we just saw in the Healthcare debate, and that is used to be a defining Microsoft behavior. It is the belief in one’s own right to make decisions without regard to some better good in the world. We have to get past this thinking. It is bad for everyone.

    -Frank Cohen

  111. Pingback: Steve Jobs responds on iPhone SDK's new Section 3.3.1

  112. Jonathan Bruder

    API lockdown ultimately leads to a monoculture, which is ALWAYS harmful. Better to take the bad with the good than choose the consistently mediocre.

  113. James Katt

    I happen to agree with Steve Jobs.

    If you are not a good enough programmer to quickly learn C, C++, or Objective-C and X-Code, then you are simply not good enough to write top-notch apps for the iPhone platform.

    What Apple has done is to weed out the less talented and less creative programmers with this simple clause.

    Consider it an IQ test.

  114. Todd Blanchard

    Ableton has its fans, but its not a Mac application and it shows. I found it so frustratingly alien that I wrote JambaLaya for myself rather than spend a lot of time wading through Ableton. It was just quicker to do it that way.

  115. frin

    Stop blabbing, nagging Steve and accept it. What Apple is afraid of is inconsistency, and inconsistency brings chaos. By allowing third party languages they have no control over compiler’s bugs, its ability to insert interpreted code, thus running something unexpected, like a virus.

    > but can you imagine a Mac without Mozilla’s Firefox?
    – yes I can, mine, and I am not alone. Firefox has been going downhill ever since version 2.0. The only thing still keeping it alive is its popularity and its plugin base.

  116. q00p

    @Greg. When you write:
    “In my opinion, 3.3.1 only serves to make the platform less attractive to legitimate developers, giving them reason to write their software for competing platforms instead.”

    For me, as a “legitimate developer”, that is not true so let me rephrase that for you:
    In my opinion, 3.3.1 only serves to make the platform less attractive to some legitimate developers who does not want to learn the tools, API and language of the target platform, giving them reason to compile their software for competing platforms instead.

    That I can agree with. Fail to see why that is a bad thing though…

  117. Doxxic

    It seems to me that at the core, Apple is concerned with how well iPhone OS apps perform on this fast developing hardware category that is constantly entering new usage areas.

    It’s not very important for Apple to be the first to offer new usages, but in order to keep their brand alive they need to be the very first to offer them really well.

    One of the things that hinders Windows so bad and will hinder Android really soon I’m sure, is the big variety in legacy hard and software.

  118. AnAhHaMoment

    A QUOTE from GREG response,

    “Gruber is wrong, there are plenty of [applications] written using cross-platform frameworks that are amazing, that he himself has praised. Mozilla’s Firefox just being one of them.”

    MY RESPONSE to GREG:

    OK, plenty cross-platform applications? Really, let’s really take a IN-DEPTH LOOK at these MANY AMAZING CROSS-PLATFORM EXAMPLES?

    Ok, Mozilla Firefox, that requires a TEAM, A BIG TEAM of DEDICATED and HIGHLY EXPERIENCED individuals to do cross platform stuff. Second, the Linux version of Firefox is almost always a few versions behind the Windows one. And, regardless, you still have LOTS of platforms to test against. So, yes, quality must have suffered.

    Everyone should ask themselves, “Does the entire world really have enough developers that are highly experienced and have the extra time to develop cross-platform stuff?” NO, no, no.

    OK, Firefox, that’s one, any other AMAZING cross-platform apps? And what did it take, developer wise, to produce this AMAZING cross-platform app?

    Look at Java, write once, run anywhere, that didn’t go far did it?

    Look at .NET, great stuff, but can it run everywhere like other platforms and with NO PROBLEMS or GOTCHAs. NO, no, no.

    FIRST POINT
    Even if .NET could, would the developers really have the experience as well as the TIME that needs to be dedicated for a quality product? NO.

    Very few developers can even do a successful app that people like to use. Now, to add cross-platform availability, “Quality” will have to suffer as it SIMPLY ADD MORE TIME to the development process.

    The more features one wants, e.g. cross-platform features, the more time it add in a developer’s world. That extra time is not, and has never been, in abundance in the developers’ world.

    LAST POINT
    Last point, this is a MOBILE app, right, as opposed to a Desktop or Laptop app. So code that performs well, will matter even more in a mobile app vs a desktop or laptop app.

    Good, highly optimized software code matters a LOT more in a mobile device than say a desktop or laptop computer.

    It matters because it has a much smaller battery, smaller cpu power and memory, PLUS, the user of a mobile device wants there info and answers NOW, like RIGHT NOW. Why, because a mobile user is typically on the run and needs stuff now and has less time to wait around than a desktop or even a laptop user.

  119. Kevin

    As many others have stated, Firefox is a *really* bad example for your point, and it pretty much makes Steve’s/Gruber’s.

    Some of Firefox’s functionality is really great – and that’s the major reason it’s proponents prefer it to Safari. But on quality, it’s far behind Safari. Buggier, crashier, and less Mac-like.

    The things I hate most about Firefox are the same ones that result from it’s cross-platform roots. Browser nirvana would come from someone delivering Firefox’s feature set in an app that was actually designed for the Mac.

    All of Firefox’s problems stem from developers doing what’s easy for them, instead of what’s in the best interests of the user.

  120. Ed

    @Civillian
    Thank you for adding a bit of reason to an otherwise chaotic thread.

    I (we) must be from the older generation of developers. I’ve been doing this stuff for 20+ years and learning new languages as technology changes is just part of the price of admission. I don’t see anything wrong with it and I truly don’t get the ruckus these folks are making.

    The folks complaining must be the younger-folks that seem resistant to change. If they are, they are in for a rude surprise as time goes on and they get older.

    Apple’s “restrictions” are far-less severe when compared to other proprietary systems. Nintendo’s requirements prove just that. The other console makers have similar restrictive doctrines that make Apple’s system appear free as a bird.

    So you complainers just need to get a reality check. This stuff has been going on for ages. If you can’t handle it, go to Android and end this static. Just don’t come back crying because Android ends up becoming a forked-fractured roadmap like linux distros. You’ll end up wishing for Apple’s OS consistency.

  121. Kevin

    “Crappy developers will make crappy apps regardless of how many layers there are”

    So why give them the opportunity to do so with more layers than necessary?

  122. jrk

    if you think firefox is top notch then you should switch to linux/windows/android.

    apple’s platforms are not for people like you.

  123. alex

    I’m glad so many people have already commented on how bad Firefox is compared to Safari.

    FF3 is a lot better than FF2, but really… It takes too long to launch, the keyhole navigation buttons look ridiculous, the window gradient is wrong, font rendering is nowhere near as good as Safari, drop-down menus in forms aren’t implemented well, the print dialogue isn’t as good, the tab close button is on the wrong side of the tab for a Mac… The list goes on and on. In fact, I think it’s the perfect example for why Apple is *right* in enforcing the use of its tools to create apps for the iPhone OS.

  124. askwatt

    What you are missing is that Apple is trying to make sure that the user experience is good on the Iphone and related products, not necessarily the quality of the app itself, just the way it is written and thus performs. If people want fart apps then the app store will have fart apps. If people don’t then they will disappear (don’t hold your breath). What Steve is really trying to do is prevent what happened to Windows from happening to the iPhone. Any idiot could create an application for Windows, using many different methods. Sometime, perhaps often, the lower quality methods put out applications that ran poorly, used too much of the system, or crashed. Micorsoft took the brunt of these poor quality apps, and now Windows is known more for the bad then the good.

  125. Daniel

    As a c# developer I can say the the c# language has features like memory management, type safety and garbage collection produces better, more stable applications quicker then objective c does.

    MonoTouch binds to the native libaries so looks and feels exactly like an object c application except cost less to develop and is more stable.

    If steve jobs in not interested in that then the developers will move to android and windows phone 7. Steves loss will be their gain

  126. neimado

    THIS IS APPLE. If you don’t like it, don’t buy it, don’t develop for it, and don’t care about it. Move on. Get Android. Use Linux. Anything but the oppressive regime that is Apple.

  127. Koalaboy

    Up until a few years ago, the general consensus was that Java & scripting languages were far too inefficient or slow for ‘proper’ development, and it was basically C/C++ or nothing.

    Somehow, everything has magically changed because interpreted code is seen as absolutely fine for top-quality applications.

    Has better hardware meant programmers have become lazy ? Partly. If you don’t have to worry about the performance so much (and many people seem happy with poor performance these days) then it allows less-competent programmers to knock something up without worry.

    There’s also been a bigger move over the last few years (and I’ll get flamed for this) of designers and ‘web’ experts moving into producing applications – because you don’t need to be educated as a programmer to produce quality applications, obviously – and their choice of ‘language’ is the one they know… Flash.

    If you want to produce the best quality for a platform, you should write as close to the metal as you can – whilst machine code is possibly a bit too much for most people, Apple are certainly best placed to provide the most efficient framework upon which to build, and any layers on top of this will only add inefficiency.

    Java is a classic example of this – as much as the VM engineers squeeze performance out of the hotspot compiler, more and more ‘enterprise frameworks’ come out which add bloat and complication… and inefficiency… so programmers don’t have to work so hard, or know the technical aspects of what they’re trying to do.

    Perhaps all the people who think this is a bad move, will be happy when the only way they can write software is in a Flash VM in a web browser (call it a web OS if you want to be particularly stupid).

    All I see is a lot of people moaning because they don’t want to have to learn a language (that isn’t difficult) which they don’t already know – they’re lightweight programmers who think they should have a ‘right’ to develop on a platform in any way they choose, because they’re lazy.

    As others have alluded to, it’s similar in the games console market – developers complain about the PS3 because it’s ‘hard’ to develop for… guess what – that’s why some of us are programmers and some aren’t.

    The irony here, is that Greg feels the need to complain even though he’s capable of coding in Objective-C (and many other languages). For a company that has a ‘passion for software’ and have praised Apple for their ‘environment’ (and made money from it) it seems bizarre that there should be a problem here – perhaps it’s to appear ‘cool’ to the design crowd.

    Good programmers work with what they have, to produce quality software. Anyone else is likely a bad workman blaming their tools. If this is how the new ‘generation’ of developers think it should be – moan until everything changes to the way you like it – I’m about ready to move on.

    Pride and quality in what you produce, not moaning at the circumstance because it’s ‘not fair’ or ‘too hard’.

  128. Mark Smith

    Your examples are rather unfortunate from my point of view because I consider firefox on the mac to be one of the worst pieces of software crap that I’ve ever had the displeasure of using – in fact I find it to be a counter-argument – the quality and lack of intergration are so bad that I simply refuse to have it on my systems.

    About the only place firefox fits is on the Linux desktop, were the previlaling lack of quality actually makes it look rather good!

    But then is don’t find Apples actions to be “evil”, for a couple of reasons.

    • Business is war, and this is a very admirable stratergy – fighting an entrenched foe head on costs everyone. The better approach I’d to prevent him from rising in the first place.

    • As an iPhone developer I really wasn’t looking forward to competing against the inevitable wave of flash applications. Poor quality or not the more noise the harder it is for users to find my apps, and with Adobe setting Flash in CS5 up as the new thing for flash developers we can add thousands and thousands of Flash developers to really don’t give a shit about the IPhone playform, forcing their weekend apps down our throats.

    Thank you Apple, from the bottom of my heart.

  129. Pingback: אפל ואדובי ראש בראש: אפל טרפדה פרויקט לבניית יישומי פלאש לאייפון; אדובי שלחה את אפל לעזאזל « אינטרנט, מדיה, טכנולוגיה | 140

  130. Rene Knigge

    So, the owner of a gadget lays down the rules. Of course everything from his point of view. So far, it’s a huge hit. You think he is going to change his mind?

    Get over it. He is right. And if you don’t like it, move on! It’s a free world. Go for Android or Win7 if the grass is greener over there.

  131. Matt Johnston

    The difference between Unity3D and Flash CS5 is that the former creates an Xcode project which you build using Xcode, the latter compiles directly to ARM bytecode.

    Games are a very specific area which Unity works with. I’ve seen some CS5 apps on the iPhone (using the beta packager) and despite the fact they’re basically slideshows, they are not high quality – they’re sluggish for a start – and I have experience developing similar apps on iPhone (despite not being a developer) and the experience was much smoother with native code.

    To be honest I doubt very much that this clause will affect Unity. I believe this is all part of a much bigger play.

    Anything created with CS5 won’t support Game Center, the ‘seven services of multitasking’, they won’t respect the new location services APIs. In short – you’re likely to have to wait until CS6 to get those. How exactly is Adobe being developer friendly here?

    The hypocrisy in this argument of course is that some folk are flaming Apple for their closed environment while lauding Adobe for their closed environment.

  132. Pingback: Steve Jobs Responds To Developer Agreement Concerns | Gizmodo Australia

  133. Dave

    Can I imagine a Mac without Firefox? Absolutely.

    I find it interesting that Greg posted a tongue in cheek comment about he and Jobs playing poker but hasn’t added his rebuttal to the (justified) comments about Mac Firefox being a piece of crap.

    I notice a lot of people threatening to move platforms yet they never cite the software they have worked on (if any) – it will only be the bottom feeders who push out pieces of crap.

    Build a bridge and get over it – it will be interesting to see how many of the faux developers actually go migrate to Android and stick to their word.

  134. Oliver Michalak

    IMHO the important part is Apple is regulating by a technical argument (native “C”) but arguing with a quality argument (native to the platform and OS) – this gap is shortsighted: it does not solve the problem of poor quality fastfood games, in fact it does raise the dev bar for “creative” indie developers by banning external framework support aka Unity and Shiva et al and hence mainstreams the app quality – is this what Apple wants?

  135. Me

    It would have been useful if they had outlined that using other languages for the GUI is not allowed, but is for the logic behind the GUI. I cannot imagine people are going to script adventures and other larger games in C, it’s quite impractical.

  136. V

    Just a small correction. iPhone is not the #1 smartphone in any market in the world. In the US where iPhone is the strongest it has less users than Blackberry. Blackberry is #1 in the US.

    Another example, in Italy (the largest smartphone market in Europe) Symbian has 75% market share in smartphones. And that is the #1 platform in Italy (as well as other countries.

    Still, you have good points in your article. Keep up the good work.

  137. God of Biscuits

    To the guy who wants to use C#? You can’t. It’s not up to the task. Too bad. New platform, new tools.

    I want to write Windows apps with Objective-C. Why isn’t Microsoft supporting me? whaaah waaaah waaaah

    What Adobe’s trying to do isn’t a cross compiler, it’s a metacompiler.

    Why is no one calling Adobe on the carpet and demanding they explain WHY they’re REALLY putting this tool out there in the first place?

    The impedance mismatch between the Flash UX and the touch UX is high, the overhead is high, Apple will be unable to provide OS and hardware optimization cover for the bi ball of binary crap the tool will produce, and yet Adobe thinks that people are going to want to use this technology?

    Because they’d rather learn all these workarounds and special-casings and edge-casings than to learn Objective-C and Interface Builder and learn how to develop a UX that has no hover?

    Adobe wants what they’re accusing Apple of taking and they’re being pissy because Apple successfully defended their own turf against the Barbarians at the gate.

    Does Adobe permit 3rd parties to develop Flash applications without using Adobe tools? Are there Flash runtimes out there that are knockoffs of Adobe’s that Adobe sanctions?

    As for Firefox? Crap. Its text rendering is crap and unlike every other Mac app. It disrespects font layout rules in favor of pixel boundaries for uprights. There’s no Dictionary service in the text. The widgets aren’t real Cocoa widgets. The UI elements are off slightly becuase theyr’e not real elements. There are no NIBs in the bundle

    Adobe AIR apps all look the same and SUCK.

    Kindle had to write a real app for its iPhone app and it works ok. Kindle used some cross platform technology for Kindle for Mac app and guess what? It blows.

    Adobe wants to own Apple’s destiny, pure and simple, and Apple wants to own its own. Which is more deserving of ownership?

    Apple’s working hard to get HTML5 out there. Adobe’s trying to weaken and delay it.

    And let’s not forget: Flash is proprietary technology.

    It’s ActiveX for the 21st Century.

    And we all know how that turned out.

  138. Bob

    Yeah that was real nice: telling Steve Jobs (who’s had cancer) that his SDK terms are like an “invisible cancer”.

  139. AppD

    This will just improve the overall quality of iPhone apps.

  140. Theo

    Some things:
    Users don’t know and don’t care about this, or at least they won’t unless some of the popular, Unity 3D made apps now disappear.

    Adobe can and should take Apple to court. Apple is abusing a monopoly position in the Smartphone market. Jobs will surely fight this but if the case gets accepted, there’s a good chance he’ll lose. What’s good for Microsoft’s abuse is good for Apple’s abuse.

    If the EU competition authorities take a look into this, there’s a good chance that Apple will run into a brick wall. Here again, Jobs will fight, and he almost assuredly lose.

    SJ is looking very frail and I personally don’t see him as long for this world. I think this is what he sees as his life achievement and thus all the OCD control mania from him. After he’s gone, Apple will almost assuredly fail in the long term.

    I’m not gonna wait. I’m switching my CS license to Windows.

  141. Wow

    hi, this is extremely stupid. if you’re stupid and use proprietary technologies this is what you get. the stevey wonder jobs doesn’t know a thing about computers, he’s a dumbass who learned typography instead of learning to write code. that kind of douchebag is not supposed to run a computers company. so you just don’t use his shit, that simple, get a job where you can write stuff without being restricted. if you were writing C or Perl or C++ and you chose the right libs this would never happened. but because you choose to use the stuff a douchebag made this is what you get …

  142. ManniAT

    What I’m missing here are thoughts about immediate consequences.

    What’s about the companies working on bigger iPhone projects using MonoTouch or other (now forbidden) technologies? Thousands hours of work ending up in the waste basket.

    Flash developers are in a better situation – for them it’s a future thing which now doesn’t take place.

    But for the others already investing time / money it’s real hard what those two sentences in 3.3.1 mean. And the reasons they give are quite obscure.

    “Missing native look and feel” – sorry but with MonoTouch you use the same tools / elements as with native XCode. The only difference – you use C# as language. And you are almost safe about memory leaks. So from that point of view SJ had to say – you MUST use MonoTouch, because obj-c has no automatism to prevent the developer from errors in memory management 

    To be serious – for us (as company) this TOS means the loss of plenty of money.
    It’s much more than a philosophic question about what SJ has been smoking when he designed this new TOS. And if you check the appstore – we are not alone.

    The most annoying thing about it – I had hope that some of the “big ones” (especially Adobe) would fight that new rules. But instead I must read “iPhone is one of 100ds new things in CS5…”
    They are simply accepting it make their customers thing “it’s not a big thing”.

    The fact – it means Flash developers miss a chance to target more than 80 Million customers

  143. Theo

    @Greg

    “But what about the history of Apple/Adobe?
    1) Fact: Adobe had NeXT’s balls with its Display PostScript engine, and failed on many fixes and efficient implementation issues which led customers to blame NeXT. I know, I was there.”

    So was I, and blaming NeXT’s high price and typical Jobsian monomania on Adobe is hilarious, but wrong.

    “2) Fact: Apple with Steve back moved to PDF support to get around the PostScript license fiasco and moved to be free of Adobe.”

    The license costs are minimal in terms of the OS, but PDF is an open spec. PS isn’t. Note the word, OPEN. Funny how it’s nice if your favourite candy floss is using it, but how it’s bad if the enemy of your favourite candy floss is using it.

    “3) Fact: Adobe was terribly slow and crappy in its support of OS/X and Cocoa, and still doesn’t have the 64-bit support.”

    64-bIt CS5 will be announced on Monday. You know why Adobe kept everything in C++/Carbon? So that it would be easier to port. It’s now much harder. Adobe can and should make a huge price hike in its Mac products to compensate themselves. Would only be fair, right?

    “4) Fact: Flash on OS/X sucks, and has sucked for an awfully long time, through years and years of complaints.” Apple has never exactly made it easy for Adobe either. Apple’s version of compromise is “FU”.

    “Conclusion: Adobe has not been a good overseer and supporter of Apple’s best interests. Adobe is mainly Windows focused. Adobe doesn’t care about platform differentiation…they are all about selling tools that make all platforms the same.” Adobe moved its main platform development to Windows when the Mac was a dying mess.

    My guess. Windows and Adobe will still be around when SJ and Apple have both died.

    Flash is closed and proprietary and does not help Apple in any way…and by Apple locking in its tools its creating incentive and opportunity for Apple-educated developers to compete and innovate in a new space that won’t be dominated by old players with old software.

    You don’t have to like it…but Apple, Microsoft, and Adobe are all playing for the benefits of their own APIs, because who controls the APIs has power. No one is good or evil in this….it’s all about control and money. Adobe is playing the victim now…but they would not be in this place had they not victimized Apple/NeXT over the course of decades.

  144. Pete

    Adobe screwed itself… look at these quotes…

    ZDNet, 2001:

    Creative professionals will “be able to edit their video in Premiere, edit their images in Photoshop and be able to create DVDs in a very creative way”, Chizen said. But they may not be able to do that on a Mac with an Adobe product. Making a Mac DVD product is “something we’re still evaluating”, Chizen said.

    A slice from 2002:

    Adobe Acrobat 4.x and 5.0 currently do not offer native support for Apple’s new OS X operating system. Adobe After Effects 5.0 currently does not offer native support for Apple’s new OS X operating system. After Effects 5.0 is supported in OS X classic mode

    Adobe FrameMaker 6.0, FrameMaker+SGML 6.0 and FrameViewer 6.0 currently do not offer native support for Apple’s new OSX operating system

    Adobe GoLive currently does not offer native support for Apple’s new OS X operating system

    Adobe Premiere currently does not offer native support for Apple’s new OS X operating system. Premiere 6.0 also will not work in OS X in classic mode

    Adobe currently does not offer native support for Adobe Photoshop Elements for the OS X operating system

    Adobe Photoshop currently does not offer native support for Apple’s new OS X operating system

    Adobe LiveMotion currently does not offer native support for Apple’s new OS X operating system

    CNet, 2004:

    • Adobe dropping support for several Mac products, most recently its FrameMaker publishing software and most notably its Premiere video editing application, whose demise as a Mac application was attributed to strong competition from Apple’s Final Cut programs.
    • Several new Adobe products have been introduced in Windows-only versions. In the case of Atmosphere, a new 3D animation application, the decision to skip the Mac was attributed to a small pool of potential customers. In the case of Photoshop Album, a light-duty consumer photo application, a similar application was already built into OS X. With its Encore DVD-authoring package, Adobe again pointed to competition from an Apple video application.
    • Adobe caused a stir among Apple devotees last year by republishing test results that showed certain Adobe applications running faster on Windows PCs than on Macs.
    • Adobe, which could once be relied upon to turn up at any Apple gathering, has skipped several Macworld events in recent years.

    It wasn’t until 2005 that Adobe ported Photoshop to OS X.

    Matter of fact, it was sure of its decision to forget OS X development that it focused Premiere solely for Windows – only to see Apple turnaround and buy a Macromedia offshoot, repackage it as a Final Cut and cut Adobe out a lucrative stream.

    John Nack, 2006:

    John Nack has answered the burning question of OS X Adobe app users everywhere on his blog yesterday: when will we see native Intel OS X versions for all the shiny new Macs Apple is rolling out this year? Unfortunately, the response is less than ideal. In fact, I think it belies something fishy is up either with Adobe, Apple or both.

    John Nack’s answer is basically that they have no plans to update the current CS2 or Studio 8 suites to run natively on Intel OS X, which means anyone buying a new Intel Mac this year will have to deal with running these apps in the Rosetta emulation layer. While it seems like this might be at least workable for some users, it is by no means ideal. The only way to get an Intel version of either suite, as of Adobe’s current plans, is to purchase a new/upgrade suite sometime in 20

  145. gunteman

    I got this news just one (1) day after spending my hard earned cash on a brand new MacBook Pro, with the main intention being producing IPhone apps using MonoTouch. Now I almost feel like throwing it out the window.

    Sure, multi platform development tools which provide their own UI tools, widgets etc. can be result in really bad applications, but language bindings such as MonoTouch, IPhone Wax etc. don’t do that. They simply provide developers with the means to develop perfectly native apps using the language they feel comfortable with. The apps written with these tools are indistinguishable from apps written in Objective-C.

    I’m all for trying to keep the quality of applications up, but Apple is swinging a big axe and a lot of tools that actually make the IPhone a compelling platform will be hurt in the process.

    If Apple don’t amend this error they can indeed go screw themselves.

  146. Pingback: It's official, Objective-C way or the highway | Ted Wise

  147. AS

    I applaud Mr. Steve Jobs for the current state of the iPhone/iPod/iPad OS.

    Firefox/Ableton top notch Mac apps? Maybe in an alternate universe.

    @developers: No pain. No gain. Go work with Apple’s rules or bye bye. We don’t need another Micro$oft, Adobe, Open Source, way of giving us the finger for so many years. Staying behind Windows versions features while paying in most cases A LOT more for the crappy Mac versions. Or having to install Windows on our Macs or even worst having to buy a Windows machine.

    Thank you Mr. Steve Jobs. Here is wishing more people would follow your lead.

  148. Richard

    “One of my favorite applications on the Mac is Mozilla’s Firefox, and certainly my favorite web browser. I think it beats the pants off Safari. As this is not a review of Firefox I won’t get into the details, but I will point out that Firefox is written using a cross-platform software toolkit.”

    Fair point, but there are still a number of areas where the Mac port of Firefox does not behave like a native Mac application.

  149. Cesar Pinheiro

    Software reuse is the basis of software development, basically Jobs do not want third party libraries and does not want cross platform code not approved by Apple, but his creativity is amazing.
    He is is the first to prohibit third party libraries.
    He is the first to censor applications.
    He is the first to have the power to cancel remotely any application at any time from Apple store.
    Resuming, for developers he is the biggest possible pain in the ass.

  150. freediverx

    You wrote,
    ” I think it’s absurd to think that a third-party toolkit that failed to keep up with Apple’s APIs and produced poor quality apps would ever be popular. Why would users and/or developers willingly choose to use an inferior product? And if they do, so what? No one is forcing you to use them.”

    You’re ignoring Gruber’s explanation. The risk is that a third-party toolkit would FIRST become popular (by whatever means) and THEN fail to keep up with Apple’s APIs (for whatever reason). As Gruber points out,

    “At that point, it’s the other company that controls when third-party apps can make use of these features.”

    Apple does not want to open the door to such a scenario in the future. Look at how long Mac users have been waiting for Adobe and Microsoft to port their apps to Cocoa, leaving us with sub-standard applications for years. Look at how Flash has disproportionately undermined performance, stability and power management on Macs. These situations are frustrating, and the fact that they’re out of Apple’s control is unacceptable to them.

    I’m not a developer, so I’m not qualified to opine on one development platform’s superiority over another. But speaking as a consumer, I can say that I care a lot more about my user experience than I do
    about providing developers with “freedom.”

  151. Malick

    Are you kidding?
    “Why would users and/or developers willingly choose to use an inferior product? And if they do, so what? No one is forcing you to use them.?”

    What about the story of Windows and now Flash? We all were there already.

  152. Daniel Molina

    I wonder that Apple will bring more languages support in the future, or extend their current API to other
    languages, so we can develop applications in a wide variety of them, specially if we are working on application prototypes, instead of modeling them. I don’t mind building prototypes in C++ or Objective-C :S

  153. Joey Guerra

    Have you considered that this is EXACTLY what Apple Exec’s want? I would argue that this ENCOURAGES competition for the smart phone market and can be evidence of them NOT practicing monopolistic tactics because there is obviously a choice in the market. I think this is their product and they can do what they want. If it was my product, I would want to be able to do what I want with it too. I’m with @Ed, if you don’t like it, go to another platform.

  154. Joey Guerra

    I also want to say that the XCode and Objective-C environment is hard for many developers, especially compared to MS’s Visual Studio and C# environment. I get that. Perhaps that’s why so many people are complaining about this. Maybe what they’re really complaining about is that it’s hard for them to use XCode to build what they want?

  155. abcdefg

    I think the application lock in is good to the extent that it coerces more developers to make web apps than native ones. That alone has some value.

    Otherwise, I agree this is pretty much “evil”.

  156. Josh G.

    Ok, I know you’ve gotten plenty of feedback on the Firefox comparison, but I thought it worth pointing out that right now, On my brand new MacBookPro using the latest version of FF, on app launch the skin loads late, creating the “FOUA” (flash of unstyled application), and fairly regularly, when I click to drag the browser window around, I get stuck in drag mode, even after releasing the mouse button. This would never happen in a native application. As a UX professional, I concur with Gruber’s analysis.

  157. Wolter

    I don’t understand how so many mac users are having problems with Firefox… I’m using it right now on my 2GB, 2GHz macbook along with XCode, Murky, Mail, MSN, and Skype. It’s running perfectly fine, and has been running fine ever since I installed it.
    In fact, I’m posting this message from Firefox, which has been running straight for a week (the last time I rebooted).

    That’s a far cry from Safari, which bugged out on me constantly when I first got the macbook.

    Where is Firefox breaking the mac experience? It sure looks like a mac app to me…

  158. freediverx

    @RidleyGriff

    Thanks for so eloquently expressing what was on my mind. ;-)

    I couldn’t agree more.

  159. Craig

    I get your point, but using Firefox actually helps Steve Jobs’ position and not yours. I use Firefox, Chrome and Safari on a daily basis, and while Firefox has a better user experience than Safari, it also uses more than twice the memory to do so, and frequently becomes unresponsive much more so that Safari. Example: I just opened slashdot from scratch in Firefox and Safari. Memory usage:
    Firefox147MB
    Safari 70MB

    These are exactly the reasons that Apple doesn’t want 3rd party cross-platform generated code on the iPhone. On a system with 8GB of RAM, wasting 70MB isn’t a problem. On a system with 256MB of RAM wasting memory is a huge problem…

  160. developer

    This is really simple. Apple wants real, legitimate, educated developers writing good apps for the App Store. They want to increase quality of the application code and ability for your app to participate in iPhone OS’ system services including the one feature all of you developers are bitching at not having (multitasking) They (probably) are decompiling your crappy code and seeing that a large part of the code from these frameworks generate crap code. They’re probably hoping that if you write the code yourself, it will be optimized and free of leaks. Why? They like great battery life and a great end-user experience for people like your Mom or 1 year old kid — people that have little interest in defragmenting their hard drives or installing a video card.

    Everyone that isn’t using Apple’s published API’s and tools should knows from the get-go that the company offering shortcuts (Apcelerator, etc) to generating apps could go under any day and you’d have no qualms about finding a competing product (PhoneGap, etc).

    Like many others have said, if you don’t like what the corporation enforces, go develop for another platform – no one is forcing you to stay. If you’re one of the people that are basing their livelihoods on developing for OS X, you should be smart enough to know better than to use some of these tools.

    In the end, I think the people that are really bitching are the ones that are leeching on the AppStore to make a quick buck off Apple and their obsessive mindset that leads to great products like the iPhone, iPad, iPodTouch, etc.. I think Apple wants their devs to be as passionate and obsessive.

  161. Joel

    @Ed
    Ah, the ol’ “Back in my day…” story. For some people it’s not just about learning a new language and getting on with things. In the indie game world (which has cranked out quite a few top games) people need to rely on time-saving middleware. So far it seems the two top middleware programs are now unusable. That may change at some point, but seriously… how about some warning from Apple so the middleware developers could prepare themselves? That would have been nice, don’t you think?

    I’m not surprised some people are ticked. Restrictions with a decent reason are one thing. Surprising everyone with them, knowing pretty much what would happen to a lot of people working on things is what most people like to call ‘being a douche’.

  162. Götz

    You mention Firefox as “amazing” and as an example for great software that’s been produced using inter-platform-frameworks.

    I can’t agree. Firefox feels sluggish, non-native and slow. This is due to many reasons like startup time but also redraw flickering in windows, non native buttons, non native behaviour. It’s just not a Mac programme for me.

    And I don’t know a single “cross plattform framework app” that’s like a native Mac programme for me.

  163. everydaypanos

    Dear Adobe,
    2 words: European Commission.

    Apple is the dominant market leader in Mobile Apps. So, why they get to dictate anything? Sounds like a good case to me? $50 bn in the bank.

    Let’s hope Adobe hears me. Else, they are…. Right?

  164. JulesLt

    Civilian – it’s not just about CS5 – there are already plenty of people using Unity to write their games in an x-platform manner.

    Although I also think a lot of people with investments in Flash gaming were hoping CS5 would be the answer to their problem (from a Flash developer point of view, the opportunity to sell their skills, from the employers point of view, maximum reach for minimum investment).

    And it does have to be said that there are certain things that are far easier to do using Adobe’s tools than Apple’s.

    Right now, of course, the iPhone still represents the biggest mobile software market, so it makes sense to target it – but you can understand why development houses would prefer to hit everything possible with minimum rework.

    Of course that should be an enormous financial incentive for someone to work on something that translates the other way, to make it easy to port your iPhone app to other platforms.

  165. UX-admin

    You are intentionally playing stupid; Steve is right, there are too many “me toos” producing garbage in “Python”, “Ruby”, “Flash”, “Java” and any other fad language du jour someone think is “hip” these days.

    99% of those applications are garbage written by yahoos who don’t know the next thing about writing clean, fast, low-resource demanding programs.

    Uncle Steve doesn’t want these idiots “developing applications” in the latest fad language and producing slow bloated garbage, just because that language is “in” these days.

    Uncle Steve might be an asshole, but he’s right! And it takes an asshole like uncle Steve or uncle Larry to keep all these “me too” yahoos from going along with the latest programming language fad!

    Too much garbage being produced by half-educated, half-computer literate “developers” these days. I’m really pissed off about all the garbage “applications” floating around these days.

  166. Wolter

    @Ed
    What you’re missing here is that the trend over the past couple of decades has been towards MORE openness and MORE interoperability, and ultimately MORE developer choice.

    Console companies are still living in the past. Apple doesn’t ape their methods to the same degree because it simply can’t. Why do you think the NDA was done away with? Remember how hard it was to develop on the platform before then?

    Android is pushing this one step further towards empowerment, and we will see how that pans out.

    Forks only happen when there’s weak leadership. You’ll notice big time open source projects such as PostgreSQL, the GNU compiler suite (the heart of XCode), and Apache, which are robust and stable and have strong leaders.

  167. Lee Graham

    Hi Greg, thanks for sharing this. This is rather frustrating & disheartening. I’ve been on the Flash CS5 beta and have used other 3rd iPhone Dev Tools to create apps. This just sucks!

    I even bought an iPad & converted my Flash iPhone App to work on the iPad at full resolution. There are NO PERFORMANCE ISSUES here.

    Apple has seemed to really win a good share of the market over the years by being transparent and open unlike IBM of the 1980s =), but now it seems like Apple has become what they fought so long ago.

    Not to mention, if you piss off a chunk of your developer community they are the type of people that seek to get back at “The Ignorant Boss”

    This is all very disheartening… I guess long live Android!

    Cheers,
    Lee

  168. Cofeeman

    To someone who wrote “Apple can do whatever they want with their toys”.
    I bought my iPhone, it’s mine, not theirs.
    I want to see what Jobs can do when I splash my iPhone onto the wall, at most he can only smile the way Hittler would.

  169. Chris Nelson

    It should be obvious what Apple is doing:

    Confining themselves to a 10% niche market that they can overcharge for everything.

    They’re happy being there, and their users are happy paying Apple’s boutique surcharge.

    The rest of the world (the 90% of the world that will never own — in many cases could never even consider affording — an Apple product) don’t give a damn.

  170. Eric Marden

    From the article: “Why would users and/or developers willingly choose to use an inferior product? ”

    That’s what I say to Flash ‘developers’ every day.

  171. freediverx

    @Brian Mastenbrook You wrote,
    “I often wonder what Mr. Gruber would say about a Microsoft which restricted its own platforms in this way, in a world where Apple was more open about development on the iPhone OS.”

    Apple critics want to turn this into a philosophical debate about “openness” and “freedom.” Sounds a bit like the Tea Party movement’s claim that providing universal healthcare to Americans is tantamount to enslavement.

    Apple and Microsoft have taken very different positions on software development .

    Microsoft has seemingly bent over backwards to coddle developers at the expense of the end user. The end result has largely been a diarrhea of badly designed, unimaginative, unintuitive garbage.

    Apple, on the other hand, has placed the user at the center of product development instead of the developer. And in doing so, they have reinvented the way people interact with technology.

    As a consumer and very satisfied Apple customer, I have no trouble deciding which camp I prefer. Developers will have to choose what they value more – their freedom to use third party development platforms or access to millions of Apple customers like myself.

  172. Nicholas

    The biggest losers in this space are seemingly the content producers such as magazine and music publishers. They were apparently looking forward to creating experience applications that are not limited by strict software development.

    We developed tools utilizing Apple’s technologies to build such experiences, but Apple saw fit to limit the race to their future LP product, something the labels did not want and ultimately did not use. They are not interested in any experiences outside of the iTunes model.

    Personally, I feel that this is not fair behavior. My drunken rant to Steve was perhaps not good form, but we invested in a product that my contacts wanted, not what Apple wanted. We automated the build process, in order to produce albums as applications, and frankly the behavior did nothing but set artificial limits on top of existing real limits. That does nothing but limit creativity.

    There are good reasons to not use Flash, but my interest was in producing beta-level products, with the understanding that after testing, new applications would be produced, optimizing code for the task. Creativity requires tools that adapt to the person and work methods. My experience has more often been about forcing my thinking to Apple’s agenda. Not good, but we have few choices currently.

  173. Peter Lin

    Honestly, the license doesn’t restrict your freedom in terms of writing applications for iPhone/iPad/iPod. What it limits is “how” you develop your application. The myth that a cross platform framework can produce optimal UI for a wide variety of hardware platforms isn’t true. The last time i checked, the best way to write optimal UI for a wide variety of platforms software+hardware was to design it for that device. Mobile devices aren’t like PC’s, so little annoyances on a PC become a huge issues on mobile devices.

    I say suck it up and learn object-c/C++ and be done.

  174. Ronald G

    Greg, I strongly disagree with your thinking! Being a programmer for 20+ years and seeing the “cross platform” bring hardware to its knees because some “hot shot” THOUGHT he knew better; I agree TOTALLY with Steve on this thread of thinking! After all, he does own the Company, and has made it work better than anyone else’s companies. Still no “real” competition to the iPhone. Being a creative type myself, if the programmer is GOOD and not merely some guy trying to make a fast buck, working WITHIN the system and learning the nuances of the tools necessary to create the APP, is really more satisfying to the programmer and rewarding to the Company, that PAYS the checks! If you still think you know better than Steve, I’d say, start your own company or join one of the other ones that is already out there. I understand that Motorola and HTC are looking for good programmers, but you think Apple is tough, you should see what you have to do on the INSIDE of those companies! Good Luck with your myopic line of thinking. Making a company break down it’s doors for the opportunities for mediocre programmers is ludicrous!

  175. Paul Sorensen

    I saw a video of an Adobe Air application a few days ago, running on windows, mac, iphone and iPad. It was great that they all looked and worked the same.

    But then an ugly green dialog box came up to prompt the user for something. It doesn’t look like a windows dialog on windows, an OS/X dialog on OS/X, etc.

    I’d rather have someone be a little draconian about this stuff if it means that all the iPhone/iPad apps look/feel like iPhone/iPad apps.

  176. Agnostic

    Seen on a whiteboard in the Google CEO office…

    An Apple is meant to be eaten.

  177. Gustavo Moya

    Ableton Live and Mozilla Firefox are written in C++.

    They aren’t banning the cross compilation, or the multi-platform code. They are banning what Apple believe to be inferior languages.

  178. David W.

    Are the changes in the iPhone 4.0 SDK license hurting Apple? I think we’re forgetting something here: The popularity of the iPhone platform.

    Let’s take programming for the Mac: The Mac has always been a niche machine. If you’re only going to program one and only one version of your application, you’d do it in Windows. If you think the small segment of the Mac market was important, you’d use a cross platform tool.

    The only time you’d actually program natively for the Mac if you were willing to forgo the much larger Windows market or your product was so big, that you could afford two totally separate development lines.

    For a long time, Apple was simply thrilled that someone actually wrote a program that worked on the Mac no matter how bad or crappy.

    The iPhone is different. If you want to have a big share of the mobile OS market, you’re going to have to follow Apple’s rules whether you like it or not.

    You can, out of principle, flee to Android and forgo the large iPhone user market. But, things aren’t better there. You have four different operating systems being installed in various phones, various platforms that you have to test for. On top of that, you have companies like Verizon working on moving its users from the Android Marketplace to the VCast store. You want to sell your apps to Verizon’s customers? You’ll need Verizon’s permission and follow Verizon’s terms.

    Windows 7 Phone could be a big hit (right now, in my book it’s officially vaporware until it actually comes out). However, Microsoft is looking like its stealing Apple’s playbook. You write with the tools Microsoft says. Adobe Flash? Maybe… Cross compile platform? Only if someone else bases their platform on Silverlight and XNA!

    So, for now, the iPhone is really the only game in town, and Apple wants you to use its tools and get use to writing iPhone apps its way. Their hope is what Microsoft got with VisualStudio: Developers are simply more comfortable working with a set of proprietary tools, that most won’t even know how to write for other platforms.

    Maybe even getting to the point where developers talk about the “Open Standard” of Apple’s platform vs. the “Closed proprietary” ways of the other platforms — much the same way Windows and Flash developers talk about their platforms being “open” and HTML5 and Unix platforms as being “closed”.

    Things may change if Android stabilizes and Windows 7 Phone becomes a big hit Microsoft hopes it’ll be. In that case, Apple will change its policies when those policies affect iPhone/iPad development.

    But right now, the iPhone is the 500 pound gorilla, and Apple is happy to take advantage of that. If I was a Flash developer, I wouldn’t be too happy about it. I’ll have to learn new tools and a whole new way of programming.

    But, if I was a serious Flash programmer, I would immediately download the iPhone SDK and spend a few weeks learning the system because that’s where the money and jobs are. And, in the end, that’s what Apple wants.

  179. Daniel

    The OP mentions developers “running for the hills”. The only developers I see running for the hills are the ones that don’t yet developer for this platform. As an Objective-C developer with a number of apps on the store this clause doesn’t affect me one bit. What it does do is prevent a load of unskilled Flash users publishing for the platform. I’m not trying to suggest that all Flash users are unskilled, but instead that it’s very easy to produce Flash content and thus a lot of it is absolute rubbish.

  180. Aaron Faby

    Using Firefox as a shining example of cross platform toolkit quality actually illustrates Apple’s point just nicely.

    Where’s Keychain integration?

    Where’s MobileMe bookmark sync plugins?

    Where’s native Cocoa form widgets that use resize-able text fields and Mac OS X’s dictionary spelling service?

    The list goes on and on. Your comparison fails miserably.

  181. Peter

    As a developer myself, I don’t get the point some other developers are trying to make here.

    One of the things that keep me going is the fact that the universe I’m working in constantly challenges me into evolving. The basics of programming stay the same, the syntax might be a tad different, but so what?

    Apple has quite a bit to gain by forcing developers to use their tools, both from a development and commercial a point of view.

    As for development, if Apple were to see refactoring part of the iPhone OS could drastically improve performance or battery life, they can deploy it without a problem as long as their own XCode test suite passes. An intermediary framework could break due to the implementation of the API and you would have tens, maybe hundreds of applications on the store breaking or improvements of the platform being halted by a third-party.

    Also, commercially, it forces iPhone developers to buy Macs, since the development IDE is only available on that platform. Why are so little games ported to the Mac and most games available for both Xbox and Windows? Because the 360 and Windows use the same locked-in DirectX API. No one bothers to port to OpenGL, even when quite a few middlewares support OpenGL. There’s still some work to be done. Basically, the amount of time and thus money needed to support more platforms is not profitable (enough) to justify the cost. Native applications for the Mac were even harder, since there were almost no experienced XCode/Objective-C developers out there. So even if you could reuse almost all ur libraries, the small client to run it all was hard to invest in. Now the amount of developers feeling at home in Apple’s IDE is expanding rapidly. And all of a sudden Valve (and the publishers that use their platform) consider the Mac a viable platform again, I wonder why…

    The reality in the business world is this: if a platform is popular and it can make you money, you’ll develop for it. If you feel not being able to adapt your development platform is a reason to not develop for the most popular platform with the largest userbase out there, that’s your problem. There will be hundreds to fill the void.

    As long as Apple keeps nailing their devices like they do right now, the consumer will buy them. The end-user doesn’t care about the platform, nor about this whole discussion about what Apple allows and doesn’t allow. They care about the product and they like the iPhone. They won’t buy an Android-based cellphone because a developer only releases for that platform. They won’t even know about your application in the first place. So if you want to cry in a little corner, go ahead, but there’s other ways to go about it that will have a much better outcome for you in the end.

    P.S. About the whole crossplatform applications thing: Firefox and Ableton are both great products in what they do in terms of functionality and are in ways superior than their native counterparts. However, performancewise and GUI-wise they ARE lacking and will probably always lack the finesse of native apps.

  182. Charles

    Personally I agree with Gruber too. As a developer (although not Mac currently) I find the change a little worrisome. As a user I’m in favor of it. Cross platform apps rarely feel right on the Mac, including Firefox. On the iPhone it would be even more noticeable. Meta platforms don’t increase creativity and for every developer that leaves, another will come if there is money to be made.

    Apple is selling the iPhone and iPad based on the great user experience and this will keep a lot of substandard apps out of the store. I don’t mean by functionality, but how it feels to use it.

  183. Daniel Wabyick

    @Ed. I get where you’re coming from as a software programmer (I am also one), but the tools that Adobe provides for creatives simply don’t exist in the Obj/C world.

    Take a cute, interactive children’s book for your kids, or an existing book with complex layout (beyond HTML5′s abilities) that exists in InDesign. Trying to code that in raw Obj/C is possible, but its not the best tool for the job.

    Also, Obj/C is not a ‘new’ language, its an old language that suits developers with 20+ years of experience in C. ;-)

  184. Tim Almond

    I was wondering after reading a few other things whether this was some sort of misunderstanding about what “original language” meant, but it seems not. Staggering.

  185. William

    Why does everyone feel the need to tell Apple what to do? They are a business that is in business to make money for it’s stockholders, like me. Seems like they are doing great and I’m being rewarded with large gains in the price of their stock. They’ve been increasing the value of my portfolio almost daily. I hope they crush Adobe. Adobe would never have existed if it wasn’t for Apple. Adobe never bends for Apple, why should Apple bend for them. Adobe and all the others who are trying to tell Apple what to do are free to create their own operating systems with their own rules. While they’re at it they can make they’re own computer, phone and tablet hardware too. I like what Apple is doing. Seems like millions of others do to. If they’re products weren’t so good no one would even care. The fact that they make great products that everyone wants to be developing for is not really their problem. It’s exactly where they need to be. Seems like everyone who doesn’t like Apple should start working on platforms that are having trouble finding good software developers like Windows Phone 7, Android, WebOS, Symbian or whatever other OS they choose. But they are not doing that they would rather complain about Apple. That’s cause everyone knows that’s where the money is. Seems to me Apple is doing everything right and most of these programmers who are complaining are just leaches. These complainers are demanding that the company who created a wonderful platform are doing something wrong. Leave the platform and let’s see how great your software runs on the other peoples hardware and let’s see how much cash your apps pull in. In the meantime I’ll be watching my portfolio grow thanks mostly to Apple.

  186. Phil

    I think some, including maybe Jobs, are under-estimating the scope of this restriction. Some examples:

    - Assembler is not allowed.
    - Tools like lex and yacc that have been around for decades are not allowed.
    - Tools to convert e.g. Fortran to C are not allowed.
    - The guy who just finished porting the Free Pascal Compiler to the iPhone is now a bit annoyed.

    This isn’t just about cross-platform issues, though that is where it will bite many people the most. It’s about letting developers use the right tool for the job even on single-platform apps. If I’m writing a critical DSP routine I might decide the right tool is assembler, but now I’m told that I can’t do that. If I’m solving a logic problem (e.g. a chess game) I might want to write it in some 21st century functional language. And up to now, I could.

    It seems that Jobs hates Adobe. I don’t care about that one iota. But I don’t want my apps to be pulled from the app store, and for me to lose my main income, because some Apple functionary detects that they have automatically-translated Fortran code in them.

    Right now, diversity look like it’s essential to be sure of being able to pay the rent next month. Time to buy and Android phone.

  187. david Small

    Adobe is one of the great companies in Tech. They’ve given us Photoshop, Postscript, PDFs, great fonts and printing technoogies, and much much more. I dare say they’ve been quite a bit more innovative that Microsoft.

    Flash isn’t one of those visionary forward looking products though. Flash is something they sort of stumbled into. Originally an animation program that got enhanced, patched, and grew into something never envisioned or planned. It grew along with the Internet, was easier to learn than alternatives, and became what it is today.

    I would liken Flash to Apple’s older OS 9 operating system. Both deserve a place in the computer technology hall of fame. Both have been eclipsed by newer and better technology. The difference is that Apple understood that and orchestrated a move from OS 9 to OS X. Adobe should do the same and offer migration tools from Flash to HTML 5.

  188. Jonathan Wagner

    Remember way back when this small company called Microsoft became massive because they didn’t restrict their software to proprietary hardware?

    This is history repeating, Apple is trying to lock down their software, to their hardware. Same issue, different flavor. I am not sure what Apple is trying to accomplish with this, this will just push more people towards developing using native code etc.. such as HTML5, and apple won’t make any money from that, and they will piss off a lot of people in the process.

  189. Betty Normal

    Apple would be nowhere today if it wasn’t for software with compatibility layers. What about Microsoft Office, PhotoShop, Page Maker, Quark etc…..

    I think without these cross platform apps it is very likely Apple would of gone bust years ago.

  190. Ghostzilla

    You know, the current restrictive policy of No Java and No 3rdp Tools didn’t stop people from writing 150,000 apps. Many are great, many are bad. Do we really need 50,000 more written in Java and Flash script, most of which would likely be more crappy?

    I’m with Jobs on that one: if you really have your mind set on making a good app, than take the pain and write it well, from scratch.

    Also I think comparisons with Macs are not in place: a Mac is a computer; iPhone and iPad are appliances. Flash and 3rdp binaries run on Macs. Appliance experience must be controlled much more tightly to make it good.

  191. Dimitris

    Steve is doing the right thing for his platform. Apple has been burned like this in the past and they don’t want to let it happen again.

    They want developers to invest knowledge on their platform, not somebody else’s (Flash, Java, …).

  192. RandomExcess

    While I can agree that creating apps written in Flash or some other system may theoretically lead to an increase in inefficient hardware usage, it has however always been very clear in the submission rules that apps not adhering to the human interface guidelines will be rejected anyway, so I’d say that particular part of the argument is bogus.

    Realistically, I think the biggest issue here is the difference between apps and games – the inability to use middleware for games development will effectively obliterate the indie games scene on the device, leaving just the big companies. It’s not about laziness or being ‘resistant to change’ – its simple economics: developing a fully featured game engine costs hundreds of thousands of dollars, which is far beyond the majority of iPhone developers. Now I’m sure there are plenty of people who’ll be happy with that, but there have been a large number of hit titles on the platform that would never have existed without these indies – not to mention almost all the platform’s original titles, as opposed to the risk-averse ports from other formats that the big companies have mostly been releasing. (It also bears pointing out that smaller developers generally provide a LOT more post-release support, often adding new features and content for months after launch, while most games from the big companies get none whatsoever – although, once again, I’m sure there’s a lot of people who won’t care about this either)

    Also, anyone making comparisons with game consoles needs to understand that a vast number of modern console games ARE made using cross-platform development solutions (Unreal Engine, CryTech, etc) and have been for years. Hell, the increasing quality of games is arguably very much because of that, as developers can spend their budget on creating the actual game, instead of building the technology to deliver it. Even on the iPhone this is true: compare current 3D games on iPhone to those released a year or so ago – much of this leap in quality is thanks to middleware engines such as Unity.

    I’d also argue against the idea that its bad leaving the uptake of new OS features in the hands of middleware providers who may lag behind: considering how much of a moving target the iPhone platform is, to expect hundreds of individual companies to be able to create a solid, full-featured game engine and also keep pace with Apple’s continual changes faster than a single company dedicated to doing so is absurd. Likewise, if a feature is worth using, then people will find ways to use it.

    Ultimately, the real problem here is Apple’s typical ‘broad ambiguous changes followed by silence’ routine, which combined with their history of erratic enforcement of new rules, has left a large chunk of the development community unsure about what any of this actually means…

  193. bdkennedy

    You follow Apple’s programming methods or you don’t get multi-tasking. Seems pretty simple to me.

    I understood that in the first several seconds after Steve said it in his keynote.

  194. Someone

    All websites suck because all websites have to target to multiple devices / interfaces / etc.

    You know, those sites that will eventually be written in a *CROSS PLATFORM* (Jobs recommended) HTML 5 (that Apple doesn’t have control of).

    IMHO, if someone’s stupid enough to blame problems on Apple for an application they didn’t write, you’re retarded. You can stay with Apple all you like — they target these kinds of people. It’s like blaming Toyota for your aftermarket wheels blowing out shortly after you install them.

  195. Mark T

    The comments regarding “developers get so emotionally attached” and “Calm down. It’s not that big of a deal” are, I’m afraid missing the key point (in my view).

    As a developer for the past 20+ years I’ve learned numerous languages and technologies to get the job done. But what’s rather bad about this change by Apple is just that – it’s a change. People have been busy developing software for the iPhone etc. using whatever tech. they choose, unhindered by licensing issues or the likes. Companies have invested heavily in learning these techs. creating their products etc. to aid both themselves (and if the product is good, by helping Apple – because good apps. help sell the devices). So now Apple simply pulls the rug from under these developers/companies at a whim. This is the reason people get heated over such a decision. I wonder how many ccompanies may have apps. soon to be released and now fear they are against this clause. Had Apple enforced these rules from the outset, then things may be different, but they did not and now they’ve left a bunch of devs and businesses with possible expensive rewriting of their apps. and learning new tools/languages.

    So when commenting that people shouldn’t get so emotional etc. please remember this may be somebodies company/business/livelihood you’re talking about and that matters a lot to them.

    As for the text that suggests somehow an enforcement of using Objective-C etc. will in anyway make for better apps. or ensure better battery life or the likes, well this is laughable – a bad programmer will write bad code whatever language they use.

  196. Log My Time Zeiterfassung

    It seems to me that, regardless of what Apple officially states, this is not a policy to improve the quality of Iphone apps. This is primarily a policy to ensure that Iphone apps are exclusively developed for the Iphone.

    Frameworks that abstract the actual APIs of the OS have the side effect of facilitating cross-plattform development. And that’s exactly the problem Apple has with them on the Iphone. Ideally, Apple wants to have all good apps exclusively on their platform.

    So, if a developer wants to cover Iphone OS and Android and and Windows 7, Apple’s reasoning is that this shoiuld be as painful as possible. Having to deal with ObjectiveC certainly ensures that.

  197. Pingback: Steve Jobs Responds to Developer About New SDK Regulations via Email | iPhone 3G Tricks

  198. justin

    The fact that you use Firefox/Mac as the cornerstone of your argument is telling.

  199. Don Sleeter

    A new HyperCard for iPhone 4 would be a wonderful way to open up the platform to apps that are not fully native but more than web-apps. These apps could be freely shared over/with the web and they could be limited to safe programming practices by virtue of the tool itself — like HyperCard. It would provide an “easy” development environment that might even be compatible to some degree with Flash or Java, etc, This would open up a whole world of creative outlets that Apple wouldn’t need to App-Approve of. They would also insulate Apple from distributing porn and other things they cannot be associated with. Which is a major sticking point. Conformance to UI standards and clean running could be enforced. If you wanted your own type of client app, you could make one. Or you could create and distribute your own hybrid web/app book or magazine or comic book. These types of freedoms are just a small development tool away from being commonplace. But first, we need quality, stability and security and a good foundation for commerce.

  200. Dignan

    Wow, you seriously casually name-dropped “cancer” in an email to Steve Jobs?

  201. Daniel Carvalho

    I still think Steve Jobs should be referred to by his proper title, Hormonal Teenage Nazi Girl. Or HTNG for short.

  202. X Man

    It seems here the biggest complaint from developers are for those who have to learn to do something they don’t already know how to do. What they *really* want, and aren’t saying, is for Apple to approve apps that run on other systems like WinMobile or Android so all they have to do is run the app through a compiler (and do nothing more) to market their product to the largest smartphone market in the world. Rather than spend some time learning Obj C and getting the coding *right*, understanding the device, its market, and its end user. It has always been this way. Mac users have always suffered through horrible ports of Windows-based games and other apps that were in no way optimized for a different system and recompiled using a toolkit that reproduced a ‘similar’ experience in the Mac OS, but certainly nothing like a ‘native’ app. I think Steve is right about closing the door and bringing the focus in tight and expecting nothing more than quality instead of a flood of crap, seeing as how Mac has always been the secondary focus for development. However, now that they have opened the door to a rich platform that has potentially more scalable profit potential for developers, they complain because they have to do it the *right* way? Amazing.

  203. rusty

    Quite frankly, I don’t see any issue with this change at all. Consoles are also closed platforms, with the same restrictions, and look at how they have pretty much destroyed the PC as a platform for games.

    For Flash, this is nothing more than a source of revenue that has been shut off for them, nothing more. That’s why this “platform Evangelist” is so pissed. Somebody has told them to hit the road, they don’t like it and they can’t do anything to prevent it, so now they’re letting one of their employees be their sock puppet.

  204. Walt French

    “…a third-party toolkit that failed to keep up with Apple’s APIs and produced poor quality apps would [never] be popular.”

    Except that exactly 100% of third-party toolkits lack the features announced this week. Native devs can start working with the beta toolkit but 3rd-party devs will have to wait for the toolkit — which, in turn, would probably wait for the released 4.0 XCode version— before refactoring their apps for multitasking, etc.

    If your logic is correct, none of them could be popular and there is no reason to mourn their loss.

    = = = = = =

    Apple is fighting a two-front war. First is regards Mac marginalization, and appears to be vis-à-vis Adobe — not over Flash (!) but because Photoshop has been architected to practically tell Mac users to defect to Windows: no 64-bitness; Apple’s multi-thread goodness ignored; no UI advantage; no other Cocoa goodness. I assert this because Flash does not really run on any ultramobile or smartphone, and Apple is happy to let the press/blogosphere think it’s all about the iPhone, despite it being about Flash; it gives Steve a chance to say what crappy work Adobe does, dinging them for their insufficient love. There is no better example of Apple being marginalized despite a company mission of Macs serving exactly these types of uses.

    The second, and much more current front is with Google (h/t Gruber). This is a very different battle. Refusing generic products means that devs have to choose between doing what they have to in order to be on iTunes App Store, or developing for all the other platforms combined, with a smaller combined share. Of course, a low-volume app can’t afford to use many different platform-specific interfaces (Silverlight/WebOS/Java). The economics are prohibitive, so generics will rule on all the other platforms. This means that no other platform can be an iPhone Killer, at least if apps are the game. And they are, no? Does anybody doubt this is the real reason, tech issues notwithstanding?

    I think Apple misses the boat by not putting up a “bargain bin” of cracked, bruised or past-sell-by-date software that “fails Apple quality standards” or “may cause carrier to revoke contract and demand payment in full” or other pejoratives. Apple could donate their 30% to webkit.org or the Red Cross and prevent serious developers from ever hoping to sell anything there. A velvet glove on the iron fist.

  205. Chanson de Roland

    You can’t analogized from the Mac to Apple’s mobile devices, iPad, iPhone, and iPod Touch. The mobile devices are by their very nature much more constrained in their resources, so performance and battery life become paramount concerns, much more so than on a Macs with their much greater resources of memory, processing power, and battery life. If an intermediary framework consume a few more CPU cycles and more power, that is no big deal on a Mac, as most users won’t even notice, but on an iPad, iPhone, and/or iPod Touch, the result could and often is a frustrating, if not failed, user’s experience.

    Moreover, it has been suggested that permitting intermediate frameworks will not only significant diminish performance of apps for Apple’s mobile devices, which alone is sufficient reasons to bar them in iPhone 0S 4.0, but would prevent the proper operation of Apple’s new multitasking ability in iPhone OS 4.0. See http://www.appleinsider.com/articles/10/04/09/apples_prohibition_of_flash_built_apps_in_iphone_4_0_related_to_multitasking.html.

    I think that all reasonable people can agree that Apple has the right to design its operating systems and regulate the apps that run on them so that the apps satisfy Apple’s requirements for guaranteeing proper operation of its devices and provide a great user’s experience, as long as Apple’s exercise of that right is, as it appears to be here, reasonably supported by its judgment based on its experience and/or the technical requirements of its hardware and/or software.

    After all, what what will make Apple’s products insanely great is within the ambit of its sole discretion, provide it, as here, exercises that discretion in a manner reasonably supported by technical parameters and by its sound business judgment about creating the user’s experience that its customers will prefer to any other user’s experience found in a competitor’s products.

  206. chrwal

    Gruber uses the Kindle example in his argument and identifies Qt as the culprit. The problem is he doesn’t analyze why Qt is a poor cross platform tool.

    The reason for Qt’s poor quality is because it draw its own controls rather than use the native systems controls. Monotouch does the latter which makes it a better choice for cross platform development.

    This decision hampers developer migration. Most developer migrating to a new platform like to become productive quickly before spending time learning the tools on a new platform. IMO this will slow developers migration to the iPhone rather than encourage it.

  207. Chanson de Roland

    One more thought: Assuming, ad arguendo, the merit of Mr. Dilger’s comment at http://www.appleinsider.com/articles/10/04/09/apples_prohibition_of_flash_built_apps_in_iphone_4_0_related_to_multitasking.html, it is indisputable that Apple needn’t allow intermediary frameworks, if doing so would impair the operation of its new multitasking feature in iPhone OS 4.0. But Apple needn’t restrict its discretion to regulate apps and the manner of making apps to existing or announced features in its operating systems. Apple is always innovating; it is always on the move. And in that its effort to produce great innovations, Apple does everything that it can to eliminate any factor that would impede its innovation. Clearly, Apple is freer to innovate, if it need only support its own SDK, while its innovation is constrained to the extent that it must consider and support third party frameworks and the apps produced with them. Or, as Mr. Jobs stated, supra, “We’ve been there before, and intermediate layers between the platform and the developer ultimately produces sub-standard apps and hinders the progress of the platform.” By prohibiting intermediary frameworks, Apple has simply eliminated an unnecessary hinderance to its innovation. And I, for one,don’t want Apple’s innovation hindered by intermediary frameworks, when in the alternative, developers have Apple’s excellent SDK and open-source tools like HTML5, Javascript, and CSS to make their apps. Thus, Flash, Java, MonoTouch, et al. just aren’t worth the hinderance to Apple’s innovation that they do or could cause.

    So a developer has to make a choice: Either being restricted to Apple’s SDK and open-source tools and having to write specifically for iPhone OS 4.0 is worth it or it isn’t. Of course, developers aren’t even restricted to Apple’s SDK, for perhaps Adobe or another maker of tools will produce tools using HTML5, Javascript, and CSS that meet Apple technical requirements, and thus, qualify for use in iPhone OS 4.0 and later version of the iPhone OS. They are certainly welcome to do that; nothing in Section 3.3.1 prevents them from doing that.

  208. Edgar J. Suárez

    I completely agree with you. Apple’s already the leader of mobile and creative software. Developers should decide what language they’ll use for their apps AND know the consequences (or even advantages) of using third party tools.

    I can’t see why Apple is afraid of thirds, if they do things well they don’t have to worry about losing market. But these kind of acts… man “Stevie” must be becoming really old, his mind seems to be playing him tricks.

  209. john

    The thing is Apple is focused on customers, not enabling Adobe. And its true that if people write portable C/C++ codebases and redo their UI code in ObjC/Cocoa on iPhone/iPad/MacOSX, the effort level is fine. Its certainly true the quality will be better this way, as well as the performance, and honestly, doesn’t it make sense that Apple can control what goes on the hardware it makes? The console market has been like this for a long time, with higher quality levels as a direct result. It makes sense that hardware products aimed at the same customers from Apple would follow the same set of guidance.

  210. God of Biscuits

    @ gunteman: Theoretical scenario: you write your app using C# and some unavoidably hacky, gluey, thunky cross-platform technology where half your app is spinning its wheels in the Mono runtime and half in the Objective-C/Cocoa runtime, only the iPad has been designed from the A4 SoC all the way up through to the Cocoa Touch APIs to be optimized for speed and battery life by hooking into hooks that are only possible in a highly dynamic runtime such a the Objective-C runtime and at a low-enough level that the optimizations are highly specific to THAT runtime and that runtime alone.

    So you end up with an app that’s noticeably slower than its comps on the App Store. It’s relatively expensive in terms of CPU and other resources and therefore consumes more battery and therefore depending on how much time a user spends in your app during his or her workday, may cause battery life to cross that critical threshold where battery lasts “all day” to “must be plugged in at some point during the day”.

    Now, given all that, what’s your priority at that point? Give up C# and learn Objective C and all those amazing things about it and Interface Builder and all the things possible solely because of the dynamic runtime, or just hold your ground and keep using C# because it’s what you know and you should maintain the right to choose whatever tool you want to use?

    The case is theoretical, but my question is not rhetorical.

    What’s your answer?

  211. God of Biscuits

    @Edgar: Developers should care about what’s best for USERS, not themselves, and the rest will follow properly.

    That’s the Macintosh developer way and that’s the iPhone developer way, at least for those of us who come from Mac development.

    Users come first. The most optimized native apps for iPhone are done with Xcode and Interface Builder and written with Objective C and taking advantage of the dynamic runtime whenever appropriate. That’s not a matter of opinion, it’s a matter of fact because that’s how Apple’s created the environment.

    You’ll find that a lot of us native SDK developers have a problem with these metacompiler tools for no other reason than they can’t match the user experience (including performance and efficiency) that native development can, and that’s not putting the user first.

    Which is anathema to our approach to software development.

  212. bob

    I think its great you can get an email from Steve directly on this, but that my apps get rejected from AppStore without even so much as an email as to why. My email address is correct on my account and I have called every phone number I can find and noone can even tell me why my apps were rejected.

    Should I ask Steve directly you think? He seems open to reaching out.

  213. Pingback: Jobs makes a valid point: intermediate layers hinder the progress of the platform. - Uncompiled Thoughts

  214. bob

    Which is why I am now an android developer….

  215. LeeZ

    Steve’s “we’ve been there before” comment was referrning to Microsoft’s OS. When you have a world of developers going different direction, you make this environment very complex.

    With a common platfor, while there might be tons of amazing apps, they are mixed with tons of shitty apps. The mix makes the overall user experience very poor.

    I once worked in technology, and I was enthusatice about development democracy too. But, I have now moved onto something not related to technology. I will have to say, I like Apple’s model better.

    Remember, most people don’t want to spend their lives on computer. We get on the computer to do a few things and want to be done with it and get off. Most non-tech people have no interest in spending the extra minute just trying to figure out how else I can test the computer’s boundry. Therefore, Apple’s tightly controlled development model actually works well for us, because a certain apple standard is ensured. and the apple standard so far has proven to work well.

  216. Juan

    Firefox is a piece of junk from a UI point of view, doesn’t feel native on the mac and will never be until the stop faking the UI.

    Same thing can be said of adobe’s creative suite.

  217. LeeZ

    Plus, look Java..

    Java was great for developers but failed at the user level…

    We don’t want to turn the apple world into another MS or IBM world..

  218. Chris G

    I’m not sure that 3.3.1 really makes that much of a difference to how people are writing for the iPhone today. I don’t know any iPhone developer who ISN’T either writing web apps or writing them in Objective C – so what’s the beef? Sure, the intention is to prevent the use of future, as yet unreleased, alternative build platforms, but given they don’t actually exist today, it’s not like it causes a big inconvenience to anyone (except someone who perhaps is building such a programming environment).

  219. babble

    “Perhaps he’s referring to the days when some applications were being written with CodeWarrior and various other build systems…”

    You’re missing one rather large, salient point (assuming this is actually from Steve): NeXT has been down this road, already, with OpenStep. They tried to build a rapid-application development toolchain and had an IDE that forms the basis of today’s Xcode.

    The idea was to write an OpenStep app exactly once, and run it as-is on NT, Solaris, NextStep and anywhere else OpenStep would eventually be ported.

    OpenStep everywhere – one API family to rule them all.

    This worked out for precisely no one, and led directly to NeXT turning to WebObjects in order to become a modestly profitable software company, instead of a footnote, a failed hardware manufacturer, etc.

    I’d say take Steve’s answer at face value: cross platform toolkits don’t really leverage what’s good, and interesting about developing for a specific platform, and devs are at the mercy of waiting for the intermediate toolchain to keep in sync with the underlying OS/API set. Steve’s been down this road before, not with sort-of-kind-of examples from Apple’s history during his years in exile, but with an actual attempt to do essentially exactly what Adobe is attempting to do, when he was doing NeXT.

  220. bob

    OpenStep are you kidding, this is about locking out competition. Im sure Apple has lawyers sleeping in firehouses ready to slide down poles when the inevitable lawsuit against them for anticompetitive practices is filed. If we werent talking about cellphones, this would not have even lasted this long.

    There’s no such thing as too arrogant to fail, and there is such a thing as law against this exact behavior.

  221. babble

    I’m not saying NeXT’s experience with OpenStep is the sole reason Apple is doing this. The point was that the original analysis of Steve’s comment brought up relatively minor nonissues like CodeWarrior while ignoring entirely important comparisons where one company – NeXT – tried to do EXACTLY what Adobe is attempting to do, with no real success to show for it.

    Of course Apple has a business interest in getting folks to use its own APIs and tools, because they want devs to use their ecosystem. Of course they do.

    Lest folks keep thinking Adobe is doing ANY of this out of the goodness of its own heart, they’re not. Adobe’s problem with this isn’t about lock-in. It’s about Apple not allowing Adobe to lock you into developing on Flash, instead of Xcode.

    Ranting about monopoly FUD is irrelevant. That Apple is successful doesn’t mean they’re forcing anybody else out of the smartphone platform. That Apple is successful, or has a growing share of that market doesn’t mean they’re able to keep anybody from entering the smartphone market.

    Have you even bothered to look at the market in question, here?

    If devs want to tell themselves that Apple is a mean, mean, meanypants and they choose not to develop for iPhone OS, that’s perfectly fine. Go write Android apps, or Flash apps, or whatever floats your boat. Feel free.

    But whining about antitrust says far more about the typical irrational anti-Apple bias than it says anything useful about what’s actually going on.

  222. clevername

    I don’t quite see what the fuss is about. According to the terms, all it’s saying is that the app. must be written in C, C++, or Javascript. You don’t even have to use Xcode. If someone were to come up with a compatibility layer (kind of like boost), written in C or C++, so that you could write an app. for iPhone and Android and whatever else, why wouldn’t that be allowed?

  223. babble

    Want Adobe-specific examples why this sort of cross-OS/cross-API development is bad for real-world users?

    Photoshop Elements for Mac vs. Photoshop Elements for Windows.

    Will we *ever* see a 64 bit version of Photoshop for OS X?

    Will we *ever* see Adobe take Flash performance seriously on OS X?

    Go ahead and cry crocodile tears for Adobe, here, if that flips your wig. But to pretend that ANY of this has to do with “openness” is silly.

  224. Nicolas Goles

    Regular Apps and Games are 100% different animals. I agree to use native Apple tools to develop Applications, but for games it’s a whole different story, take Nintendo, Sony they have tools, but if you don’t use them all, it doesn’t matter, but if your app is slow or bad it will just be rejected. You evaluate the product, not how it was built, this is like discriminating someone because he was born in X instead of Y.

    Bullshit for games at least, ask ANY serious game dev about what he thinks about this and how it WILL hurt the AppStore ( oh and check how many of the top10 games in the appstore use scripting of some kind :-) , tap tap revenge? The simpsons… ?

    Damn

  225. Chad

    “Like an invisible cancer” ??? Seriously, you couldn’t have a found a less insensitive way to compare this?

  226. Andrew W

    freedivrex had it right. It’s not fundamentally performance; it’s that Apple wants iApps to track *Apple’s* APIs, not some third party toolkit. The very nature of third party cross-platform frameworks is “lowest common denominator”, even if the back-end has significant platform-specific work.

    If everyone is writing to a toolkit, then the toolkit provider will only “feature up” the toolkit when it is cross-platform convenient to do so, not when Apple (or anyone else) implements a groundbreaking platform-specific feature.

    Now, some apps, like games, might be sufficiently non-standard in their interface that they don’t lose much by defining their own UI. But Steve has never been one to let the weakest case drive policy.

  227. Måns

    Jobs just comes across like an ignorant old fashioned idiot that does not know how advanced software and compiler technology is progressing today. There is no way, that Objective C has long term future as a safe, productive and maintainable language. The free world will just make any closed universe seem like a gray concrete communist state in the long run.

Comments are closed.