Ipad and iPhone developers look set to be trapped in a sea of Cocoa by Apple for the foreseeable future if the language of the latest iPhone OS 4 SDK proves to be enforceable by Apple.
The only drink on the menu for developers are the Cocoa frameworks that consist of libraries, APIs, and runtimes that form the development layer for all of Mac OS X.
"By developing with Cocoa, you will be creating applications the same way Mac OS X itself is created. Your application will automatically inherit the great behaviors and appearances of Mac OS X, with full access to the underlying power of the UNIX operating system. Using Cocoa with the Xcode IDE is simply the best way to create native Mac applications"
The 'Cocoa Touch' api is a subset of the overarching architecture, and Apple undeniably do a terrific job of hanging features together to provide a cohesive whole for end users. ZDNet editor Larry Dignan detailed Steve Jobs genius in presenting features already present in other mobile application OS's as shiny new Apple creations and discussed quarterly statements from both Apple and Adobe here about competitive stances.
I wrote about html 5 and 'Adobe's creative legacy & the proprietary aspirations of Apple & Google' back in early February, and on the eve of the launch of Adobe's Creative Suite 5 - which I have seen and will write about on Monday - it's worth considering what Apple's 'any color you want so long as it's Cocoa' attitude means to mobile computing.
It's not just Flash that is being nixed from Apple's idea of what's good for you but also MonoTouch, which "allows developers to create C# and .NET based applications that run on Apple's iPhone and Apple's iPod Touch devices, while taking advantage of the iPhone APIs and reusing both code and libraries that have been built for .NET, as well as existing skills".
...what Apple really wants to prevent is people releasing multi-platform compilers. So taking Flash as just one example, if I can build one app and the compiler can make me an iPhone executable, an Android executable, and so forth, Apple don't want that...
quoting raganwald's comment on Daring Fireball.
Apple don't have a stellar reputation in the developer community for sustaining third party tools: way back in the mid nineties at the height of the multimedia CD Rom boom they put money behind the 'Apple Media Tool' in direct competition to (now owned by Adobe) Macromedia Director, which was the foundation of that boom. Media Tool faded into obscurity as Apple increasingly focused on the web. Not a particularly complementary way to treat a partner company that was helping sell a lot of Apple computers to multimedia developers (the 90's version of 80 hour week 2.0 zealots) back in those days.
Today's iPad exuberance is somewhat similar to that era: a new way of presenting interactive rich media in mobile devices. The difference today is summed up in one word: advertising. The ads you see around this post on ZDNet are running through your browser's Flash plug in, enabling everything from digital video to sophisticated interactivity.
It's fashionable to bash Flash because people often don't like complete sites presented in Flash by ambitious designers, but the reality is that Flash web page components and banner ads are a foundation stone of the advertising industry, along with Microsoft's newer SilverLight. Money talks: Apple sells consumer products that are an important channel to influence through advertising.
It should be possible to create sophisticated multimedia in any authoring tool - the new Flash Pro, the new on April 13 Silverlight 4, or whatever tool a developer is familiar with - and then save the files out to comply with Apple's Cocoa Framework. Apple are effectively banning this 'cross-compiling' and locking users inside their Cocoa world.
Apple is a huge, deep pocketed company, but this smacks of the arrogance of Sony in their glory years, and my suspicion is that advertising revenues will influence the outcome of this latest hubris. This also has huge implications for mobile development of enterprise computing and unified communications applications. We are talking about a lot of developers livelihoods and skillsets here, this isn't about unwrapping a shiny new consumer toy on launch day with Steve Jobs playing Father Christmas.