There was a bit of an argument today between @otomeskhy, @iosebi and I about open letter by Steve Jobs about Adobe Flash. This inspired me to write this post.
Before you start reading please bare in mind, I'm reviewing only consumer software with user interface and human interaction involved.
The idea of cross-platform software is brilliant; ability to run same piece of software/code on any platform without changing it cool and funky... but only in theory and some very-rare exceptions which I assume exist, personally tho... I've never seen one.
Part I: User Experience
Part II: Native feel
Cross platform applications are running on virtual machines which are there to separate running application from operating system they are running on. This means that application knows nothing about native OS or device it's running unless VM provides that kind of information; happily, that's what it does but level of support of those "pipes" and "tunnels" (or basically APIs) to native OS and hardware will never reach native APIs in terms of security, performance, response time, reliability, stability, (insert your IT word here, it will fit perfectly)... Same does refer to native looks of application, why should this application look different from other three-hundred and twenty-five all other applications from my Mac, PC or even iPhone? It should have same scroll-bars, buttons, checkboxes, drag-and-drop behavior, gestures, etc.
Part III: Performance
Native applications are just faster and much more reliable, it's a fact. Period.
Part IV: Why Flash Succeeded?
Part V: Flash on iPhone
As an iPhone developer I really do not want to see Flash applications on iPhone for several reasons:
iPhone, UI guideline violation. Endless "Look at my innovative UI" show-off, and every single one will be worse than's native apps, because no developer will think and invest so much in completely new touch interface made for touch device like iPhone, and even if he/she will, it won't feel native.
Sluggish performance. Have you seen how CoreAnimations works? No? Than take a look, Adobe will never invest such amount of resources in one framework only for iPhone, in fact it never did even for PCs and Macs for more than 12 years.
Battery power. Flash has serious performance problems with vector animations and drawing. I don't mean that they don't work — they do, but using a lot of processing power which is OK for PC, Mac or anything connected to power plug. When you are on battery power things do change dramatically, your on-board power management system tries to lower CPU power consumption to increase battery time and CPU struggles to handle such stress. Results are obvious: sluggish performance and very short battery time. (Apple reports Flash to decrease battery time up to 5 hours on iPad).
Part VI: Future for the web
Part VII: Future of 3rd-party platforms
I have no idea about that but what I can tell for sure is that natively written software are always much, much better than cross platform in any way. Feel free to argue in comments and make you point. And please write about cross platform software you use which is as good as native one. I really know no examples of such.