Steve Jobs Weighs In On iPhone Programming Language Mandate
Dotnaught writes "Greg Slepak, founder of software company Tao Effect, wrote Apple CEO Steve Jobs to complain about Apple's mandate that iPhone applications be originally written in C/C++/Objective-C. Job's response was to endorse a post by John Gruber on the Daring Fireball blog. Jobs called it 'very insightful,' suggesting Gruber's prediction that third-party iPhone development tools are out might be right. Jobs sent a second reply that also doesn't bode well for third-party iPhone development tools: 'We've been there before, and intermediate layers between the platform and the developer ultimately produces sub-standard apps and hinders the progress of the platform.'"
By restricting the use of abstraction layers, they want to make devs choose between writing their app for the iPhone or for Android, it would seem (or, of course, writing it twice).
Of course, the real choice is "write for iPhone, or write for every other platform". I hope developers are bright enough to see where this is going.
# cat
Damn, my RAM is full of llamas.
Compile to C is banned. The policy is not a technical requirement, it's a contract. You can't get access to the Apple App Store without agreeing not to use intermediate layers. If your code is created in something other than Objective C, C or C++, you're in violation of that agreement, even if at some point all of it is represented in C code. Steve Jobs is a benevolent dictator and he has just extended his reach into your toolkit. (Captcha: soviet, how fitting)
Speaking as someone who has to deal with 64 bit flash on linux and has had to deal with all manner of MS enforced formats on the the mac, I completely and utterly agree with this part. Apps running using native platform tools do fairly well, cross-platform apps suck a lot of the time. You windows users have seen this too -- itunes, quicktime and safari are dogs on windows because they had to import all their own libraries. On Apple machines these are lighweight apps that are fast. On windows it just doesn't work as well. And let's face it, as nice as open software is, working well is what sells units, ideology is secondary.
Gentlemen! You can't fight in here, this is the war room!
intermediate layers between the platform and the developer ultimately produces sub-standard apps
Right. That's why all those games built with engines and level editors and scripting tools always suck. C'mon apple. You have to allow unity. You can't want games but require everyone to make them from scratch.
Afraid that cool unity game will show up on pc, wii, xbox, android, Mac, myspace? It'll be just like the 90's when the pc was gaming heaven and mac users got to play marathon for 11 years.
Keep in mind that actual Flash apps written by CS5 beta testers have been approved in Apple's app store in the past as well as many games written with Unity3D, so it's not like performance is a problem.
Since every app is checked against objective (and subjective) criterias, it would have been OK to just reject poorly written applications.
Forcing me to use a specific programming language is insane. Imagine Microsoft demanding all windows apps to be written only in C# and compiled only with Visual Studio. It would be an outrage. But hey, it's Steve Jobs, the Big Brother himself, and he knows what's best for us, right?
Also, the timing was devious - on Friday, just before the Monday's official release of Adobe's CS5, effectively giving them no time to react. I was never a big fan of Adobe (especially before the Macromedia acquisition - their corporate culture started to change afterwards) but this is simply Steve Jobs being a big dick.
Finally, I know that many /.-ers are against Flash. Keep in mind however that this move goes well beyond Flash, affecting other tools and frameworks. If successful, this move will lead to more and more closed ecosystems (from other vendors as well). Today's Apple makes Microsoft look like saints.
Don't Blink. Blink and you're dead. Don't turn your back. Don't look away. And don't Blink. Good Luck.
I don't understand why they keep sticking those damn intermediate layers in there. Real programmers write write in assembly language. If you want real performance that is what you need to be doing instead of using foofy object-oriented programming tools and junk like that. In my experience those other things just add more bugs and no real value. If you want information an old-fashioned text-only display can provide it. Remove all the layers please.
Coding Blog
From http://theflashblog.com/?p=1641
Its all fun and games until someone loses an eye... then its just fun.
We’ve been there before, and intermediate layers between the platform and the developer ultimately produces sub-standard apps and hinders the progress of the platform.” -- Apple
Is Apple actually calling iTunes for Windows for a sub-standard app? That perhaps should be banned from the platform? Apple themselves are using non-native API intermediate layers such as CoreFoundation and CoreGraphics in their implementation of iTunes for Windows.
Except that Apple ships a highly optimised H.264 CODEC as part of OS X. If they used that, instead of shipping their own, then it would be much faster. If you grab an H.264 movie and play it in QuickTime on a Mac, the CPU load is under half that of playing it in Flash. It's not that Apple doesn't provide APIs for doing it, it's that Apple doesn't provide APIs for doing it the way Adobe wants to do it, which is an entirely different complaint.
I am TheRaven on Soylent News
Basically, hogwash. Having one language and one tool chain leads to fewer methods of being able to solve problems, and reduces the utility of your computer system. Now instead of being able to use a .5mm slot head screwdriver, all I have a big ol' sledge hammer. There really is no "computer science" basis for Apple's decision. There is a marketing reason or two, though:
1. Eliminate cross platform development tools and lock in developers and users to your platform.
2. Ensure you can always put out better stuff than independent software vendors by pulling a Microsoft and adding new (undocumented or unreleased) libraries to the OS and then using the libraries to produce more functional, better integrated software than ISVs can.
3. It's easy to kill off competition or those doing things you don't like with the platform by introducing incompatibilities in system libraries.
The rest of your post, while interesting is basically speculating that Apple will create some whiz-bang complier that will solve all of the remaining big problems in computer science. I wish Apple luck, and I hope they solve at least two or three of the big challenges.
A note on languages: Objective-C does not make for instant parallelism as you still have to fix the giant game of whack-a-mole that goes on with shared memory and have a more effective way of communication between processes/threads/whatever you want to call 'em. Providing some metadata might help, but it's no magic bullet.
-- $G
Does a single thing you said explain why they won't allow frameworks which compile to Objective-C?
That's where I'm having trouble. I can see a technical reason to force people to use a single language, or at least a single runtime representation, in the same way that, say, the new Windows Mobile forces you to use .NET. I don't see any technical reason for them to care what language you originally use to produce it.
Don't thank God, thank a doctor!
Having one language, so long as it's turing-complete, shouldn't give you fewer methods to solve a problem. Now, if you're locked into a single language it would probably make it difficult to find a pre-existing library that might assist you.
I agree that there's no computer science basis for Apple's decision, but then again, Apple doesn't make their decisions based on computer science, they base them on business.
Learn something new.
Now what might be the resource use case improvement here? I'll start the speculation with this thought and leave it to others to fill in more.
No offence, but this does smack being the thin end of a typical wedge of rationalisation that ends up justifying and "explaining" Apple's behaviour in the absense of any explanation from them.
While I'm not accusing you (specifically) of being a fanboy necessarily, Apple's secretive nature generally benefits them when combined with their rather partisan fanbase. Say nothing concrete that can be seized upon, and let people speculate, rationalise and justify your marketing decisions.
It's up to Apple to explain- or not- the reasoning behind what they do; if the latter, that's their choice, but we're not obliged to give them the benefit of the doubt. Sorry, but I don't believe the reasons behind the decision were technical, and I'm not going to buy a third-party's speculation masquerading as explanation.
"Slashdot - News and Chat Sites Deviant". (Click "homepage" link above for details).