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.
Tags: apple, FuckingAppStore, greg, iPhone, Steve Jobs


Phill Kenoyer
April 10th, 2010 at 10:45 pm
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.
Horace Ho
April 10th, 2010 at 10:50 pm
IMHO, 3.3.1 is a lawyer’s way of saying, “I don’t want Flash.”
AdamC
April 10th, 2010 at 10:52 pm
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.
Shayne Wissler
April 10th, 2010 at 11:04 pm
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.
Mark Hernandez
April 10th, 2010 at 11:10 pm
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!
PageBlend LookBook HD digital media publishing - Apple vs Adobe : CTN Digital
April 10th, 2010 at 11:14 pm
[...] Greg Slepak claims to have emailed the Apple CEO about the situation, and posted the following thread. Given [...]
Scott
April 10th, 2010 at 11:14 pm
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.
Harvey Marcus
April 10th, 2010 at 11:20 pm
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.
Steve
April 10th, 2010 at 11:20 pm
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.
Steve Jobs explains iPhone SDK changes regarding Adobe restrictions « It's All Tech - Connected with Technology
April 10th, 2010 at 11:27 pm
[...] a series of emails reportedly between Steve Jobs and Greg Slepak, Jobs explains why Apple banned tools that allow one [...]
James
April 10th, 2010 at 11:27 pm
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.
Steve Jobs Responds to Developer About New SDK Regulations via Email
April 10th, 2010 at 11:27 pm
[...] Effect’s Greg Slepak isn’t a fan of the new rules and wrote Jobs directly expressing his disappointment. Steve wrote back, Greg wrote back to Steve, and in the end it came [...]
Will arrogance be Apple’s undoing? « Old Dog, New Tricks
April 10th, 2010 at 11:33 pm
[...] 2: The Tao Effect guys have larger cojones than most and emailed Steve Jobs about the new SDK provisions in regards to development languages and tools restrictions. His [...]
Ronin
April 10th, 2010 at 11:33 pm
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.
siraj
April 10th, 2010 at 11:33 pm
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.
Jem
April 10th, 2010 at 11:35 pm
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.
Ed
April 10th, 2010 at 11:37 pm
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.
Jem
April 10th, 2010 at 11:38 pm
…..Not to mention how dreadfully ugly it is
Shane
April 10th, 2010 at 11:46 pm
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.
Jack Freeman
April 10th, 2010 at 11:47 pm
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.
Jeremy Chone
April 10th, 2010 at 11:53 pm
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.
luke
April 10th, 2010 at 11:53 pm
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.
Marc
April 10th, 2010 at 11:57 pm
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.
Ruben Munoz
April 11th, 2010 at 12:01 am
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.
Jay
April 11th, 2010 at 12:01 am
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.
Dan Downs
April 11th, 2010 at 12:02 am
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*.
Mike Rose
April 11th, 2010 at 12:02 am
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.
T. Varadaraj
April 11th, 2010 at 12:08 am
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.
Josh of Cubicle Ninjas
April 11th, 2010 at 12:12 am
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…
Tom
April 11th, 2010 at 12:22 am
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.
Jack Freeman
April 11th, 2010 at 12:24 am
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.
arhra
April 11th, 2010 at 12:25 am
> 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.
Wilhelm Reuch
April 11th, 2010 at 12:29 am
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.
Ed
April 11th, 2010 at 12:35 am
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.
BlogoFlux – Latest news on Gadgets, Internet, Applications & Hardware » Blog Archive » Steve Jobs on SDK complaints: “intermediate layers produce sub-standard apps”
April 11th, 2010 at 12:39 am
[...] his personal email, Steve Jobs finally broke Apple’s silence on the matter through a number of exchanges with TaoEffect CEO and software developer, Greg Slepak. Steve replied to Slepak’s complaints by citing a piece by John Gruber of Daring Fireball [...]
Devon
April 11th, 2010 at 12:40 am
Creativity is born from constraints. Freedom actually stiffles creativity.
John
April 11th, 2010 at 12:59 am
What were smoking when you wrote that firefox is the best? Are you so biased?
Scott
April 11th, 2010 at 12:59 am
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.
Dave
April 11th, 2010 at 12:59 am
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.
tom
April 11th, 2010 at 1:00 am
“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
kirasaw
April 11th, 2010 at 1:04 am
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!
Civilian
April 11th, 2010 at 1:11 am
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.
iPhone.Coder
April 11th, 2010 at 1:11 am
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.
cakpuad
April 11th, 2010 at 1:16 am
I’m almost sure that the look and feel of Apps made using [...] Monotouch would be really different from the native ones.
Paul
April 11th, 2010 at 1:18 am
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.
mconnors
April 11th, 2010 at 1:27 am
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.
Al
April 11th, 2010 at 1:31 am
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.
Matt D
April 11th, 2010 at 1:33 am
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.
Civilian
April 11th, 2010 at 1:41 am
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 :-[=]
chandra
April 11th, 2010 at 1:49 am
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.