Common platforms are a good thing. Right?

by Shane Perris on Thursday, 18 September, 2008

in opinions

Adobe AIR logo

Adobe AIR for Linux beta released (labs.adobe.com)


I can see the attraction of developing from a known baseline that is guaranteed to work, look and feel exactly the same across different platforms. One set of bugs to fix, one set of UI changes to make, only one lot of updates to push live. Less development time + potentially wider user base = WIN, surely. But does that always hold true?

 

 

Each of the major operating systems (assuming in this instance those are Windows, Mac OS X and Linux) have their own strengths and weaknesses. I’m not a programmer but I feel confident in saying that the Win32 API offers hooks that aren’t available in OS X on the Mac, and vice versa. Linux has its own attractions as well (although I have no idea what they might be from the perspective of a programmer). Many single-platform applications work solely on a chosen operating system because they take advantage of these platform-specific hooks. A cross-platform development environment changes that game completely.

Do common environments level the playing field or do they reduce everything to the lowest common denominator? I have a concern, which may well be unfounded, that it has the potential to remove a developer’s motivation to streamline a single-platform application to produce a program that is as lean as the hardware and software will allow (“coding to the metal” as it were). As more desktop applications move into a cloud-based arrangement with online options and storage, development platforms like AIR will become more important and more prevalent.

I’ve had reservations about AIR in the past but I have come to recognise its value in providing a desktop front-end to web-based services (for example the Twhirl client for Twitter or the eBay desktop app). My concern is that as the platform matures, some developers will see it as an opportunity to push out applications with little thought to look or feel and how they might integrate with native operating system environments. I can’t help but think of all the janky Java applications that were released in the late 90s that all used the same ugly default user interface widgets. The applications might have had the attraction of a right once/run anywhere development environment, but it often meant that they were uniformly sub-standard for everyone.

Will individuality and innovation be sacrificed for homogeneity, uniformity and cross-platform accessibility?

{ 4 comments… read them below or add one }

1 Leezl September 18, 2008 at 18:40

Another great Adobe Air client is http://www.feedalizr.com

2 Shane Perris September 18, 2008 at 20:53

Thanks for heads up on that one, Leezl. I hadn’t come across it before. I’ll have to look into it to see how well it handles Jaiku. Could be the app I’ve been looking for in that respect.

3 Taufiq Hasan June 15, 2009 at 18:17

Hi, nice blog..
I have list of adobe air apps on my blog..im just adobe air lover.
Thank you.

4 Tony June 23, 2009 at 7:23

Hooks are hooks, they’re all low level and can be done across the platforms. There are different methods for calling them high level (which equates to different low-level assembly). Unless you’re not talking about the same hooks that programmers use to inspect keyboard/mouse/etc. events. The difference is WinAPI will insert your program into the “send these types of messages to this process” queue where Linux (MacOSX is BSD based which is Unix and similar enough for the discussion) you will need a driver or process to monitor that (IRQ level understanding is helpful in explaining how it would work).

Leave a Comment