I'm an iPhone developer who knows ObjC inside-and-out and I stand to profit (and in fact already am profiting) from Apple's decision to shut down cross-platform frameworks.
That said, there's no direct connection between a great user experience and specifically using ObjC, not even in theory. There are many frameworks (MonoTouch comes to mind) which explicitly bind Cocoa/Touch to C#. The only difference is, instead of writing your logic in ObjC, you're doing it in a language you're more familiar with. This type of framework/cross-compiler leads to high-quality, reliable code that still provides a nice Apple-ey user experience.
On the flipside, you have plenty of app store apps (games, mostly, but others like convertbot) that totally eschew Apple's UI controls. These apps are written in 100% ObjC with all of Apple's tools, but simply prefer rolling their own because they think the user experience is better. Up to now (and as far as I can tell from my talks with them, still) Apple has no problem with this.
So I think your logic that using Apple's tools magically leads to a better user experience is flawed. True, some cross-platform environments lead to a subpar experience (potentially Adobe's CS5). But Unity3D and MonoTouch clearly contribute to the platform from a user experience standpoint.
A much better argument is that Apple is planning to make lots of changes going forward and they don't want to have to worry about waiting for the Unity people to update their compiler in order for developers to be able to implement [whatever] for their apps. For instance, the multitasking change is pretty big under the hood--who knows how long it will be before MonoTouch binds to it? That's much more likely to be Apple's concern.
TUAW made a similar argument to mine, but it's flawed in a couple of places because they don't understand OSX. There's nothing about cross-platform frameworks that makes multitasking hard per se, but making it more difficult to update existing code is going to be hard if Apple ever decides to break backwards compatibility, which clearly they're indicating they're going to do.
Of course, from Apple's POV this has the nice "side" benefit of locking developers in to ObjC going forward. Better for the platform or not, I think that's what has developers most upset--we've just gotten out of two decades of vendor lock-in under Microsoft. We were headed for the web, and we're about to miss it.
In what way does MonoTouch clearly contribute to the user experience on the platform?
An argument I started contemplating after reading the article is that there are a lot of non-iPhones out there with a physical keyboard, for instance. I can imagine someone writing for another platform experience makes concessions in creating apps that work flawlessly in a touchscreen-only environment, in much the same way some people might have been tempted writing CLI-apps for the original Mac had it provided one. Granted, most new phones seem to focus on the touch screen, but I can imagine there are other similar differences that might affect how native an app feels on the iPhone platform. After all, it seems that there are iPhone app developers moving to the Mac that create iPhone-like interfaces that don't quite feel at home on the Mac. If there are subtle but noticeable differences between Mac OS X and iPhone OS, I can imagine there are more than a few such subtle differences between the iPhone feel and the feel on other platforms.
I like the double irony of a) how well that worked out for 'beleaguered' Apple the first time, and b) how many trace Apple's comeback amongst alpha-geeks as being down to Apple building on unix and its command line.
Right. My view is that Apple's resurgence was due to two factors: a radically improved product (the newer Macs, with MacOS X) plus persuasive evangelists (alpha geeks like you and me). The bet with the iPad appears to be that you can piss off the geeks to some extent as long as the product is really good (in the eyes of the target market). I'd be lying if I said I knew how it was going to turn out.
Plus the web, which meant you could use enough dumbed-down, low-quality, low-fi GUI, cross-platform apps that you didn't mind being locked out of the Windows ecosystem.
(It didn't affect me but the poor quality ports of Microsoft Office and Adobe products that made OS X a viable platform for some too.)
also re "how well that worked out for Apple the first time" -- actually: Windows managed to imitate most of Mac UI only with Windows 95, some eleven years after first Mac. Before Windows 95, Windows was ugly.
Also note that some court decisions in Microsoft's favor were needed in order to help Microsoft imitate Apple in 1995.
Yet the "ugly" Windows still managed to win in the marketplace. That's in no small part because Microsoft wasn't precious about what developers could build on their platform.
It's not Apple who built on Unix first, it was Jobs, who was fired from Apple. Jobs' work with Next was big part of Apple's comeback. Other Jobs' new decisions provided the rest of success.
The first Mac came out 1984 and it was just a sketch of what it could be.
In the following years the Mac and its software was shaped by the people using it and developing as much, if not more, as by Apple itself.
Desktop Publishing was one of the areas where the Mac first showed in a practically useful form (1985) that its base was useful. But it was not new. ALL the basic ideas existed in the Xerox Star ( http://en.wikipedia.org/wiki/Xerox_Star ): laser printers, document publishing, layout, networked workgroups, user interface metaphor (the office), page description language, object embedding, ...). Apple designed the Mac to be much more affordable - but a useful system with disk, large screen, network, memory, laser printer added up to a substantial amount of money.
I'm not sure that I can name ANYTHING in early Mac-based desktop publishing that was not already presented in some form in the Xerox Star - the implementation of Desktop Publishing on the Mac then was joint work of Adobe (Postscript), Aldus (PageMaker), Canon (the laser printer) and others.
I don't believe in a company that thinks it can define the 'progress of a platform'. In my view progress it is a joint process by many people and companies, a process of ideas, implementations, failures, retrying, improving, feedback, ...
For the iPhone OS developers are degraded to do what Apple pleases. Innovation is no longer happening between people on the same level - Apple thinks it can control the process and the results. I think that leads to a shallow form of progress and innovation.
I would agree with you if the platform we were talking about was something like the web, but it's not. It's a proprietary platform owned by Apple. It's not the 'progress of a platform,' it's the 'progress of their platform.' The progress of a platform created and owned by Apple. I may wish that I could develop and release applications for the iPhone using some other methods or languages, but I do believe that it is Apple's prerogative to control their platform.
Fortunately, it's just their platform and there are a myriad of other platforms out there not controlled by Apple that do allow me to develop for them however I see fit. I don't believe that developers are 'degraded to do what Apple pleases.' Even with the new SDK restrictions, there is still an infinite number of ways to express yourself developing applications for the iPhone.
I also think that as much as restriction may stifle innovation in some ways, placing limits on how something is done can also force you to be more creative and innovative in other ways.
This definition of a 'platform' is bogus. There is nothing like a platform. I want to buy a device that I own and not a 'platform'.
When I buy a house, I don't buy a platform where for the rest of my life, every newspaper that I read in that house will be delivered by Apple? Because that's the platform restriction. I get a lot of newspapers, but not all. The newspapers all look great, but some pages are missing, because Apple does not like them. Some images are blurred because Apple does not like them. I bought a platform, instead of a house?
I don't buy a car, but a platform? The BMW 5 series is a platform? I can only travel with it on BMW licensed roads and the petrol comes from a BMW petrol station where BMW gets 30% for every gallon? I can get only a BMW media player in the car and the distribution channel for music and news is also owned by BMW? BMW knows which music you have in your entertainment system? I could have bought another platform, from Mercedes, but then the petrol station would be a Mercedes-licensed?
Definitely not. If I buy some piece of hardware&software it does not mean that I want to buy a whole exclusive media distribution channel.
The whole idea that somebody owns a 'platform' that runs this deep and wide and this is just natural is just WRONG. Remember we let a single company influence what media we consume, what information we consume, what applications we can use and also what NOT - just by buying a computer from them and because they call it a 'platform'?
The infinite number of ways thought is also wrong. There are multiple infinities and Apple now controls the infinities. Some dimensions are not available at all. On some other dimensions there are still infinitive amounts of things, but they are all EVEN. The ODD ones are not supported by Apple.
I think there is one technical argument for 3.1.1.
It's often been observed that as PCs kept getting faster, apps stayed at the same speed (or even slowed down), as layers of abstraction soaked up the extra cycles. To remain snappy, the iPhone simply can't afford that. At least not yet.
It's not so much the layers of abstraction -- our machines quite literally do more but the software, at least on the surface, looks the same. I remember when Office added the real-time squiggle line spellchecking -- now that's everywhere including this browser textbox. If you go back a few years, you'll find a lot of software that is best described now as primitive.
Abstraction layers are always slow -- PC's getting faster never makes them feel fast because our expectations of what software should do increases at the same rate.
That said, there's no direct connection between a great user experience and specifically using ObjC, not even in theory. There are many frameworks (MonoTouch comes to mind) which explicitly bind Cocoa/Touch to C#. The only difference is, instead of writing your logic in ObjC, you're doing it in a language you're more familiar with. This type of framework/cross-compiler leads to high-quality, reliable code that still provides a nice Apple-ey user experience.
On the flipside, you have plenty of app store apps (games, mostly, but others like convertbot) that totally eschew Apple's UI controls. These apps are written in 100% ObjC with all of Apple's tools, but simply prefer rolling their own because they think the user experience is better. Up to now (and as far as I can tell from my talks with them, still) Apple has no problem with this.
So I think your logic that using Apple's tools magically leads to a better user experience is flawed. True, some cross-platform environments lead to a subpar experience (potentially Adobe's CS5). But Unity3D and MonoTouch clearly contribute to the platform from a user experience standpoint.
A much better argument is that Apple is planning to make lots of changes going forward and they don't want to have to worry about waiting for the Unity people to update their compiler in order for developers to be able to implement [whatever] for their apps. For instance, the multitasking change is pretty big under the hood--who knows how long it will be before MonoTouch binds to it? That's much more likely to be Apple's concern.
TUAW made a similar argument to mine, but it's flawed in a couple of places because they don't understand OSX. There's nothing about cross-platform frameworks that makes multitasking hard per se, but making it more difficult to update existing code is going to be hard if Apple ever decides to break backwards compatibility, which clearly they're indicating they're going to do.
Of course, from Apple's POV this has the nice "side" benefit of locking developers in to ObjC going forward. Better for the platform or not, I think that's what has developers most upset--we've just gotten out of two decades of vendor lock-in under Microsoft. We were headed for the web, and we're about to miss it.