Anyone who’s not on an iPhone might be Apple-green with envy over the amazing choice of apps available for download at the iPhone App Store versus the apps at Blackberry’s App World. There are far more iPhone apps, they tend to be less expensive, and they don’t run on Blackberrys. Is this inevitable, when apps are written for different operating systems because they have to be written in different languages? Is this a continuing, deliberate fragmentation of the market to create the appearance of separate solitudes between Microsoft and Apple operating systems and the devices that run on them (i.e. Blackberry and iPhone, respectively)? Maybe both, but what else is new? Well, crowd-sourcing efforts by developers to get their apps on both platforms with the least amount of effort, by creating more elegant code that shares the logical design of the app across both platforms.
What this means for the longer term is that as more and more software development kits (SDKs) in Objective-C (iPhone) and Java (Blackberry) get into the hands of grassroots developers hoping to make money selling their apps online, there is going to be a push toward cross-platform programming. As pointed out by developer Teabot on Stackoverflow.com, the core application code can be written so that it appears very similar on either platform, with API wrappers around the edges of the code that can be re-usable.
To achieve the same look and feel on each platform would require very different ‘physical components’ according to developer Grouchal on Stackoverflow.com, but Teabot goes on to claim that you should be able to share the logical design of your application if you carefully separate it into highly decoupled layers. This is still a big win because the logical application design probably accounts for a large part of your development effort, according to him.
This type of chatter shows it’s inevitable that the division of the apps market across operating system platforms will become eased, as grassroots developers become more inventive in finding ways to bridge the language barrier.