Slashdot videos: Now with more Slashdot!
We've improved Slashdot's video section; now you can view our video interviews, product close-ups and site visits with all the usual Slashdot options to comment, share, etc. No more walled garden! It's a work in progress -- we hope you'll check it out (Learn more about the recent updates).
Android has pretty much played out the way that we feared: there is enough fragmentation among Android handsets to significantly restrict the freedom of software developers.
The notion that Android suffers from a huge fragmentation problem seems to be repeated everywhere, but I really don't understand where this is coming from. I've developed JME and Android applications and the amount of fragmentation on Android is mostly non-existent. Apart from some small number of device-specific bugs (that are fixed with phone updates) that won't affect most Android apps, cross-device development is a breeze. I remember JME development was way more troublesome, where model-specific versions were the rule instead of the exception.
However, having a stable ABI won't be the magic solution to this. A lot (if not most) of the problems encountered on one platform with a stable ABI (Windows) seem to be related to buggy drivers. A more recent example: http://arstechnica.com/hardware/news/2008/03/vista-capable-lawsuit-paints-picture-of-buggy-nvidia-drivers.ars
And even an open source driver doesn't guarantee quality. For at least a year now, drivers for Intel's graphics cards have been the source of a lot of problems on the desktop (see http://www.linuxtoday.com/developer/2009081702335OSHWKN). And I'm not even mentioning the various buggy ALSA drivers that have been a plague for linux desktop users in the past.
Taking these two observations, one can state that we cannot trust hardware companies nor kernel developers to produce quality and stable drivers. Both parties cannot and/or will not test against many possible hardware and software combinations. Kernel developers do not have the resources and I don't believe companies will invest a lot of effort as well (especially not for such a small market-share)
Microsoft seems to know about this problem and offers the WHQL driver-certification to ensure a certain driver quality. I don't know what qualifies for such a certification but I won't be surprised they have a huge amount of resources available for testing various (popular?) hardware and software combinations. But again, even Microsoft cannot cover nearly all the bases.
So what does that leave Desktop Linux? In my opinion, if it really wants to be better than Windows in terms of delivered quality and offer a smooth and stable environment, it needs to control the hardware offer as well. It's Apple's little public secret: the reason why their software is perceived to be so stable and seamless, is because you don't have to fiddle around with drivers. Plus, the OS guys can actually test the delivered system pretty thoroughly because of the limited variations in hardware.
The way I see it Canonical should have released a Ubuntu laptop bundled with hardware that is well-tested to work with the current available drivers. But also release their OS for use on other hardware, but without the guarantee that everything will work as good as on the offered hardware. They had a good shot at this with their Dell deal roughly one or two years ago but it seems they dropped the ball on that. Even the Dell guys made the remark that it was getting pretty difficult to find quality drivers for some components (http://www.phoronix.com/scan.php?page=news_item&px=NTkxOA). From the outside it seems that Canonical only was interested in delivering the OS part and didn't really pay any attention to the complete product. The end result was a 'nice try', but riddled with problems regarding hibernation, wireless and dual-monitor support, not exactly trivial pieces of functionality on a laptop. I don't know if their current offerings are any better, but a bad first impression is pretty hard to make up for.