Tiring of Lock-In

My main argu­ment against own­ing an iPhone, despite their shini­ness, has been one of ven­dor lock-in. Once you have an iPhone, you are vir­tu­ally com­pelled to also use iTunes, as it won’t sync with any­thing else. And that dic­tates your choice of oper­at­ing sys­tem and pri­mary media player, both of them towards soft­ware that I’d not oth­er­wise pick (Win­dows or Mac over Linux, and iTunes over vir­tu­ally any­thing else).

So I don’t have an iPhone. But I do have an Android phone, and even there the per­ceived lock-in is start­ing to irri­tate me. Android phones are at least indif­fer­ent to your choice of OS and media player, and do not pre­tend that in this day and age you still have a rea­son to sync your phone to your com­puter by a cable and ded­i­cated software.

Even though I’m unlikely to aban­don Google prod­ucts — at least in the realms of web-based e-mail and cal­en­dar­ing, they’re almost cer­tainly the best around — the fact that own­ing an Android hand­set would make it painful to do so if I wanted to is grow­ing irri­tat­ing. I’m for some rea­son tempted, next time my phone con­tract is up for renewal, to buy some­thing like an unlocked N900, to forego shiny inter­faces and thou­sands of apps in favour of a mediocre expe­ri­ence that at least doesn’t make my choices for me.

Per­haps this is lead­ing my brain down dark, geeky alley­ways, and I should go install Gen­too on my toaster or some­thing to get it all out of my system.

All Bugs Are Shallow… Except This One

In his essay “The Cathe­dral and the Bazaar”, Eric S. Ray­mond coins the phrase “given enough eye­balls, all bugs are shal­low” — mean­ing that with enough testers and enough pro­gram­mers, it is pos­si­ble to diag­nose and fix any soft­ware bug.

So why can’t my com­puter sus­pend and resume properly?

The con­cept of ‘sus­pend’ — or ‘sleep’, or ‘standby’ — mode, whereby the com­puter dumps its inter­nal state to RAM then enters a low-power state with its proces­sor and other hard­ware turned off, is not new. The ACPI stan­dard has been kick­ing around for 14 years now, a very long time com­pared to the life cycle of an oper­at­ing sys­tem. These days, with lap­top use on the rise, it’s a very com­mon thing for users to want to do. And yet resum­ing from sus­pend is still hit-and-miss.

Why do I find it more reli­able in Ubuntu than open­SUSE for the same base ker­nel? Why does GNOME fare bet­ter than KDE? Why does my WiFi some­times not come back? Why, with Microsoft’s mil­lion– if not billion-dollar oper­at­ing sys­tem bud­gets, with Intel and AMD and nVidia’s decades’ of dri­ver expe­ri­ence, is sus­pend and resume still fre­quently an issue even on Windows?

Only Apple, with its closed hard­ware / soft­ware ecosys­tem, seems to have cracked it.

I’d hate to think of that as the only way to a bug-free exis­tence — I’m very fond of the idea of an open ecosys­tem where I can run what­ever soft­ware I want on what­ever hard­ware I want. But I’m wor­ried. Is the range of (IBM-compatible, ACPI-supporting) hard­ware out there just too diverse and too widely dif­fer­ent in its sup­port for suspend-and-resume? Is it just infea­si­ble for soft­ware to per­fectly imple­ment it on all devices?

Has hard­ware cre­ated the one soft­ware bug that, for any rea­son­able num­ber of eye­balls, isn’t shal­low?