4 ms·
Jobs' second response is the most interesting. We’ve been there before, and intermediate layers between the platform and the developer ultimately produces sub-
by tumult 17y ago
Jobs' second response is the most interesting.
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.
So it seems, at least from his comment and the context it was in, the intention of the clause is to remove layers that are other people's products.
There are two sides to the "hinders progress" claim. One is that, with an intermediary layer, new features added by Apple cannot be used by anyone relying on an intermediary layer to build iPhone apps until the maintainers of the intermediary layer add support for it. From what few comments we've gotten out of Apple, it seems they are trying to avoid a situation in which there is a large ecosystem of developers who are unable to directly exploit Apple's newest innovations on the platform, and instead work with least-common-denominator that their layer provides.
I think this is a totally reasonable thing to want.
The other side to this is that there is probably not a good technical way to make people obey. Innovation directly on top of a platform can involve abstraction into layers. For example, most of the best games all involve multiple layers of abstraction, in the form of a managed runtime for the game, some sort of scripting engine (or template/meta-language for specifying behavior), dynamic compiler (for shaders, AI and other tasks), etc.
The first thing a good programmer does when faced with a complex and uncertain problem is to build a grammar to express their ideas in on top of the foundation you're given. In C, this usually involves writing sets of routines that form a second (usually ad-hoc) 'language' that can be composed together to form complex ideas without having to hand-code everything over and over.
I see tons of bad and dumb Objective-C iPhone, iPad and Mac apps. It's completely possible to write first-class stuff in something other than Objective-C or C. ML variants, such as OCaml, SML and now even Haskell are speed demons in comparison to Objective-C. (The thing that makes Objective-C 'fast' is that when you need it to be fast, you just write the routines only in C, without message dispatching. Want to know how much fun it is to write GUI glue in C? Not very.)
I hope this means Apple is not going to start rejecting apps that are polished, fast, and innovative simply because they are built or expressed with tools other than C. I realize a lot of Flash->Objective-C compiled stuff would be crap. A lot of Objective-C stuff is crap, too. But some guy with his own hand-rolled Scheme runtime with message passing mapped onto the UIKit classes implemented with closures? If you reject that, you're going to piss off the very best developers, and dig yourself into the kind of hole that no technology company in history has been able to maintain mindshare once inside.
Addendum: if it's true that Apple's primary intention of removing layers is to keep their APIs and ecosystem nimble, then I would expect them to not reject games made with intermediary software, such as Unity3D. Games usually play outside of the main OS framework kits and are not as beholden to new UI features as normal application kit programs.
- tjogin 17y ago> So it seems, at least from his comment and the context it was in, the intention of the clause is to remove layers that are other people's products. Exactly. It's not about forbidding other languages, they just don't want to be beholden to things like CS5. Gruber was right.
- goatforce5 17y agoI wouldn't be utterly surprised if Apple took Titanium Mobile: http://github.com/appcelerator/titanium_mobile http://github.com/appcelerator/titanium_mobile or bought Appcelerator and made a play for it to be the environment to develop mobile apps in. If the future says we'll be able to cross-compile our apps for the 2 or 3 most popular mobile platforms, why not do have people do it on Macs, in Apple's environment, and have the paid apps end up appearing in an Apple controlled app store? (side note: i've mentioned Appcelerator a few times in previous comments. I have no connection to them other than thinking it's a pretty neat product and have been looking forward to diving in to it properly. I'll be annoyed if Apple removes that as an option from me. FWIW, Appcelerator is the reason i've already paid $99 to register as an iPhone developer.)
- wvenable 17y ago> If the future says we'll be able to cross-compile our apps... Apple wants to prevent that future, not embrace it. They'd rather sell millions of iPhones to consumers than sell hundreds of Macs to developers.
- deleted 17y ago[deleted]