Many developers are up in arms about a new policy from Apple that mandates all iOS applications to be written in either a flavor of C or JavaScript. It’s original motivation is apparently to prevent Adobe’s imminent Flash-to-iOS compiler in CS5 from working, but the collateral damage is much greater than that.
There’s a wealth of cross-compilers in the wild that looks to be outlawed by the same provision. Titanium, Gambit Scheme, MonoTouch, and Unity3D are a few of the bigger ones. These layers allow you to write applications in programming languages like Scheme or C# and compile that into a native iOS applications (as well as other platforms like Android).
Lots of developers, me included, have had such a gut-turning reaction to Apple’s new policy that we have a hard time thinking and speaking rationally. The emotions take over and we start screaming “fascists!”, which isn’t very persuasive to non-developers who don’t have the same instinctual reaction. So instead, allow me to go through five (mostly) rational arguments for why this is a bad idea.
1. The App Store is not a carefully curated gallery
Some have argued that if Apple lets Flash developers compile their applications to iOS, the App Store is going to be overrun by shitty applications and regular folks won’t be able to find anything. The barbarians are at the gate!
The problem with that argument is that the App Store already has some 180,000 apps listed. I assure you that they are not all cream puffs. I also assure you that there is no way that the best flash application is worse than the worst native app currently in the App Store.
This argument would have worked if the App Store was a carefully curated gallery of perhaps 1,000 applications. But it is not, which, btw, is totally fine. The web is not a carefully curated gallery of web pages and yet we’re still able to find the good stuff all the time thanks to intermediaries of discovery.
2. Changing your license in-flight makes developers nervous
This issue is exactly why developers fear being sharecroppers. One day you’re happily developing an application for Apple’s platform and dreaming of big things to come, the next Apple kills you dead with the stroke of a pen.
It’s hard to build a business on a platform where you feel like you cannot trust the men in power. If they can take down Adobe a few days before the launch of their flagship product, what hope do smaller players hold?
If you view the economy as the App Store, Apple can be viewed as Venezuela where the rules of commerce are constantly changed and investors start fleeing for the fear that they’re next. They may not leave today because of vested interests, but you’re scaring good people away and driving them to alternative platforms. But since the effects won’t be felt tomorrow, it doesn’t appear nearly as dangerous as it really is.
3. Enforcing public APIs does not make Apple beholden to Adobe
Louis Gerbarg argues that Apple will be beholden to Adobe if they allow Flash as a cross-compilation layer because of backwards compatibility concerns. I don’t think that’s true. First of all, Apple already has a policy against use of private APIs. They can reject applications from the App Store if they find them in violation, Flash-compiled or not.
Second, imagine if you have 1,000 applications done against the native APIs. What’s the likelihood that some of them will be using private calls? Given the debacles we’ve seen so far over this, I’d say that a fair number of them will. Thus, these applications might potentially break when Apple updates iOS.
Now imagine the same 1,000 applications written in the sandbox of Flash. Is it easier or harder to ensure that the Flash compiler doesn’t tab into private APIs than it would be with 1,000 independent apps written straight to the metal? I’d say easier.
Also, who stands to lose more if all these applications break: Apple or Adobe? Adobe would screw over their entire base of developers and Apple would lose 1,000 applications. I’d say Adobe would be in more hot water and given all the hoopla, I think they’re going to be extra diligent to not step over the public/private API lines.
4. Selective enforcement is unfair and unsettling
The App Store review process has long been under fire for being fraught with selective enforcement. Some apps get rejected for the doing things already-confirmed apps didn’t get questioned about. This is especially true when Tier A developers like EA gets away with things that Tier C developers in their basement don’t. It breeds an air of aristocracy where the lords can roam as they please but the peasants are kept on a tight leash.
This selective enforcement is already happening with built-in interpreters. Apple’s rule 3.3.2 reads:
An Application may not itself install or launch other executable code by any means, including without limitation through the use of a plug-in architecture, calling other frameworks, other APIs or otherwise. No interpreted code may be downloaded or used in an Application except for code that is interpreted and run by Apple’s Documented APIs and built-in interpreter(s).
This means no Java or Flash apps that just run within an interpreter. But it’s also supposed to mean that game developers like EA and others can’t use languages like Lua to program gameplay, yet that isn’t happening. The lords are free to roam indeed.
5. For developers it’s about more than just business
“But hey, if you don’t like it, why don’t you just go somewhere else?”. Developers are indeed free to vote with their feet. Take their code to more open platforms and stop complaining about Apple. Some already have.
But remember that many developers came to Apple in the first place to escape these kind of antics from the big man of the day, Microsoft. Apple has benefitted big by appealing to developers on more than just business. Many developers switched to Apple long before it was economically a good idea just so they could get away from Microsoft.
Look at the number of great free, ad-less applications in the App Store. Programmed by developers who did it for fun and love. Because they could and they wanted to. Not just because Apple had the biggest market share of smart phones. Apple benefits from that.
It’s better to be loved than to be feared. It’s only when you can’t make them love you that you want them to fear you. Apple has jumped the gun. We weren’t done loving you before you made us fear you.
Tobias Giesen
on 12 Apr 10Make sure Apple get to read this! Steve Jobs even!
Anonymous Coward
on 12 Apr 10Apple is like Venezuela, ha!
Aaron M
on 12 Apr 10Good points david. With your 3rd point, I do feel that flash is something that adobe could control very very well, and that it would provide great capabilities on the iphone OS, however there are great APIs out there that can be used too. I was thinking of using W3c’s Validation Code in someway to perhaps create a simple validator app on the phone. Given the new agreement, such things would be breaking it. There are just so many good resources out there. What it boils down to is developers using bad design or bad practice, and they make external APIs look bad. IE twitter’s phail whale gave rails a bit of a bad image to those less educated.
Remington Splettstoesser
on 12 Apr 10Well put David.
Eric Fleming
on 12 Apr 10Are you guys using any of the above mentioned tools for developing iPhone applications? I was planning on using Titanium for developing my own app for two reasons:
1. I don’t like Objective C, I tried it, tried developing in it, and found myself not enjoying working with it. 2. I know how to develop for the web, why not be able to use something I know and leave the Objective C to the experts.
I am hoping that this all gets worked out because I don’t see myself creating an iPhone app if I have to use Objective C to do so.
Kyle
on 12 Apr 10Well said David.
I wonder if Steve Jobs is just out of date on this stuff. Yeah, cross platform apps have a history of sucking on the map. But ‘intermediate layers’ is a best practice now.
Zombieville, Ravensword, and other Unity games have been very successful and could not possibly be considered ‘sub standard’.
‘Intermediate Layers’ let you focus on gameplay and, you know, making things fun.
DHH
on 12 Apr 10Eric, I was looking into Titanium and I know of other developers who’ve already gone down that path.
Deva Annamalai
on 12 Apr 10Good writeup david. This license makes Microsoft look like a saint where they never sued Borland or other companies which built compilers and development tools to run on Windows back in the day.
Piotr Petrus
on 12 Apr 10And they have learned Objective C, they’ve adopted Carbon and then Cocoa. They’ve studied Core frameworks. They were good citizens and used UI that had been estabilished by Apple’s designers and interaction architects.
Current wave of developers consists (partly!) of people who believe they can write once and deploy everywhere. This isn’t going to work on a device that doesn’t have hardware to support this kind of software overload and maintain perfect, humanistic interaction.
If you have any doubts about Apple’s decision, look at Adobe’s examples. Those apps have despicable UI, weight much more than native counterparts (Adobe’s Metronome is an 8 MB application – a native application that does exactly the same thing is three kilobytes) and use all RAM available (it was tested on jailbroken iPhones).
Apple wants quality because it is establishing a new platform. They want to excel in everything to beat competitors – Android and Windows Mobile.
John Topley
on 12 Apr 10The problem is David that until Apple stop making stuff that’s considerably more desirable than what the competition have to offer, we’re all going to continue to bend over and take it.
Did it stop you buying an iPad? Have you withdrawn Highrise for iPhone in protest? Didn’t think so.
Ben
on 12 Apr 10Great to see 37signals coming up with rational views of this lousy move by Apple.
Stefan Seiz
on 12 Apr 10Here’s to the crazy ones, the misfits… Think Different! Guess they already forgot about that Mantra.
Aaron M
on 12 Apr 10Eric, I saw david’s link to titanium last week, and it looks pretty cool. I tried out a little bit of unity3d with desktop games and that. Me personally, I stuck it out and learned a little bit of objective C. But id rather use C++ over it to be honest, it’s just quite different then anything else. Ruby for iphone development would be pretty awesome though.
Chris
on 12 Apr 10I am definitely concerned about the way Apple is headed. The irony of it all is that they are acting more and more like “Big Brother”.
Alex
on 12 Apr 10Smells like Betamax…
Steven
on 12 Apr 10I can’t imagine writing an RPG without a built in scripting language. Lua is just an amazing boost to productivity. Why don’t we all just write our own 3D engines too. Jeezus.
DHH
on 12 Apr 10John, we are indeed taking it. Just like Microsoft developers took it for so long. Until one day they didn’t have to take it no more and they left. I’d like for the same not to happen to Apple. Love > Fear.
Mike Pierce
on 12 Apr 10...and piss off the users of those 1000 applications when they stopped working. Keeping in mind that 95% of those users wouldn’t know the difference between an app made in Flash or in Xcode, so would obviously blame Apple for it. The point being that obviously Apple is and should be more worried about pissing off it’s own customers rather than Adobe’s.
Perhaps it is, but it’s still relinquishing responsibility for that happening to Adobe. Why would Apple willingly do that unless they absolutely had to?
Piotr Usewicz
on 12 Apr 10Weak arguments :/
Andrea Sancio
on 12 Apr 10Nice write up David, expecially when you write “It’s better to be loved than to be feared.”. I can’t deny that apple’s last moves drastically changed (in a negative way) how i “sense and feel” their company.
Aniway, we use Titanium to develop desktop application, we were and we still plan to start developing mobile applications too.. if apple block Titanium, we’ll simply develop our best possible applications for Android, Blackberry and Windows phones.
DHH
on 12 Apr 10Mike, the key point being that if you scan and disallow private API calls, that’s the policy to enforce. Not what something was written in. Secondary point is that it’s less likely for Adobe to use private calls for their flash compiler than it is for native developers given the pressures involved.
Phi.Sanders
on 12 Apr 10Your item 3 completely glosses over what I’ll calling the “bundling” issue.
In politics, you don’t have to have a ton of money to get a ton of influence, you just have to bundle a lot of donations together – be it as a PAC or just a fundraiser.
You touch on this yourself in your stance against enterprise features, where you have said you don’t want one huge account telling you what to do.
That’s exactly what Apple is trying to prevent. They do not want to allow some other “meta” platform to bundle a bunch of developers together and gain leverage over their platform.
That is exactly what Adobe wants to do – keep those developers on THEIR platform, to prevent them from learning Objective-C and going direct to market without them.
The very stink about Flash not being supported in web pages validates what Apple is trying to prevent in the store.
Robert Stadler
on 12 Apr 10You probably lost them at “Rational”
Jay Godse
on 12 Apr 10Apple’s problem is that they are doing a half-assed job in curating their app store. At this point in time, they should stop completely and let somebody else do it.
There is a way around this problem for many apps.
1. Make a web app that runs on iPhone’s browser.
2. Use jQTouch to emulate the iPhone look and feel.
2. Use HTML5 storage for local storage on the iPhone.
4. Provide a back-end service that provides good value.
This will let developers get access to iPhone users without having to jump through an unpredictable or unfair application approval process.
DHH
on 12 Apr 10Phil, I agree that’s what Apple does not want. I’m saying that it’s not worth the collateral damage. I think they vastly overestimate the possibility of Adobe to be able to tell them what to do and they underestimate the damage this is doing to their rep amongst developers (and the consequences, especially long-term, of that).
Larry
on 12 Apr 10That ‘meta platform’ can be any code that is shared by lots of apps. 3D engines. 2d Physics engines. Apple could make a change and break thousands of apps that have anything in common. But hey—that’s how software works. Not every app can have every piece unique. And fixing it is a lot easier with common components.
TheCosmonaut
on 12 Apr 10I couldn’t agree more on all accounts. The fact that it went down hours before the CS5 announcement also shows some seriously questionable judgment on behalf of the Apple Overlords. And it’s really sad—I was truly looking forward to developing for the iPhone/iPad :(
What makes me really sad is Apple’s record on changing course. Have they EVER changed their mind on anything like this? Seems like with these types of issues, they take a hardline stance on general principle and stick to it – once the decision has been made, end of story, even if developers like me “walk” to other platforms, even if they lose business, etc. I recognize that companies need to see strategies through to their conclusions, but Apple’s case seems a bit extreme.
Lee Graham
on 12 Apr 10I think I’m a soon to be victim of this sucker punch from Apple!
I’ve been a part of the Flash CS5 beta program and have two iPhone Apps created with Flash. I can say for a fact Adobe is committed to making this work, but if we get blocked by Apple we are screwed.
Apple == fascist bastards
Long live Android! And thanks David for the post.
Tomas
on 12 Apr 10While the arguments are rational, you also make it sound like this is a no brainer, like it’s an easy decision to make and that the decision you’d like Apple to take has no downsides what so ever.
This does not inspire confidence. Makes me wonder if all your advice ignores the other side of the argument as blatantly, too.
Anders
on 12 Apr 10Moves like this make me even more sure of my decision to create web apps primarily – and only go for native apps when I have exhausted the possibilities of web apps.
Great writeup!
Arno Nyhm
on 12 Apr 10the problem is the horrible objective-c language (for example the stupid square brackets)
and xcode is a bad joke if you compare it with intelliJ, netbeans or eclipse.
i think if there would be a java iphone framework it would be a kick … why? more developers, ready developers, great mass of IDE already available
Mike Pierce
on 12 Apr 10DHH: That makes sense on the first point, fair enough. Second point is based on a likelihood, and I think Apple would rather deal in certainties. The only way they can be sure of that is to not relinquish control where they don’t need to. I think the danger they see is that with the mass reach that allowing Flash would have, they may be forced down the road to let Adobe influence things more and more, and they would prefer to head it off at the pass. Say for example OS 5 comes out in a year and in that time 10-15% of the app store is made up of flash apps. For those Flash apps to be updateable to harness OS 5 features, Flash developers not only have to wait for the update from Apple but also an update from Adobe. With that kind of leverage, Adobe could start arguing for a look at the roadmap earlier on in the process, miring Apple in extensive discussions with Adobe which could slow down development. Would you willingly put yourself in that position if you had the option to not do so?
Jeff Lewis
on 12 Apr 10Please send to [email protected]
DHH
on 12 Apr 10Tomas, I comprehend many of the reasons why Apple would want to do this, I just don’t consider them to be compelling in face of the negatives. Lots has been written about how what Apple is doing is just fine, see Gruber’s story for one.
Kyle
on 12 Apr 10Apple has changed their mind—remember the original developer NDA that made impossible to talk about programming the iPhone in a public place? No forum posts, blog posts, etc. They did back down and IIRC were even a bit apologetic.
TheCosmonaut
on 12 Apr 10@Piotr – If they’re that concerned about quality control, Apple should reject poor apps on an app-by-app basis, rather than outlaw an entire technology. There are plenty of crappy apps built in Cocoa (with poor UIs and bloated RAM needs), but we don’t reject the entire technology out of hand.
DHH
on 12 Apr 10Mike, there’s a bigger picture than possible, maybe futures of Adobe dominance. That’s all the collateral damage caused by this. Any rational decision needs to look at the 2nd order effects. I completely get that Apple doesn’t want to be beholden to Adobe, who would? I’m saying that it’s unlikely to happen while the fallout is certain to occur.
What bothers me even more about this is that I don’t exactly consider Adobe to be the pinnacle of software development. I think their history with the Mac is full of bad bets and missed opportunities. I think that Flash on the web is largely bad and cheer on the coming of HTML5.
So Apple is forcing an issue that causes me to jump to Adobe’s defense as part of a coallition defense for all cross-compilers. That’s painful. I’d rather not do that.
George
on 12 Apr 10http://twitpic.com/fp9c5
MaCommunism?
Mike
on 12 Apr 10Come on over to the Android pool, iPhone devs, the water’s fine!
Contrary to Mr. Job’s ill-conceived statement “Java is dead” – it’s really alive and well. :)
TheCosmonaut
on 12 Apr 10@Kyle – That’s encouraging to hear… I’ll keep hope then! I really want to love Apple, and want to contribute, but they make it difficult some times.
Mo
on 12 Apr 10I think that Steve gave an clear hint some time ago, whats wrong with Flash, be it in an Runtime or a Cross-compiler. The OSX Plugin crashes all the time, uses way too much CPU and by the way, nobody needs it. And what is Adobe doing? Crying like a little girl instead of getting a good team of real Coders on the thing and fixing it. I wonder if they have any coders left, or just people who can point and click around in some GUI like Flash oder .NET.
Dmitry
on 12 Apr 10I was asking myself “why?” until I’ve read this article on AppleInsider. Reviewing what I’ve seen on the keynote about 4.0 about multitasking services I can now understand what problems unadapted Flash apps can cause. Note that Apple actually haven’t rejected those non-native-way-written apps using CS5 (Adobe has shown them few months ago announcing CS5) , PhoneGap(not sure if it violates new terms at all), Titanium, MonoTouch, etc. until 4.0 SDK came with a special flavor of multitasking… In fact, I still hope that JS-based tools like PhoneGap will be allowed to get to the AppStore. I don’t really like the Obj-C (Eric, +1) and I’d much more prefer writing native apps in Python on JS, but it’s not a blocking factor if I would REALLY want to make a great app for iOS.
Roger Wilson
on 12 Apr 10It’s simple, if Apple forces developers to use objective C, then it forces developers to buy in to the platform. Which means additional sales of Mac hardware for Apple. Apple sipmly wants to make sure that it is the hardware & software vendor to anyone creating applications for the iP* devices. Apple doesn’t care about developers, it never has. To Apple, developers are just a tool.
Mike Pierce
on 12 Apr 10DHH: I generally agree. I guess I’m trying to play a little Devil’s Advocate, as I definitely feel the same way that it’s a shame there is so much collateral damage. All I’m saying is I can see the arguments to both sides, and why Apple have chosen the side they are on. As I see it in some of your other comments, it comes down to reputation with developers vs control, and I guess we’re just (narrowly) on opposite sides of those lines. And I think that’s OK.
Steven Wei
on 12 Apr 10David,
I think there is a much less sensationalistic explanation for Apple’s 3.3.1 policy: the iPhone OS 4.0 SDK relies on C/C++/Objective-C blocks for multitasking – something that might not be easily replicable on intermediary platforms with different languages and different memory management schemes (particularly ActionScript).
Be sure to read the comments as well, there is some interesting information there regarding the OS-level behavior of blocks.
DHH
on 12 Apr 10Steven, seems weak to me too. a) Not all apps need multitasking, certainly not most games. b) Developers are still free to pick their tools. If the Flash-to-iOS compiler doesn’t keep up with the latest features, developers are free to switch.
Nidal
on 12 Apr 10Apple doesn’t want flash .. they just couldn’t stand seeing flash AS code being converted to Objective C ..
Anthony
on 12 Apr 10Plus the same argument applies. It’s EASIER to update tons of legacy apps if they using some sort of code-gen. Unity updates their engine, you recompile with a few changes, and POOF, new features implemented.
Compared to every single unique app recoding things to take advantage of new features? Which is likely to be faster?
Walt
on 12 Apr 10@Dmitry As I understand it, PhoneGap will be fine since it’s not using anything other than HTML, CSS and JavaScript.
David Waite
on 12 Apr 10I’m not yet worried about the collateral damage; Apple has stated their purpose, but I imagine may still tweak their approach based on developer feedback.
Really, I find it amazing that the Flash team would spend so much effort outside of any partner relationship with Apple, and try to push things in the court of public opinion. Witness their initial complaints over Apple blocking Flash on the iPhone, yet it taking them nearly three years after release to have an ARM version for devices like android phones (with nearly identical hardware, and the same webkit-based browser).
The companies behind Unity and Titanium should be talking to Apple and finding out what is needed to support the platform, and for Apple to support them.
Bilgehan
on 12 Apr 10I don’t understand why most of Apple fans and evangelists want to give up their freedom so easily. All over the web, Apple geeks are defending Apple’s decision blindly. Criticism and healthy competition will make Apple better, not the other way. I agree that some level of control is needed for better user experience. The question is how much? I accept that mac os x operating system can be installed on just Apple computers. I understand this and agree but i don’t agree to give Apple control on what i can / can’t install on my device. If Apple says you can’t use or install Lightroom because i have similar software Aperture for the same job, will you accept that?
Steven Wei
on 12 Apr 10@dhh
Clearly Apple is evolving their supported languages (C/C++/Objective-C) with new constructs to support the new features they are adding to the iPhone OS.
a) Today it is multitasking, tomorrow it might be something else, that more apps would benefit by taking advantage of. If these third party frameworks can’t keep up, then those frameworks will be hindering the adoption of those new features.
b) Rewriting your app in another language is expensive. If developers start building these things in Flash it’s unlikely that they’re going to want to switch for new feature X – more likely that they’ll just wait for Adobe to implement it, or never implement it themselves.
Note: I don’t necessarily agree 100% with Apple’s stance (I think certain language bindings should be allowable), but I think that Apple does have a valid point (that has been largely glossed over by the angry mob). That said, think that the Flash platform, with its own runtime and its own memory management issues probably will never be a good fit for the iPhone.
Brian
on 12 Apr 10I suppose Apple doesn’t want its users attributing a memory-hogging-app’s poor performance to the device – instead of the app (or more appropriately, the developer.) But if their motives are purely based on maintaining quality, Apple should base store acceptance on an app’s ability to meet performance benchmarks, not which compiler was used.
Kyle
on 12 Apr 10Steven,
Let’s say Apple adds some new super fast math functions. Which scenario has more apps ‘keeping up’ with new features?
1000 apps that share a common game engine like Unity.
1000 unique apps that all need to be hand tweaked to take advantage of the new feature.
The apps are already out, they are probably past their selling time so the original devs have likely moved on. But if they can do an update efficiently they will probably do so.
I wish people who just not talk about Adobe at all when discussing this issue. I see so many, “Flash on OSX sucks, suck it Adobe” comments that it is impossible to discuss the actual issue rationally.
sheeparegreat
on 12 Apr 10I think this shows the value of building things for an open platform.
Ironically the main reason I run a Mac (instead of Ubuntu) is that I was fed up of having to reinstall Multimedia/Flash on an upgrade (less of an issue now). I also bought a first generation iPhone on the 1st day is was released in the UK, only to get burned by the upgrade options when the 3G was released. For this reason I will never buy a 1st generation Apple product again.
When Android gets hardware which can compete effectively with the iPhone I think the iPhone will suffer… unfortunately for Android I think that Apple make beautiful hardware…
Steven Wei
on 12 Apr 10@kyle
Well obviously it depends on the situation. Lets hope with super math functions that it could be done at the compiler level.
But you can think of the exact opposite scenario – what if Apple introduces some new whiz bang accelerometer with twice as many measurements? Regardless of what platform the app is built on, the app developer is going to have to go into their app and update it to take advantage of the new APIs anyway. Then the question becomes: how quickly does their platform vendor support the new APIs, introducing a delay before the developer can start using them.
Donny V
on 12 Apr 10You keep talking about how Microsoft has done the same thing and it is why people are moving to Apple. But I don’t see the connection. Microsoft has always let you freely develop on there platform. They have even responded to all the open source competition and given away lite versions of Visual Studio and SQL Server. So I’m not sure where your getting these arguments from.
Adi
on 12 Apr 10Who said that apple cares about their external developers?
From the perspective of the developers, Apple did terrible things with this new update. I agree with this. But they are already established. They can afford the risk.
It seems that apple tries the strategy of Google. Google cares only about their users. It does not care at all about their advertisers.
For example, Google fired thousands of their ad-words advertisers last year. Also, if your site gets sandboxed(penalized) from google search engines, it will never get back to its former rankings even if it wasn’t your fault or they made an error. You will need to create a new site and work again from scratch.
Apple has people buying their products. This is what they care about. 3000 more apps in their app store does not mean that much to them. It does not really make a difference from the user’s perspective and it does not affect their bottom line either.
They also don’t care if other companies (Adobe, Titanium) make money from their customers. In the worst case scenario, apple’s internal developers will make apps for their users and it will still be okay. The apps will pay for themselves.
On the other hand, if they let others create standards on top of their platform, apple may lose control.
Business wise, this decision makes sense. I would probably do the same.
Eduardo Scoz
on 12 Apr 10@Kyle,
Kyle, your example doesn’t make sense. If apple adds new superfast math functions, it can do one of two things:
1- change the current API to use the new functionality: in that case, all apps, including ones compiled with MonoTouch and even flash, will probably benefit from it
2- not change the current API, and make the change a compiler thing or a new API: in that case, all apps, not only ones created with 3rd party tools, will need to be tweaked or at least recompiled.
So using a 3rd party or not doesn’t really make any difference. As the MonoTouch guys already did a few times, its possible for 3rd party tools to be available merely hours after the SDK is out.
Not sure if you know, but the first application created for the iPad that was publically demoed that was not blessed by apple was a port of a MonoTouch app. So clearly the excuse of 3rd party taking too long to update is bullshit.
Alex Blewitt
on 12 Apr 10I wrote about the collateral damage as well, which is worse than the Flash-specific parts of it. The terminology is so vague that almost anything could be impacted.
Ironically, Objective-C grew out of a set of macros; and yet now, it appears that Apple is forbidding the use of macros or other languages based on the same.
http://alblue.bandlem.com/2010/04/collateral-damage-in-331.html
John Topley
on 12 Apr 10Where by fine you mean a fractured mess of numerous hardware variations, many of which are running a very outdated version of the OS. The Android story harks back to having to deal with Win16/Win32s/Win32 (9.x subset) and Win32 (WinNT subset) on the PC!
Dan Boland
on 12 Apr 10With all due respect, it’s kind of interesting to hear someone who I would consider to be a pretty savvy businessman and fervent supporter of capitalism crying foul over a pretty sensible, if not ruthless, business decision.
Simply put, they don’t want their platform commoditized, and 3.3.1 is the avenue they’ve chosen to prevent that from happening.
I think what has people really steamed is that 3.3.1 happened on top of an approval process that remains arbitrary at best and idiotic at its worst. Had the approval process been fixed satisfactorily in advance of this (or even concurrently with this), the anger wouldn’t be as strong as it is.
George
on 12 Apr 10Complaining in public is the market at work—that IS capitalism!
Josh
on 12 Apr 10These are fine points, but anyone that’s upset by this change really needs to read this:
http://www.devwhy.com/blog/2010/4/12/its-all-about-the-framework.html
The important part is about how backwards compatibility is a hard issue to deal with, and when you allow third party runtimes on your platform, you’re ceding a lot of control to other companies. I have a very hard time believing that 37signals, or any company that’s interested in profiting on their products, would allow other companies to have control over those products.
That’s what this is about. This is not open source software. It’s a closed platform, and what they’re doing is perfectly reasonable. I’m an iPhone dev, I have apps in the store, and I’m not even remotely upset by this. Of course, I wrote my app in Objective-C and Cocoa Touch.
Incidentally, anyone that’s not using Apple’s developer tools is missing out. They’re the best development experience on any platform, hands down.
Aaron M
on 12 Apr 10@Adi I agree with you on that. Google definitely is hard to work with from an advertising perspective. I can see why apple would want to create the best user experience possible, however I think blocking off good external APIs (which is what gets me more than using another language such as flash or java) is really a poor decision. If apple scares away good developers that prefer a certain API or platform, apple’s customers lose out on it too.
Henrik
on 12 Apr 10Great post, I have added some obvious economic (rational) arguments why this is bad for consumers.
Douglas Putnam
on 12 Apr 10I get the feeling that most of the participants in this debate aren’t even iPhone developers. Just shows how mighty the Apple cogsci team is at getting mind share—-whether you love ‘em or hate ‘em, you’re thinking about ‘em.
To paraphrase George Lakoff, “Don’t think of Apple.”
RobertF
on 12 Apr 10Yet another reason why I’m remaining a web developer.
Joe Pimentel
on 12 Apr 10I think Dan Boland and Josh have good points. Apple’s decision is a smart one and if I was in their shoes I’d do the same thing.
Take for instance this scenario:
Adobe creates a multi-platform development tool that allows for creation of apps for the Apple AppStore, Android Market and Blackberry App World. This tool takes off because it allows for everyone and their mom to make apps with a larger reach. However, in order to do this the tool would have to serve the lowest common denominator amongst these mobile platforms. Thus, these apps may not achieve the full potential of the platforms that they target.
Then let’s say Apple wanted to go another direction and introduce something not seen in the Android or Blackberry platforms. How would that work out? The power would be with Adobe to support such direction in their tool, and the adoption of that new functionality would be that much slower. Why would Apple would want to give the power of their mobile platform to Adobe? From a business standpoint it’s stupid. Such new direction or new functionality may even break apps developed in this tool for one reason or another. Apple would have to deal with that fall-out at some point in one way or another. It’s not smart for them to even allow that.
The reality is that Apple never said it the AppStore was an “Open-Platform”. People tried to force it into a more open platform with various tools. As a user I can see where it imposes some restriction on things but I knew that going in.
Nathan Youngman
on 12 Apr 10Well said David. The thing is, Adobe will survive even if they end up pulling the Flash-to-iOS compiler. It’s the little guys like Ansca & Appcelerator who are the most impacted.
The irony continues: “Apple wanted the Mac to symbolize the idea of empowerment, with the ad showcasing the Mac as a tool for combating conformity and asserting originality.” – 1984
I love my Mac, have for 8 years, but I’m liking Apple less-and-less all the time.
Opinion Guy
on 12 Apr 10The reason has nothing to do with programming languages, and everything to do with this changing:
http://arstechnica.com/apple/news/2010/01/apple-responsible-for-994-of-mobile-app-sales-in-2009.ars
Apple was responsible in 2009 for 99.4% of all mobile application downloads.
If developers have to use Objective-C to develop their applications they will have to rewrite their code in Java for the Android, to C# for the Windows Mobile and to C++ for the Blackberry.
Unity, Flash, Titanium and other frameworks allowed developers to write the code once and target multiple devices, and Apple is not going to sit idly while the community finds ways around a single platform.
It might be crass, but 2 billion dollars is a lot of dollars.
No amount of op-eds, user rage and a handful of developers taking their marbles and going somewhere else can counter 2,000,000,000 dollars. That is just too many zeros to let rational discourse get in the way.
Paul
on 12 Apr 10@DHH, very clearly put. I think Apple are probably entitled to make this change (although I’d be curious what the competition authorities are going to make of it), but I still think it’s a wrong move, and indicates a split personality within Apple between the guys behind OS X (which is very open), and the iOS people (and Steve Jobs).
A lot of people keep making the argument that if Adobe do a crap job of keeping up with the iOS then that’s Apple’s problem.
No it isn’t, it’s my problem as a developer. And it’s one that I may be happy to accept as the price I pay for easier development.
Every time I develop a piece of software I make compromises. Every language, framework, OS, or platform has its ups and downs. Ruby is not as fast as C, but is quicker to develop in, so I use Ruby, unless speed is my biggest concern in which case I use C. If I want to do gnarly text processing I’ll do it in Perl, and if I want to do safety critical software I’ll use Ada. If I’m building a theorem prover I’ll use Prolog.
I’ve done all these things and more in the past and each time it was about using the right tool for the job.
People say that apps written in Titanium are not as good as ones written using the native tools, but for a simple app that’s a compromise I’m willing to make in order to be able to quickly write an app that runs adequately on a number of platforms.
As DHH pointed out, if the App Store was a selection of only the very best apps then something less than perfection might be a problem, but having used some of the crap apps already available I can be confident that this is not a good argument. A slightly sub-optimal UI might be a price I’m willing to pay to let me write an app for multiple platforms.
If Adobe’s cross compiler or Titanium are lagging behind the cutting edge, then that’s part of my compromise. If it’s a problem for me then I’ll switch to native development, if not then I’ll stick with these two.
The same goes for multi-tasking. I find it hard to believe that Apple will break all existing apps in order to make MT work, instead those old-school apps will just work the way they always have. As with any other new feature, if a dev really needs multi-tasking then they can change their compromise and switch to native development.
If Apple enforce the “no private API use” rule, then using Adobe’s cross compiler will not be a problem as long as they don’t use them. If they do then apps written with it will be no worse off than Objective-C developers who uses a private API, and any scanning tool Apple use in the acceptance procedure will pick it up. As they say, you can write crap code in any language, and you can abuse private APIs in any language.
I really doubt that Adobe would make their cross-compiler use private APIs, it would be suicidal. No-one would use it because of the risk of rejection and the possibility of it breaking.
I’m sorry, but not one of the excuses I’ve heard for this move has convinced me that this is anything other than an attempt by Apple to spike Adobe, and force me to choose between developing for the iPhone, and developing for everything else.
The contrast with OS X is striking, and saddening.
Opinion Guy
on 12 Apr 10I found a Google-viewable version of the document “An empirical comparison of C, C++, Java, Tcl, Rexx and Perl” referenced in the discussion above:
http://docs.google.com/viewer?a=v&q=cache:a7HkxQeCUUYJ:page.mi.fu-berlin.de/prechelt/Biblio/jccpprt_computer2000.pdf+an+Empirical+Comparison+of+Seven+Programming+Languages&hl=en&gl=us&pid=bl&srcid=ADGEESiNbVNIQ04YLQ6pYuZfIPmWhcGclOvKa_Yj4780zg-UtzFwptUqbAFmC3LmZoHZIyj3pFuuLm_tujWtUeuhhBpIXyF5i8D6YNM-UGmuQNvcnNgfaaN-9zlSepEli5mn0oUjzIEC&sig=AHIEtbR2iUZ7A5-HcGtu42Yb-ttGW6LpTA
Just confirms what everyone already knows. High-level languages have fewer defects, use more memory, and contains fewer bugs.
carlivar
on 12 Apr 10Isn’t this a little bit pot calling the kettle black? 37signals always maintains you should be willing to “fire your customers”, etc. It seems to me that Apple is following the same mantra that 37signals emphasizes—do not be beholden to your customers. Do what you think is necessary to improve your product.
slowpoison
on 12 Apr 10@Joe, I don’t agree that Adobe would be a threat to Apple that way. Any apps that don’t use the full potential of a platform are automatically fighting a losing battle. They will most likely be superseded by apps that use native APIs and provide richer and fuller functionality.
Apple is just trying to use its muscle power to keep things under its control. That’s partly because it already has success at its hands. And mostly because Steve Jobs is a control freak.
Patrick Lemiuex
on 12 Apr 10Mike, well stated.
cmeranda
on 12 Apr 10horrifying slow, CPU-gobbling Flash games, instead of improving the quality control process. To extrapolate, if a river is dirty, why not dump a few more tons of toxic sludge in there by relaxing the laws entirely? After all, any problem obviously represents our ultimate downfall, so let’s throw caution to the wind!
2 I thought these were “rational” arguments? Sharecroppers and slaveowners, thanks for once more relegating developers to the role of slaves. Perhaps, you’re suggesting, we should flee Big Massa? But what if Big Massa beats us and drags us back? Oh wait, that’s right, we’re not slaves, we’re highly educated and skilled professionals with choices who receive a considerable amount of money and respect in exchange for our services. Analogy fail. To rebut the actual argument, I assume you’re suggesting that Apple should quake at the thought of offending its third party development community at the expense of change and refinement, even after they’ve taken the time and effort of putting together an excellent framework and the tools to use it, and given it away basically for free. Yeah, they’re such plantation owners, wanting us to use their specific API and beautiful components and language and not some CS5 AS3 timeline malarky. 3 I agree with you on this, although if you’ve ever read Adobe’s Flex framework code, hacks are not a far stretch (if you consider private API usage a form of a hack). And btw, Adobe has already screwed over their entire base of developers, multiple times, so I doubt they’ve recently sprouted scruples. 4 Sigh. Lords and peasants. I understand you’re being deliberately inflammatory, but your analogies are generally inaccurate at the expense of inciting commentary. Celebrities might be a better analogy, as it’s fairly well known that aristocracy in, say, Elizabethan England, were actually fairly restricted in their travels, abilities, marriages, etc. Peasants may have been the freer ones in that society in terms of behavior. Nonetheless, if you’re trying to say that companies with more money will be able to do what they’d like, then you’ve got to wonder, where’s Adobe’s free pass? They have plenty of money and market share to bribe Apple with, but here we are. It’s somewhat specious to claim EA is a lord, but Adobe is a…serf? 5 Ah, and here the slaves are set free. But Apple is not saying, “If you don’t like it, leave”. That’s what Adobe developer blogs (and 37 signals) are implying. In reality a large numbers of iPhone developers are excited by iPhone OS4 and what it promises, and not at all put off by the new policy: in fact, these new policy restrictions might offer devoted iPhone developers a larger opportunity to sell apps in a smaller pool of applicants.Your own behavior disproves your last quote, a Machiavelli inversion: “It’s better to be loved than to be feared.” Let’s give capitalism its due and rephrase that, DHH style: “The only thing that matters in the end, is profit.” So in the end, it’s not about being loved or feared, but just making a better, simpler, more powerful product that people want to buy? I bet Apple would agree with you.
Matt Diamond
on 12 Apr 10David, I was about to make a blog post on point 3, but I’m pleased to see that you covered it better and more succinctly than I would have. Thanks.
@Josh, there are two things wrong with your argument, IMHO. First, the policy as written doesn’t just effect people who use Unity, Adobe, etc. MANY companies develop internal scriptable frameworks that would also be in violation. It’s how companies like Popcap are so nimble and are able to port their games to so many platforms so quickly.
(As for claiming that this gives other companies control over your products, by that same reasoning it’s silly to give Apple control over your products.)
Secondly: exactly how does allowing third-party run-times cede control? How is it different than having programmers use the public APIs on an individual basis?
As David pointed out above, if Apple DOES make a big change, more apps will come into compliance quicker if they are based on a supported framework than if those same programmers are working in an uncoordinated way. Building and using internal layers is how programmers isolate themselves from from bugs and changes in hardware and operating systems. Apple’s policy would remove an important developer technique for managing change.
Warren
on 12 Apr 10The bottom line, as I see it, is that we are all one stroke of a pen away from being out of business, with or without the section 3.3.1, which merely happens to be the most draconian single point, in an entirely draconian system.
This is Apple’s game. You can play by their rules, or they can take all their marbles, and go home. Frankly, I don’t feel like a partner, I feel like a serf. So I find the sharecropper analogy incredibly apt. As for the crowd of “everything Apple does is okay with me” wannabees; This kind of thing will hurt the platform you love, and the Mac, and ultimately will come back to haunt Apple.
If Microsoft was pulling the same kind of crap, can you imagine it? Apple is a big player in just one of the smaller ponds of tech-gadgetry. They have a hit on their hands. They clearly don’t mind if they drive away a few people with 3.3.x provisions. In fact, they pretty much want to reduce the number of “no explanation necessary, we hate you, so f—- off” appstore rejection letters they have to write.
I love my Mac. I hate the iphone 4 sdk. I won’t touch it with a ten foot pole. And I’m not developing for iphone. No way. It’s the only option a sane programmer has, I think.
W
robert
on 12 Apr 10Everyone should take their developer hats off and put on their business hats. These other compilers make it easier to create apps and content for apples competitors. Ars Technica article does a good job of laying it out here:
http://arstechnica.com/apple/news/2010/04/apple-takes-aim-at-adobe-or-android.ars
Len Feldman
on 12 Apr 10Number 2, changing the Developer Agreement in mid-flight, is by far the strongest argument against Apple’s decision. How can developers build a business if their development environments, and even products, can be eliminated with the stroke of a pen? It’s one thing to hold software to user interface and API standards, but something entirely different to tell developers what tools they have to (or can’t) use.
James
on 12 Apr 10Much as I hate to say it, Apple is making even Microsoft look good.
And to be fair, in the 90s Microsoft had kick-ass developer relations, it was one of the reasons Windows became The Platform.
sax
on 12 Apr 10The main issue for me is that this is starting to smell of anti-competitive, anti-trust behavior. Even if legally it’s not there yet, this is a bad precedent.
I love my iPhone. I love working with the sdk. I even love using the iPad. I also despise Flash, and hopes it goes away as a web format as soon as possible. That said, I also hope that Apple gets squashed with some anti-competitive lawsuits pretty soon.
Kyle
on 12 Apr 10@Eduardo
I agree. That was the point I was trying to get across, perhaps not very well.
Joe Berkovitz
on 12 Apr 10Seems to me the biggest issues with Apple’s 3.3.1 clause are not really about wholesale cross-platform environments like Flash, Unity, etc. The real bad news is that Apple is legislating away all kinds of reasonable and lightweight programming approaches that should be perfectly compatible with C, Obj-C and OS 4.0—things like mini-scripting languages or even lex/yacc, for goodness sake. If we need to use blocks to support multitasking, then tell us we need to follow such-and-such a set of multitasking guidelines to get our apps accepted. But don’t give us blanket statements that all “intermediary translations” are out the window with no further information.
Brian Armstrong
on 12 Apr 10“Apple can be viewed as Venezuela “
Great analogy, and dead on.
José GD
on 12 Apr 10Great post. Thanks God you said “Apple is like Venezuela” and not “Apple is like Argentina” :)
Franz
on 12 Apr 10Guys, I am a Flash developer and would have loved to export to iPhone, really. So, believe me when I say I’m peeved at Apple’s decision. And, although I work on mac, it hasn’t always been that way and I am by no means one of those Steve fanboys that swallow anything Apple dishes up for me.
On the other hand, think back to before the iPhone / app store. There was nothing like it. What Apple manages to do so damn well is to combine hard- and software to create a user experience that just works for your average joe. To technically literate people, the arguments used to defend their decisions can be despicable, as they are often not grounded in fact. Example: multitasking. Their marketing engine will make up a million reasons why it would be bad, but the simple truth is that the processor and battery can’t hack it. However, as 99% of users couldn’t give two toots, in terms of business acumen, it makes sense. They would rather piss off the 1% than the 99% that will launch two apps, end up with a flat battery and end up blaming the iPhone.
And, in this vein, not letting Adobe join the party makes sense too. Until they are forced to, they want as much control over their pristine little ecosystem as possible.
The problem is that we think in terms of “justice” or “science” or “open standards”, while Apple is thinking “business” (don’t let that phony HTML5 bs say otherwise).
What I do believe though, is that this is short-term decision that is doing nothing good for their brand value.
Come on guys, let’s get over ourselves, publishing to iPhone would have been a great bonus, but our business lives will go on, and there are numerous great platforms that are becoming more attractive all the time. Let’s just make great stuff to make those platforms more attractive!
Wayne
on 12 Apr 10I’m hearing some interesting rumours about Adobe making Linux into their #2 platform (after Windows) for their development and editing tools as a direct response to Apple’s moves against them.
Jeff Putz
on 12 Apr 10I’m astounded at how the iPhone dev community is so… “Thank you sir may I have another?” First they were quick to forget about the gag order over the SDK, and now they’re OK with this. The wild and uneven app store approval process is overlooked. It’s a crazy world that devs are willing to put up with anything because it’s Apple.
History shows that it shouldn’t work that way. Sony has been notoriously developer unfriendly going back to the original PlayStation. That caught up with them on the PS3, and along with poor market share, has send folks off to stick to the Xbox, Wii and Windows.
I tried to get into Objective-C using Xcode, and coming from a world of managed code (disclaimer: I work for MSFT), found it to be a hundred steps backward. I was thrilled to see MonoTouch, but now it looks like that’s out the window. And frankly, porting Flash even seemed like a better route (and I think the Flash dev tools are substandard as well, but still better than Xcode). Now we can’t do that either. Think about the business case for that… you’ve eliminated millions and millions of .NET and Flash developers (I hear some of you chuckling at “Flash developers” :)), many of whom might have The Best Idea Ever for an iPhone app. But they won’t have that chance, because of this license restriction.
I just don’t buy the reasons Apple gives. If I were Adobe, I’d look into the same portability toward Windows Phone 7, where Microsoft has openly said they’ve got nothing against Flash.
Ken
on 12 Apr 10My guess is that developers will still be just as enthusiastic as ever about developing for the AppStore platform, because Apple’s customer base is unmatched in its track record of paying cash money for Apps. Apple basically has free reign here, so stop whining and get over it.
Rudiger
on 12 Apr 10I’d make the slightly stronger statement that apps made using cross-compilers are generally of a higher quality.
For the most part, the developers who make the effort to use these tools have a legitimate reason to do so.
Sol Irvine
on 12 Apr 10Apple is (ostensibly) putting users above developers. This is pretty much consistent with their corporate philosophy of building a highly-managed ecosystem that favors user experience.
Developing native apps for Mac OS was always a pain because you had to respect the UI guidelines, etc. However, on the Mac platform, power users and power devs were able to circumvent these requirements to their liking because there was no gatekeeper ensuring that only compliant software gets installed.
iOS is a different matter. I think Apple is being overly cautious with iOS in the same way you would be cautious about a seedling plant – it is a delicate time in the lifecycle of this new platform’s ecosystem. Apple has told developers to tread carefully and follow the rules so that the user experience is more tightly controlled. Is it a “lowest common denominator” move? Emphatically, yes, because that’s who Apple needs for this platform.
Do these new requirements together with the App Store gatekeepers ensure quality across the board? Emphatically, no, but they do portend a more manageable workload for the gatekeepers than if every single Flash/.Net app were suddenly cross-compiled and submitted. I guess you might say that Apple is turning down the spigot on app submissions in the hopes of improving the quality of their gatekeeping. I can see the logic in that.
Stephen Parker
on 12 Apr 10As a consumer, I haven’t heard any reasonable or compelling arguments about why 3.3.1 will be bad for me. On the contrary, I’m uniquely aware of the negative experience inherent with ported applications, and native apps that run buttery smooth are exactly the reason why I made the move to Apple so many years ago. This new policy seems directly inline with what I love about the Apple experience, and appears to act (also) as a preventative measure against cross pollination in a shared marketplace.
I’m not so naive as to believe that great applications can’t be written outside of Apple’s framework, but I understand that there are platform “best interests” that must be taken into consideration. As a software support specialist, I filter developer prerogatives to customers on a daily basis, and I understand that the developers are in a unique position to make decisions about the platform that directly relate to customer best interest.
I would point to most of the “rational arguments” I’ve heard on 3.3.1 from developers as being: not in the best interest of the customer, and largely hypocritical.
Martin
on 12 Apr 10I’m thrilled at the idea.
I somewhat disapprove of 3.3.2 (banning custom interpreters like Lua and zCode), but as a developer comfortable working across a range of languages including Objective C, 3.3.1 means that whiny developers who can’t learn ObjC (or find a rational business decision to be morally repugnant to their ‘everything must be open’ mindset) won’t be competing with me on iPhone and iPad apps.
Bigger pool of users, smaller pool of developers.
Win. :)
Enjoy Android hardware inconsistency hell; it’ll probably feel like a comfy shoe if you’ve been doing Windows dev.
Ivo Wetzel
on 12 Apr 10@Jeff Putz Don’t forget Nintendo in the N64 era, they didn’t release the microcode for the GPU which resulted in many bad performing games… also with the Wii, they didn’t release the tools for analyzing the data from the WiiRemote, so you had to write your own stuff to interpret the raw bits…
But anyways, concerning the whole Apple story I must admit that this is one of the better articles that I’ve read on the topic. There’s a lot of anti Apple stuff out there right now, people are crying like crazy. But it’s not their fault in my opinion it’s Apples one.
Why? It’s pretty simple, as many have already mentioned Apple is creating a trust vacuum on their Platform nobody knows if his or her App will make it into the AppStore, it’s like Apple is rolling the dice and only every odd numbers gets through.
How is one supposed to do business in such a kind of atmosphere? For many people it seems that Apple wants complete control over their Platform.
Currently you can still develop in C/C++, but how long till the only choice you get is Objective C? What if Microsoft would change the Windows License to say that you’re only allow to build Programs with VisualStudio? The whole Internet would freak out! Not mentioning the EU getting all crazy about it ;)
But in this case, since it’s Apple… it’s ok? I have to guess that this confirms the theory that it’s less about what you do, but more about how you look. Apple still got the shiny “we’re not Windows/MS” look, you could say that they look like a fine dressed Lady. MS on the other side… well they look more like a stinking Barbarian with his antic club(especially to Apple Fans ;).
So many people get blended by the Lady, but don’t recognize her malicious plans.
Dan
on 12 Apr 10You’re really claiming their tools are basically free?
In order to obtain the tools to use Apple’s framework, I must at a minimum purchase a Mac computer. Assuming I won’t develop on low-end machines, because my time is worth too much to sit around waiting on a Mac Mini to process things, I’m looking at at least a $1200 iMac.
Then you’ve got the $99/year developer fee which is mandatory before you can submit to the app store.
And I assume you’ll want to test your app on an actual device before selling it, so you’re looking at between $100 and $600 for an iPhone (depending on which model and whether you want a contract with AT&T) or at least $500 for an iPad. More, if you want multiple versions of the devices for testing purposes.
So, I can get Apple’s development environment for free, as long as I’m willing to spend $1500+ to get it.
And you want me to put up with Apple’s blatant disregard for app developers on top of that?
You’ll forgive me if I scoff at you.
I would love to get into iPhone and iPad development. I bought an iPhone partly with that purpose in mind. But given Apple’s app store approval shenanigans in the past (and present?) and this new 3.3.1 policy… I’m having a hard time wanting to go out and hand Apple a big sack of cash for the privilege.
foljs
on 13 Apr 10Jeff Puzz:
Yeah, we don’t do bloated, enterprise-y, managed code in this here parts…
Then again, no serious desktop app is written in managed .NET code. No Word, no Excel, no Photoshop, no Cubase, no Pro Tools, no Nero, no iTunes, no Firefox, no Chrome, no uTorrent, no FileZilla, no Dreamweaver, no PowerDVD, no Windows Media Player, no Visio, no…
(well, maybe Paint.NET and some developer tools…)
foljs
on 13 Apr 10@Dan
Whereas, when you program for every other computer platform, you DON’T need to purchase a computer capable of running it, right?
(The rest of your arguments go downhill fast).
mga
on 13 Apr 10I like it that you have answered to a lot of comments. Enriches the post. BTW I am also working on the iPhone and am also a Flash developer but I (fortunately) decided to go the Obj-C way for my first project and was thinking (unfortunately) to go with Unity for my next one. At least for me, it will be a PITA to develop a rather simple 3D game from scratch in Obj-C.
Yes, I am also getting scared with this whole Chavez-style paranoia that Jobs is getting into (very good simile I must say). You definitely DON’T want scared developers.
Martin
on 13 Apr 10@Dan Then don’t. Sell your iPhone on the secondary market, and throw your chest out, and say, ‘I stuck it to the man!’
In the mean time, I’ll scoff at you, because I already have an iPhone and I already have a Mac, because they’re excellent development platforms for both applications and web apps. There’s zero cost to ME to develop, so YOU’RE starting at a disadvantage. Once I’ve built something, if I think it’s good enough, I can pay the $99 to get access to an amazing number of users. (I’ve already paid it; I’m a terribly confident guy.)
Essentially you’re saying that $99/year is too much to pay to get access to a constrained pool of…what, 85 million users?
Scoff. Scoff! :)
Seriously; you’re in the same situation as folks who say, ‘But I’ve got a great idea! I don’t want to WORK hard to make it happen!’ Well…Apple doesn’t owe you, or any of the hordes of crappy Flash programmers out there a darn thing. Nor do they owe me, and the hordes of (admittedly sometimes crappy, but less often than Flash coders) iPhone developers, either.
I’ve played in this game since DOS 3, and the big players are ALWAYS changing the rules. On the web, on consoles, on the desktop, in embedded systems, or in mobile, it’s always the same. Roll with the punches, build great software, and do what you love. Ain’t no other way to be a developer.
If the moral or financial load of working on the iPhone OS is unbearable…DON’T!
James
on 13 Apr 10Didn’t you once have a big “Fck you” slide because you believed Rails was your baby? That you decided what Rails provided or didn’t provide? Well Apple’s 3.3.1 section is that “Fck you” you so strongly defend. Don’t like it, move a long.
Lee H
on 13 Apr 10DHH I love ya man! RoR was a great innovation to web development. I respect your thinking and in this case I can respect and understand some of your points. However, overall I just can’t agree. It’s more valuable to be in touch with the hardware and developing with CocoaTouch. They are great frameworks too. I strongly feel developers who want to leverage the iPhone platform should be well-versed in using these Apis, managing their memory, etc. Especially in the ace of the upcoming multitasking which works really nicely.
@others Objective-C has it’s ups and downs but I’ve really grown to like it. Hating on the square brackets seems more like a reaction to the unfamiliar. I did it when I started and now they don’t bother me at all. Memory management is something you can pick up pretty quickly.
Kazu
on 13 Apr 10Very nice discussion. It is all about tradeoffs, and it is clear that Apples priorities are based primarily on assuring the best UE to the custommers, while controlling security, privacy and reliability, as much as Apple can handle, at least until they find the best solution. You can see this in many of the limitations imposed in early releases and improved with really nice solutions later. Multitasking is just one example. I would not say that this aproach is the best for the developers and the customers, but I can admit as an IT professional that this helps Apple to save millions of $ in operation costs, while strategically avoiding clear threats to its business.
For those programers that helped iPhone to grow to what it is today, it feels like a protection to their bvsiness and an incentive to stay loyal. They are free to crosscompile their iPhone apps to the various and “inconsistent Android hardware” as mentioned by Martin, that really need a layer to make it compatible with the several UIs and interfaces provided to various HWs and the various versions of Android OS.
Arby
on 13 Apr 10What Jobs may not realize is, he just gave people a reason to jailbreak their iphones and ipads. Developers can use Flash CS5 and just sell directly to the customer.
chris owen
on 13 Apr 10I don’t get this move by Apple. In MOST cases, the only reason apple mac users purchase one in the first place is to run Adobe products. I’m sure they would take the biggest hit if Adobe products were not available on Apple hardware
Peter Spicer-Wensley
on 13 Apr 10Adobe really should have built a tool that creates Xcode compliant C (C# or Obj-C) and packages the flash app up into a nice Cocoa compliant NATIVE framework. Then there SHOULD be no issue. Yes, it would be harder, yes it would be a bit clumsy, but IT WOULD PLAY NICE AND BE COMPLIANT. Apple doesn’t want slow buggy code flash on their devices. Adobe and Apple really should sit down and work this out. An alternative for many flash developers would be to export to web app and create CSS, HTML5 and JS code ready to be rolled up and run again by the XCode framework. The result would be lean, mean apps that would meets the needs of many developers (myself included).
I think most people want Apple and Adobe (and Google and MS) to kiss and make-up for the sake of their developers and CUSTOMERS! Keep your eyes on the prize guys!
My 25c worth PeterSW
BradM
on 13 Apr 10It would be interesting to hear everyone’s thoughts if Apple came out with this type of licensing during 1.0 ? Or was it that way to begin with?
Didn’t you have to use Obj-C and XCode back then? Didn’t seem to bother anyone at the time. We all screamed, “Hallelujah” !
Daniel Carvalho
on 13 Apr 10Peter Spicer-Wensley said: “An alternative for many flash developers would be to export to web app and create CSS , HTML5 and JS code ready to be rolled up and run again by the XCode framework.”
You’re assuming HTML5, CSS and JS is somehow equal to Flash. It is not. There is still a long way to go before HTML5 provides developers with the same level of tools and functionality Flash does.
“The result would be lean, mean apps that would meets the needs of many developers (myself included).”
The result would be the output equal to that of the developers skill. Developers can write bad, slow code in any language.
Maybe in a world where code fairies suddenly manifest and bless the fingers of all developers that don’t use Flash, this would be the case.
CiRE
on 13 Apr 10Unfortunately, Arby, Adobe can’t rely on people to do that. Too few people are going to jail-break their devices for Adobe to base their business decisions on the hope that more people would if it would afford them flash.
In fact, I’m guessing that you already can run flash on a jail-broken iOS (isn’t that how people demoed the flash capabilities?).
There will always be those who opt for homebrew over restrictions, but they’re too few and far between (not to mention, too dangerous – ask yourself if Apple wouldn’t try to sue Adobe if Adobe began encouraging people to violate their EULAs) for Adobe to market towards.
Shank
on 13 Apr 10As an rpg programmer, I’m frustrated by Apple’s decision.
I’m trying to figure out whether I can pull off my usual deep and rich RPGs without a higher level scripting language. It sounds like Apple isn’t even aware just how many games are written like this. It’s not true that purely native apps are always better and “butter smooth”. My games will suffer in pure Objective C.
On the other hand, Apple doesn’t seem to be banning any of the numerous games on the bestselling lists that are already in violation of their license. But do I take a chance that they’ll let me squeak in as well? Will they start enforcing this for 4.0?
It’s just a sucky situation.
Peter Armstrong
on 13 Apr 10Hi David,
I’d just like to say thanks very much for posting this. It’s refreshing to see someone who (like myself) likes Apple products very much being very disappointed by this decision of Apple. (It’s a very slippery slope to Apple being the Big Brother company they were trying to smash in their 1984 ad, if they aren’t already there with this move. If Microsoft had created the iPhone and then tried this, it would have been met with universal condemnation and calls for antitrust action.)
While Apple has been getting more closed lately with iPhone, I had held out hope for developing Flash platform based apps that would port in a fairly straightforward way from iPhone to Android (using Adobe’s compiler), even if they wouldn’t run the same on both platforms.
Also, the idea that iPhone users need to be somehow protected from playing Flash games like Desktop Tower Defense (without them being rewritten as iPhone apps) is silly. Users are smarter than this.
My first computer was a Mac Plus; my current one is a MacBook Pro. The company I founded has bought several Macs, as have I for my family. Until this decision is reversed, however, I can’t support Apple any more…
Peter Armstrong
JC
on 13 Apr 10Someday you’ll have schools and garbage collectors in them thar parts. The 80’s called and want their c-compiler back.
Turbo Tax and Quickbooks are serious desktop apps that are on based on .Net.
weaties
on 13 Apr 10Something that I haven’t seen explained in the context of all of this…
Does cs5 compile down into an iphone OS executable, or does it create an xcode project (objective c, nib’s etc) that is then built using xcode and delivered.
If it did that, would that still be in violation of the licensing? It would seem no, since the final application was built with xcode, using the languages specified.
Kishor Gurtu
on 13 Apr 10It’s his platform, not yours – http://gilesbowkett.blogspot.com/2010/04/its-his-platform-not-yours.html
must read.
Miguel Marcos
on 13 Apr 10Good, cogent post!
Mike
on 13 Apr 10Steve Jobs doesn’t have a technical/developer/geeky background. He is more of an artistic designer. So no wonder Apple came up with such a clause. This decision on cross compiler ban only has short-term benefits(of killing flash). Cross compiled apps are not neccesarily worse than natively coded apps. It is a wrong notion.
Sandeep Gupta
on 13 Apr 10Awesome read. Nice and very articulate.
defsdoor
on 13 Apr 10Surely the bigger concern is that you have a hardware device/computer that you cannot install your own applications/software on without Apple’s nod.
This particular issue is just a subset of the bigger problem.
Imagine where we would be in computing today if all previous architectures had the same policy…
Thank heavens for the hacking community.
zero credibility
on 13 Apr 10“I’d say Adobe would be in more hot water and given all the hoopla, I think they’re going to be extra diligent to not step over the public/private API lines.”
I’d say this is where your argument falls down. If it wasn’t for the piece of shit flash on my mac that adobe hasn’t invested in, or the fact that security holes made public were still not fixed 18 months later I would agree with you, but how can you say extra diligent and adobe in the same sentence ?
Jim Jeffers
on 13 Apr 10Honestly… this is childish and silly. No I’m serious. This whole debate is childish.
1. Stop victimizing Adobe. As if they are some benevolent company that actually cares. Just as Apple wants you to use their platform – Adobe wants you to use Flash. If you look at how Adobe’s products are being developed. As a software designer / creative professional you basically get a big fuck you from Adobe if you don’t want to build your applications with Cold Fusion or Flash. 2. All of these intermediate layers are expensive tools that cost us money. Whereas the best platform for developing these types of applications is completely free with the operating system. 3. The Microsoft analogy is not a true parallel. They don’t take care of their developers. They charge them up the ass. Visual studio isn’t free! It’s expensive! 4. iPhone / iPad apps are all small development projects. The iPhone will never become the most ubiquitous platform. There’s no way you are locked into the Apple platform from all of this. The only issue here is that you need to get off your ass objective-C. If you don’t like it then ignore the 85 million customers you can be building for on a well managed and predictable platform. Good luck doing that on Android or windows mobile. Why even bother.. just build a web app with jQtouch.
Yes it’s political. But all of these companies have their own vested interests. Get real. And as a developer we can choose how we want to deploy to these platforms via the web without even bothering. So if you don’t like it don’t do it. But don’t start whining that it’s not fair. Give me a break.
We should be getting stuff done not whining about business rivalries / politics.
Fred
on 13 Apr 10I’m not an iphone owner, although we do have two and a touch in the family, because right now I don’t really need or want a smartphone, just a phone that I can talk on. However I suppose someday down the pike I might feel I want some sort of smartphone. Based on what I’ve seen of the iphones the family members use and also what I’ve seen of Apple’s philosophy all the way back to the 90’s I’ll never buy an Apple product. This is just one more example of Apple’s big brother, we know best, our way or the highway attitude. Additionally the only app I’ve seen for the iphone which is anything other than fluff is Skype, which they won’t allow on 3G. I was looking at various smartphone options for a friend and frankly I think if I was buying one today I’d probably get the Nokia N900. Skype out of the box, proper browser, proper multitasking, Nokia owns its own mapmaker for GPS functions, open source OS and apps. No brainer as far as I’m concerned. I’m sure there will always be somewhere between 5% to 10% Apple fanatics who will keep them able to churn out something but I won’t be buying it, whatever it is and however its apps are built.
defsdoor
on 13 Apr 10Fred – I have a Nokia N900 and it blows the iPhone out of the water in everything apart from the touch screen.
m
on 13 Apr 10“We should be getting stuff done not whining about business rivalries / politics”
You’re right. But the problem is if you are focusing on getting things done, using whatever tools you choose to use, and all of a sudden some political rivalry from up on high leaves you as collateral damage, not allowing you to get that thing done that you were already working on, is that not worth criticism and debate?
You’re right. If you don’t like it, don’t do it. But it’s kind of hard to make that decision when the things you don’t like all of a sudden appear mid-stream in your development process, fucking you over.
Cam
on 13 Apr 10@Jim
The Express editions are awesome, and free. Also, you are free to develop windows apps using anything else you like. Even objective-C.Also, the thing about everybody calling flash developers “crappy” smacks of sour grapes. Flash makes it easy to do some pretty awesome things, and Objective-C makes it hard to do simple things.
A K
on 13 Apr 10You are glossing over the other side. I think there is a very legitimate reason for Apple to add these restrictions.
I’ve used converted/generated code before and it is never good. Generated code is bloated, slow and just doesn’t have the quality of code written in the native language.
I support Apple’s decision.
A K
on 13 Apr 10Also, if they allow compiled flash code, the number of apps submitted for approval will go up by several orders of magnitude. How do you control quality once that happens? And the thing that separates the apple store from the google app store is quality.
Sure there are crappy apps on the app store too, but the average app on the app store is much better.
Not a developer
on 13 Apr 10Apple store belong to Apple. Apple sets the rules. That’s all. You can complain as much as you want but I doubt it will have much effect.
michael Connors
on 13 Apr 10Finally someone points out the obvious. Many developers who have been developing or even planning to develop for iphone/ipad on something that wasn’t kosher is going to strongly consider android instead. So it doesn’t matter if you agree with apple or not. Go to best buy and ask for the “mac games section”. It doesn’t exist.
Dave
on 13 Apr 10You’ve probably used it many times and never noticed, at least if you play games on your iPhone. Monotouch/Unity apps are as good or better than writing raw Objective C because they increase productivity and let you spend your time on making a good app.
Jeff Putz
on 13 Apr 10Yeah, that’s not ignorant or anything. Aside from the fact that the absence of an application does not indicate a lack of capability, why would you throw away an entire code base of an established product like Word or Photoshop and rewrite it? Do you even develop software? If you do, I wouldn’t want you making those kinds of decisions.
And yes, Paint.NET does much of what Photoshop does, in managed code. Exchange 2010 is mostly managed code, and in terms of the responsibility software has, it has to do a lot more than any desktop app. To suggest it’s not capable is baseless. It reminds me of film and video production, where there are people who still think the size of your camera has something to do with the quality of your pictures.
Regardless, that nonsense distracts from the real issue: That there are plenty of capable frameworks that could be used to make great iPhone software, and that process is being stopped. That’s stupid. Plenty of awful, buggy and crappy software is being developed in the approved stuff.
Paul
on 13 Apr 10When I was using Microsoft tools (1993-2006) I found that their commitment to enabling the developer was immense. Visual Studio, MSDN, multiple languages, hot-fixes. Never once did I come up against something that Microsoft told me I couldn’t do. Admittedly I wasn’t coding in assembler or low level C, but I could do whatever the hell I liked. Concept, code and delivery were all under my direct control. Windows was built on Apps, just like the iPhone is, and they were not crappy apps.
Right now we have a huge new gaming revolution being enabled by a software platform (Flash) built into a web platform (Facebook) built using a bunch of standards (HTML/JavaScript etc). Standing on the shoulders of giants enabled Zynga to develop the world’s largest game in 6 weeks. (from start to first release).
Note the lack of conventional ‘giants’ in the Zynga model: no Microsoft, no Google, no EA, no Sony. That’s right, no multi-billion dollar company ushered in the next revolution in entertainment. And now, by putting itself above the developers that enabled the iPhone/Pad/Touch to be all it could be, Apple has joined them in their lack of vision.
But what else could we expect from a hardware company?
Microsoft and Google have been given a second chance to grab the developer mind-share. I hope they take it.
Richard Kimber
on 13 Apr 10Generally a really great post and I hope someone at Apple is listening.
Getting a bit bored of Microsoft being dragged into the mix though. Their work on open source technologies and their interaction with the developer community at large is outstanding and to be commended.
Rich
Chad
on 13 Apr 10Very interesting. I’m a hardware engineer and a business owner, and I definitely didn’t have the backlash reaction that you developers did. Hardware guys are used to designing to whatever specifications are required at the time (and they completely change every few years—that’s the norm).
However, your point #5 is HUGE. Love > Fear, and people eventually hate those they fear. This is Microsoft’s downfall and was one of Apple’s saving graces.
Like others here, I believe Apple just succeeded in transforming to a Microsoft, which will allow Google/Android to become the next Apple.
Sad, but more proof that corporations exist to make money, not to make the world a better place. Google, too, is on that path…
Noah
on 13 Apr 10Great article, and all valid points. I recently purchased the Nexus One and I couldn’t be happier. While I’m not new to programming, I have only scratched the surface with developing iPhone and Android apps but the differences have been noticeable.
Something as essential as adding an event to the calendar is a perfect example: Apple says you’re not allowed, Android wants you to use a simple URI to pass the data in. Seems like a basic ability that a PDA should have.
Tom Hermans
on 13 Apr 10Lose the apps ! OPEN web ftw !
Android lets users and developers do their thing, they don’t need keep everyone on a leash.
The comparison with Microsoft is not true. Apple is much worse!
Dan
on 13 Apr 10@Martin:
Wow guys. I wasn’t saying “I want my stuff to work with zero effort.” I was just saying it’s really hard for me to see what there is for me to gain by moving over to Apple’s platform for app development – which is ostensibly what Apple wants – when they:
- sell their computers at a premium (this morning I compared a Dell laptop to a slightly-lower-spec new model MacBook Pro, and the Dell was $600 cheaper) - they charge just for the privilege of asking permission to sell my app on their store - and they’re obviously hostile to cross-platform development.
That’s sort of my point. It may be “free” for some of you to develop iPhone OS apps, because you already have Macs. That doesn’t mean I’m stupid for raising the high cost of purchasing a Mac as a reason I’m hesitant to do it.
@foljs:Way to miss the point. Suppose I have no computer. Further suppose I am choosing between Android development and iPhone development:
1) A $750 custom-built desktop running Linux is more than sufficient to do app development for Android, you don’t have to pay Google to sell Android apps, and you’re free to use multi-platform frameworks, in-app scripting, etc.
2) The only way to get a sub-$800 Mac is to get a Mac Mini, and you’re deluding yourself if you think those can handle iPhone app development. So at a minimum, you’re going to want the $1200 base iMac. Then you have to pay $99 before you can submit your app to the fickle app store approvers.
So at the cost of $500 extra, plus giving up cross-platform development and locking myself into Apple’s ecosystem, I can do iPhone apps instead.
Now, further suppose that I already have the Linux machine.
You really don’t see why someone might be hesitant to throw down that much money for Apple hardware when Apple is now openly hostile to cross-platform development?
Apparently I’m not allowed to point that out, though, without being branded a whiner:
So, Martin, you’re telling me to not do it, meanwhile scoffing at me for that very course of action? Awesome. And Apple fans wonder why some of us think you have superiority complexes.
You guys are welcome to develop iPhone apps. I won’t tell you you shouldn’t. Just don’t pretend Apple can do no wrong.
In case I haven’t been clear: I had every intention of buying both an iMac and an iPad for the purposes of iPad and iPhone development. I was willing to put up with their fickle app store approval process, I was willing to swallow the cost of the hardware, but if Apple is going to be hostile to cross-platform frameworks I see no reason to do any of that. This has nothing to do with Flash – I want to see Flash die as much as any of you – but if Flash has to survive for cross-platform frameworks to be permissible on the iPhone OS, then so be it.
Will Emerson
on 13 Apr 10Great points, David! Good to see a mostly rational discussion.
Ultimately, you have to be able to trust your partners, whether business or personal. If Apple had set this policy from the beginning, it would have been clear what the rules were. Now developers have invested time and money to build applications which will be rejected. They will go elsewhere and not quietly. It just makes it clear that these large corporations do not have the peoples’ interests in mind. They are sharks wanting to be the last shark in the tank. Let them chew each other up and stay out of their way.
Back to the technical. It seems like Apple should stop letting their lawyers do their work for them. If they are intent on this course, make their compiler filter out bad code and fishy frameworks. If it passes the compiler, it’s in. That would be more honest than their one stinky paragraph.
T
on 13 Apr 10As long as Flash dies who cares? Someone show me something decent about Flash? It should be banned from the web fullstop. The Internet is static, its not a movie, let alone one that I HAVE TO DOWNLOAD to watch – isn’t that facist?
Martin
on 13 Apr 10You’re so damn right! Thank you for that! And yes Apple should read this! And I hope that there already is a group in facebook about it!
Brandon Cox
on 14 Apr 10Language tangent because I know 37 likes, and earns off of, that:
Loving the “cream puffs” used as a simile for a good app. Is this a Danish thing? I don’t think of basecamp as a “cream puff”. Maybe a frosted scone. Or raisin bread. The connotation usually implies something light, not serious, and without substance. A “baked goods tech analogy summit” seems to be in order at 37signals. Not in San Diego. :)
Hamranhansenhansen
on 14 Apr 10iPhone OS is not Apple’s first time at the dance. Many Mac/Windows apps had only the common features, enabling Microsoft to dictate the speed of the app platform like they slowed down the Web over the past decade.
I would rather Apple make things worse for developers rather than users.
Flash-built iPhone apps are prototypes. Get a C developer to make a real app if you want to sell it. If you don’t like that, export your Flash Web app as a standard HTML5 Web app and run on iPhone without restriction. No, Adobe’s Web app tool does not support standard Web apps yet.
But all you really need to understand is that Flash CS5 makes iPhone OS v3 apps and it is shipping with only weeks left to go in iPhone OS v3. Apple shipped their v4 tools before Adobe shipped their v3. iPhone developers are redoing their apps for v4 right now, while Flash developers are getting ready to build and submit a wave of v3 apps. Flash is simply way too slow to play this game. Flash is on an 18-24 month development cycle, while iPhone OS is on a 12 month cycle. Having all the Flash-built apps die with each OS release is not practical.
Arguments for the traditional way also suck as much as the traditional way sucked. I don’t want a repeat of Mac/Windows and I don’t want a repeat of the IE6/Flash Web. iPhone apps are doing just fine without Adobe, thanks. Both C and JavaScript are cross-platform. HTML5 is cross-platform and standardized. iPhone apps are the Rolls Royce of native apps.
Let’s hope Flash CS6 has HTML5 export so Adobe’s users aren’t left stranded by Adobe anymore. Time for Adobe to get into the current decade. Time for Adobe PR to never say “Apple” again. Time for Adobe to grow up, blame themselves, take responsibility for their own problems, stop ignoring standards, and build their way out of their current situation.
Jeff Putz
on 14 Apr 10HTML5 is not a standard. It likely won’t be for many years.
I would argue, however, that Flash is a standard, since 99% of people have it, and it works the same on every machine. The religious zealotry around this is completely irrational. Just because a company owns something like Flash doesn’t make it bad or evil. The Internet would be very different, and not nearly as interesting, without Flash. In fact, much of what you enjoy would never be paid for because all of the ads are Flash. This is why turning this into some religious doctrine is so asinine… it just isn’t that simple.
carlivar
on 14 Apr 10Unfortunately we only seem to get “white box” DHH/author/37signals replies for first-day comments.
WOW
on 14 Apr 10I have never seen a group that has their head stuck up their ass more than this one – how many times do you have to be smacked in the face before it hurts? At least some posters are seeing this for what it is, but those that say “no problem with me” are so far gone in the Apple world, there is no hope for you if you can’t see what’s right in front of you.
Martin
on 14 Apr 10@Jeff Putz You can’t legitimately claim in one breath that HTML5 isn’t going to be a standard for years (it IS supported by the iPhone browser, which is what’s relevant for this discussion!), and in the next breath claim that Flash is. It’d be like calling Windows a standard, but denigrating POSIX. You’re mixing meanings of ‘standard’ (officially adopted specification vs. common practice) either because you’re actually confused about the meanings, or in an attempt to mislead.
[Flash vs. HTML5 rant…skip if you’ve heard it before…]
Flash is not a standard; it is a proprietary, and wholly owned, private technology. It is not relevant to this rant, but I am compelled to note that it is a technology which crashes REGULARLY. I can’t recall the last time Javascript crashed a browser of mine. Flash has never been stable in my experience.
HTML5 is already more of an official standard than Flash will ever be; there are multiple parties implementing it independently and interoperably from a common specification. You can argue ‘til you’re blue about whether it’ll be a final spec from the W3C in the next few years, but IMO the W3C doesn’t put its imprimatur on something until it’s already obsolete. (Thus the need for the creation of the WHATWG, for whom HTML5 is in Last Call.)
HTML5 is already sufficient a standard specification (and sufficiently commonly supported) to get rid of Flash for. As a professional web developer in my day job, we’re explicitly building for a Flash-less web. Sure, we degrade to Flash components for those users who degrade themselves by running a browser that can’t handle the simplest HTML5, but that is also changing, happily.
We are far afield now, but it bothers me that folks dismiss HTML5 which is working well towards an official standards process, while elevating Flash which has zero intention of doing so.
[/rant]
As for your ads comment, I’ll point out that the #1 ad source on the web is Google, and their ads aren’t Flash. I.e. no punch-the-monkey gobshite.
I still maintain that section 3.3.2 is annoying (and probably something they’ll grant exceptions for on a regular basis), but 3.3.1 is a perfectly legitimate business decision, and one I don’t feel is wrong.
For @Dan, If you are claiming that $99/year is an unbearable price to pay for access to 85 million customers, then yes, I both scoff (your choice of words, and I like it!) AND tell you that if it’s unbearable to you, that you shouldn’t do it. It’s easy for me to both think something absurd, and tell someone, “If you believe that absurd thing, than go ahead and follow your belief to its clear conclusion.” I don’t need you to believe as I do; I just am really tired of hearing folks like you claiming I need to believe like YOU do.
Seriously, if the price or moral high ground is that much of an issue go write Android software. It’ll make you feel better about yourself. I think it’s a silly choice (thus the scoffing!) but don’t let anyone stop you from following your heart/pocketbook.
Roll with the punches, build great software, and do what you love.
G.Irish
on 14 Apr 10@Martin You are correct that Flash is not a standard. It is widely supported but it is not a standard the way HTML5 is.
However, to say that Flash can be totally dumped in favor of HTML5 is premature at this point. There are things that are not easily done in HTML5 that Flash can do, the majority of users on the web do not have HTML5 browsers, and there’s no one universal video codec that HTML5 will use.
Apple’s 3.3.1 is heavy-handed and wrong-headed for a multitude of reasons, even if you take Flash completely out of the argument.
Another Anonymous Coward
on 14 Apr 10I wish Venezuela was more like Apple
Jeff Putz
on 14 Apr 10Your rant is irrelevant. That a company owns something, using scary words like “proprietary,” doesn’t make it any less standard. It works the same on every platform that supports it, which by definition is standardization. We don’t get that today with HTML, CSS and Javascript today, and those are “standards” accepted by bodies that declare standards.
As for Google ads, you should run some. Those running on my sites are almost entirely Flash. They pay more than the text ads, and ripple up to the top. I get huge deposits in my bank account every month from them.
Shadowlayer
on 14 Apr 10Apple has become the 90s Microsoft, there’s no doubt about that anymore…
To iphone devs: do yourselves a favor and migrate to Android or WebOS, supporting open platforms is something that pays up with time, by forcing corporations to make fair deals and not impossing their benefits over the rest.
Keep “working” for apple and they’ll will “fire” you whenever they want.
steve cheney
on 14 Apr 10Here’s my take on Apple’s move to XCode – this is strategic stuff, Apple is doing this to help it be hardware-agnostic. A lot of people are missing this entirely as they focus on Flash
The Genius in Apple’s Vertical Platform
http://stevecheney.posterous.com/the-genius-in-apples-vertical-platform
Julien (Zavie) Guertault
on 14 Apr 10I completely agree with you.
You know what, the news came on Friday. It got me pretty upset during all the weekend, and I finally made a decision: on Monday I resigned from the company I’m currently working in: an iPhone application editor. Yes, really. Talk about emotions!
To be honest this wasn’t the only reason, and I had been thinking of leaving for a couple of weeks now. But that’s the very reason that made me eventually fire up the resignation letter: “I just can’t continue working on a device with such a policy. It’s in complete opposition with what I think programming should be”.
I wonder if I wouldn’t have done so anyway without my other personal reasons. I think so, but I cannot really know.
Well, I now have three months left before I can leave. And the same amount of time to find another job. :)
Thomas D
on 15 Apr 10Regarding 3), detecting private APIs is quite easy (just look at what symbols the application uses). The problem is not the use of Private APIs by Flash but the “non-use” of standard APIs (UI elements &c.) and the non-adoption of new features (if Flash apps have to run on iPhone and Android then they’ll be worse on each platform because they won’t be able to leverage the particular strengths of each).
Regarding 4) I think it’s just that reviewers are human and make mistakes. There’s no “selective enforcement”... Have you heard about any game with Lua being rejected? I think this rule (and the new 3.3.1 one) is just legalese to prevent certain uses that Apple doesn’t like (namely non-native apps) but can’t be put into words easily in a license agreement.
Dan
on 15 Apr 10My problem is that you have to pay $99 before you can even find out whether you’ll actually get access to those customers. It is entirely possible to pay the fee and have your app rejected, even if you thought you were playing by the rules, in which case you’ve wasted not just $99 but all the time you spent developing.
If you were paying $99 for guaranteed access, I’d have no complaint. As it is, you have to pay Apple, and then they can arbitrarily decide whether or not to approve your app – and if you don’t think it’s ever arbitrary, you haven’t been paying attention to the double-standards and inconsistent decisions that make the app store approval process so annoying.
That said, my complaint is not just the $99 fee, it’s the overall cost of entry as I’ve stated. Apple’s interest is obviously locking in both its customers and its developers to its platforms.
I own an iPhone, but if I want to write an app for it, I’m going to have to spend a thousand dollars on a Mac for the privilege—and even then I’ll still have to deal with Apple’s anti-developer attitude.
Scoff at that if you want, but I for one value the freedom of a developer to choose his tools.
Is it worth my time and money to put up with that, when I could instead use one of the frameworks banned from the iPhone to develop for both Blackberry and Android instead, which overall gets me access to a larger market?
And on top of that, I already own a machine compatible with development on those platforms, I get to use any app development framework I choose, and I don’t have to pay anyone to get permission to distribute my apps?
How exactly is the iPhone development situation superior to that?
So now you’re saying quite clearly that you think it’s silly for me to write for non-iPhone platforms despite the high financial cost of entry and Apple’s restrictions on developers.
Do tell, what’s so attractive about iPhone development that, in your mind, outweighs those problems?
cpawl
on 16 Apr 10Name ONE just ONE Java app or Flash app that is “mac-like” more specifically “iphone – ipad” like. Adobe took two years after the Intel machines to update photoshop – 2 freakin years! Imagine thousands of apps and thousands of people using these dated compilers and Apple having to wait or make excuses for Adobe and developers being “not ready” when Apple is going to release an update.
The fact of the matter is Apple should just buy Adobe so they would shut up already.
Hung Le
on 16 Apr 10Apple ’s roadmap is the same console game developement . If you want your games to be published to Wii system (retail game, Wii Wave title), PS3 (reteail game, PSN), Xbox 360 (retail game, Xbox Live Arcade) , you must pay fees to console game creator (Nintendo, Sony, Microsoft), and you must be certificated by them, your games must be certificated . Then , your game will be published, otherwise they rejected the game. Apple is the same, they’re moving to the path which console game is going
Brent
on 16 Apr 10Side note: “iOS” is a bad short form for iPhone OS, since IOS is the name of Cisco’s operating system for routers and switches, etc..
This discussion is closed.