Home > IT > Cross platform vs platform specific

Cross platform vs platform specific

In the recent and probably still on-going struggle between Apple and Adobe, Steve Jobs made an argument that some may find a bit iconoclastic, essentially he claimed that Flash was inherently inferior to platform specific applications written natively in Objective C. And that kind of puts a dent in the established dogma of the past two decades that ‘write-once-run-anywhere’ is good.

Now the write-once-run-anywhere approach has been around for quite a long time, ever since the first implementation of Smalltalk-80 was released which ran on top of a virtual machine and the vendors could then write ports of the virtual machine for various platforms and distribute the same Smalltalk image. Probably the idea will have occurred to developers even before that. Smalltalk didn’t exactly catch on at the time, most implementations were slow and had a large memory footprint, yes it was nice to be able to write an app and then deploy it across a variety of platforms but what good was it if it worked in slow motion. So generally languages that compiled directly into the machine code such as C++ tended to be preferred as they were able to deliver the required performance under the memory, space and processor speed constraints programmers had to take into account at the time.

Then in the mid 1990’s Sun took the virtual machine +byte codes approach pioneered by Smalltalk and ran with it, launching a huge promotional campaign for their new Java language. The technology wasn’t anything new but the situation was different, hardware had advanced by leaps and bounds and now byte codes running on top of a virtual machine presented a viable alternative to natively compiled apps, for most intents and purposes the difference in performance was negligible. The early versions of Java were slow though, slower than the contemporary implementations of Smalltalk and far slower than natively compiled C++ apps, but Java offered applets, it was free and Sun seemingly stopped at nothing to promote it and a key element in this PR campaign behind Java was the fact that it was cross-platform.

Now, is cross-platform a good thing or a bad thing. Obviously Steve Jobs believes it’s not such a great thing and that cross-platform apps running on top of some intermediary layers (flash plug-in, Java VM etc) will always suck in comparison to natively compiled apps written in the Kosher languages (C, Objective C or C++).

However, I believe that it’s a rather lame argument. As the complexity of software increases, creating platform specific versions of every application becomes untenable. It’s easier and more practical to develop platform specific ‘intermediary layers’, virtual machines and interpreters and then deploy business solutions on top of them. In fact it’s the very direction the software industry has been moving in over the past two decades, what with Java and MS’s .NEt and CLI (which essentially provide extra layers between the programming language and the OS) and now Steve Jobs totally out of the blue decides to scrap that and force  his developers to go back to writing platform specific applications.

I’m no prophet, it’s a bold move on the part of Steve Jobs but what will eventually come of it, imho in the end it will all come down to market share and the availability of porting solutions. If Apple continues to insist that its apps must be written in specific flavours of C, then, provided that their market share in mobile devices and slate PC’s (iPad) continues to expand, some developers might choose to develop their apps on Macs and then port them to other platforms. However, if Apple’s competitors band together to support cross platform technologies on their devices and provided that their combined market share is greater than that of Apple, Steve Jobs and co may eventually find themselves in a tight spot, after all a device is only as good as the applications that run on it. And in that case they may eventually be forced to drop the C, Objective C, C++ clause from their license agreement.

Only the future will tell how it will all end.

Advertisements
Categories: IT
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: