Whenever flash on iPhone is debated, one of the thing that’s mentioned is that Objective-C is really terrible and Flash (or Action Script) is a much easier language to learn and to use. Of course, Action Script is loosely based on Javascript, a scripting language and Objective-C is a layer on top of C, so that does confer Action Script an advantage when it comes to ease of use.
What people seem to be forgetting however is that there’s more to life than ease of use. By using Objective-C and the Cocoa Touch APIs, Apple has a set of technology that’s not that hard to use (really, try to learn it, you’ll see) but also, a set of technology that while open, is also pretty much only used by them. I’ve said this before in my last post, but forcing people to learn Apple technologies is not a bad thing. It’s certainly a bad thing for flash developers looking to make quick bucks by quickly porting existing code, but for the rest of us, it means the developer has to spend some time on the Mac, learning how it works, what the UI paradigms are and why things work the way things work. Ultimately, this leads to a developer that might spend more time thinking about the UI issues and how to really optimize the interface for an iOS device.
Objective-C has been pretty successful for Apple on the desktop for years. When Apple “forced” developers to ditch Carbon APIs (C APIs) for Cocoa APIs a few years ago to benefit from the latest advances in the OS, many balked and predictions of doom were also thrown by many. As far as I can tell, my Mac seems to have survived and so did all of the apps I’ve used. Certainly it means that companies like Adobe and Microsoft had and have a lot more work ahead of them rewriting large portions of legacy code. You know what though? At the end of the day, we get stuff like Outlook for Mac, a newly written app that takes full advantage of Mac OS X instead of Entourage.
During WWDC, Apple announced that Farmville was coming to iOS. It’ll be interesting to see if that version will take advantage of iOS 4′s Game Center feature when it launches. By being a native app, it certainly has the potential.
Meanwhile, iOS 4 is coming out today for all users. Grab it, it’s a great update.
Today, Apple announced a new version of the iPhone OS, the software that powers their mobile platforms like the iPhone, the iPod Touch and the newly released iPad (I’ll have my review soon). As part of that announcement, they have released a beta version of the SDK for us developers to play with but so far, the biggest news to come out of this is a little something they added to the license agreement.
John Gruber on Daring Fireball has a couple of post on this. To sum it up, Apple seems to have banned the use of Adobe’s Flash CS5 to iPhone technology or anything similar to that. What Apple has done basically, is force everyone to use their standards and their tools to code on their platform. Anything else is forbidden. That also impacts other tools like the Mono to iPhone stuff that’s also available.
John makes the point that it’s in Apple’s best interest and his arguments are good. I highly recommend you read the article in question but I’m going to go one step further here : I’m actually glad they did it and I think it’s a great thing for everyone involved except of course for Adobe and Flash-only developers. Here’s why.
If the Mac is known for anything, it’s for being a platform where attention to details is important. On OS X, we’ve seen a lot of application succeed because of the look and usability alone. The name “Delicious generation” was used to describe apps like these. Mac users expect apps to not only function well, but to look good, to act like a native app and to work like a native app. As such, the vast majority of apps available on OS X today are apps coded using Apple’s standards.
So what about the iPhone OS then? Well, by forcing people to use Apple’s tools, it forces people to be Mac users to develop for the iPhone platform. By doing so, it at least forces people to have a minimal knowledge of what it’s like to be on that platform. With any luck, that’ll end up improving the quality of apps on available on the App Store. Most people switching to Macs in my experience tend to become addicted to nice Apps anyway even if that was never really a concern before. It’s just part of the Mac mentality I guess.
I can understand why Flash developers are not happy and I can certainly sympathize with them, but I’m glad Apple did this. Let’s face it, Flash apps and Flash sites are not known for their great usability. They are known for flashy animations, terrible performance and for being generally harder to use.
From the start, the iPhone platform has never been an “open platform”. There are other platforms out there that are more open and equally great like Android. This is a closed garden. That comes with big advantages, but it also means you need to conform to the rules if you want to play in it.