Older items: 2015: ( J F M ), 2014: ( J F M A M J J A S O N D ), 2013, 2012, 2011, 2010, 2009, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, legacy html

Overview

Our attractiveness to ISVs

Arriving back from vacation, I read Miguel's thoughts on the state of the Linux Desktop in the race for the consumer market; I happen to mostly agree with his conclusion - that we're still facing a huge up-hill struggle there. While I have huge respect for his experience and insight, I think the causes are larger. My punch-line is that the Linux Desktop faces a huge and multi-factored ecosystem challenge, there is no single simple issue to fix. Over the last decade I've been peripherally involved in trying to tackle many of the problems in this area, here are some of my random thoughts and open questions on the topic, there are no radical new insights:

Clearly this is a significant factor in our problem. No matter how bad and limited our APIs are, if there is market pressure to port software to the platform - it will come; hacks and all. Yes, the Linux Desktop is a horrifying thing to deal with from an ABI stability / interface perspective. Aside from the diversity of pointlessly different distribution packaging details, the Linux Desktop stack (with existing frozen / back-compatible API/ABIs) is not profoundly different from other operating systems - indeed, arguably it is better for ISVs since we have access to open the lid on the box and work with each other as some are finding out.

Other's attractiveness to ISVs

Often the disguised thought here is that the competition are simply wonderful at producing clean, crisp, working, tested, performant implementations of everything, for which there are no compatibility problems, and life is wonderful. People then often point at Windows XP - perhaps the best understood mature operating-system ever, with a decade of workaround development and integration testing.

How do Windows ISVs get such a great deal ? one thing they do is to distribute much more of the system in duplicate with each application. So for example each app ships it's own libc and gets to try to install it somewhere. This is something that we typically don't do on Linux, but it could be done: some form of application virtualisation would help. Conversely Windows ISVs suffer a lot of performance, scriptability, and repeatability problems that are just not there on Linux.

How about other new successful platforms like iOS / Android which are loaded with ISVs - do they have the world's most beautiful development environments ? given that Xamarin are selling sexy tools to improve the ISV environment there my suspicions is that not all is perfect. Enjoying native code development on these platforms is like enjoying extreme DIY dental surgery - the Linux Desktop is infinitely preferable as an ISV platform. Why do ISV's put up with it ? in my view, it is driven exclusively by the large addressable market. You don't need an MBA to see the trends and opportunity there.

Questions around a better ISV story

There is a lot more to say; but perhaps some of it belongs as questions. Let me frame them in this way; Question: is there something that we (as Free Software lovers) can do to make our ISV story sexy enough that it makes the Linux Desktop an attractive enough platform for developers that it overrides our lack of market share, and makes a Linux Desktop port of each piece of software automatic ? [ notice I'm abandoning the idea of a Free-Software killer-app that sticks to only our platform ahead of time, the market realities will bring it to Windows / Mac even against our will ].

What will attract ISVs to our platform ? what will make them feel at home, and productive producing software for the other major platforms ?

If we make it easy to purchase proprietary software, or to donate money to free software app developers and overcome our fragmentation to integrate this everywhere (a single 'App-Store'), will this bring us back to parity with other OS' or make us compellingly better ?

Attractiveness to (consumer) OEMs

It is often noticed that OEMs pay money to install Windows on their machines, and that the Linux Desktop is an apparently free alternative - so surely our zero cost should make us wildly successful right ? It seems to me there are a multitude of interesting problems here.

Zero is too inexpensive

One of the major business problems of hardware enablement is that it takes a constant investment of real cash to pay excellent engineers to make (brand new) hardware work reliably. Linux has more drivers working out of the box than any other OS - of course we rock; however - the Windows ecosystem distributes that cost among hardware vendors: who write their own drivers (subsidised by the hardware you buy), and the Mac ecosystem ships a very limited set of hardware. Unfortunately, the cost of the Linux Desktop to OEMs has been driven down to a marginal level by somewhat cut-throat competition. That makes enablement development hard to justify without enough volume. Substantially exacerbating this is the habit of consumer-grade hardware of constant switching of components. There is a silent, invisible, gigantic, cost-engineering war going on out there which squeezes cash out all along the chain. In the absence of good standard interfaces, this makes device support much harder for consumer hardware; a trivial but comic example is of custom tweaking batches of hardware to pre-define vflip states for built-in webcams, cf. the kernel.

Zero is not cheap enough

Unfortunately, even if hardware can be perfectly enabled, fully translated, with accurate manuals, support and update plans, integrated with OEM's imaging infrastructure etc. and at near-zero cost, this is still too expensive. Looking at other ecosystems there are substantial flows of cash to OEMs that are not obvious. There are a lot of these:

co-marketing dollars - whenever you read adverts that feature Foo inc. recommends the latest Baa for home users it means that the cost of that marketing was substantially offset by OEM kick-backs.

- whenever you read adverts that feature it means that the cost of that marketing was substantially offset by OEM kick-backs. a cut of advertising / sale revenue - arguably the true cost of some mobile-phone operating systems is negative due to the cut of the advertising revenue going back to the operator / OEM. This is a serious consideration in all advertising-interesting or mobile-device segments: there are a limited number of Google, Amazon, Microsoft's out there. Clearly for real advertising / secondary sales related funding, you need relevance and volume, cf. Firefox.

- arguably the true cost of some mobile-phone operating systems is negative due to the cut of the advertising revenue going back to the operator / OEM. This is a serious consideration in all advertising-interesting or mobile-device segments: there are a limited number of Google, Amazon, Microsoft's out there. Clearly for real advertising / secondary sales related funding, you need relevance and volume, cf. Firefox. Upgrade revenue - a simple example is the trial version of Microsoft Office you get pre-installed; that makes it easy to pay $100+ to upgrade it to the full version: but some chunk of that ends up back in the OEM's hands.

- a simple example is the trial version of Microsoft Office you get pre-installed; that makes it easy to pay $100+ to upgrade it to the full version: but some chunk of that ends up back in the OEM's hands. Antivirus revenue - another popular upgrade/trial version fitting the pattern of paying an extra for making up for the OS' lack of functionality. AV vendors pay lots of hard cash, up-front every year to ship pre-loaded on consumer-grade hardware. Arguably the celebrated lack of Linux viruses is an ecosystem problem, no AV vendor can take the credit for that.

Channel issues

Even when the hardware is perfectly enabled, and there is an advertised Linux that works on this hardware - it is frequently extremely difficult to actually buy that model. Often these models are geographically limited, frequently the imaging process is done in the factory, and so the lower-volume Linux version you want is not in stock / is un-available on-line. Clearly by the time you head to an interactive shop display, the expensive (paid-for) display space is unlikely to be used for a little-known Linux variant of the hardware. So, all in all it's usually far easier to buy the device with Windows installed, and image it. Potentially there is a market for OS vendors to sell device-specific to-customer desktop O/S support but the transaction costs are likely to be high and the market small.

Zero can be much too expensive

The cost of supporting shipped hardware can be rather a large proportion of an OEM's expenses. That's particularly so if you image tens of thousands of machines with some crippling issue, or ship an update that breaks updating, or - any of the other software horrors you can imagine loaded on top of the inevitable hardware problems. I recall well being told by a nameless support technician to hold down 'QWER' while powering on a dead machine, not for some obscure BIOS feature - but to help re-seat the loose CPU immediately underneath the keyboard.

Perhaps here is somewhere we could excel - having ultra-robust, translated, cross-distro standardised recovery, re-imaging, disk repair, hardware diagnostics, incident reporting, built-in help-desk agents - which combined with relative virus-freeness could reduce consumer support costs. Re-installing windows is currently a routine lifestyle-choice for some people, nevertheless it is somehow a familiar and re-assuring experience - not something you send your netbook back for: just re-install. My hope is that the base-system consolidation around systemd might bring us some of this critical disaster recovery / re-imaging / rescue functionality in a standardized form.

Attractiveness to the Consumer

So perhaps the consumer is going to ride to the rescue, demand Free Software because it is better, and all will be well - the OEMs will respond to market pressure and produce what people want, and ISVs will respond to that.

If we build it, he will come

It is a nice dream. Clearly we want to make the best product possible for consumers. It is of course possible for an excellent product to spread virally by word of mouth, clever volunteer marketing, and more - but it is hard work. I often hear the idea that we just need to implement XYZ new feature, and people will flock to us. I'm always eager to see new features, but it seems to me that a feature-edge is rather a small part of the answer - we may well already be more secure, more manageable, more easy to upgrade, and lower cost: but unless consumers know about us - with the best will in the world, they can't choose us.

Making it easy to buy

Absent a near infinite supply of enthusiastic local hacker-types to install and maintain Free Software for everyone, your average consumer needs the ability to buy it. Unfortunately, the economics of encouraging high-street shops to position, and advertise it are punitive - a game for the very rich, and the results are not uniformly ideal - cf. Nokia's expensive Lumia displays in every mobile store window in the UK, and the resulting trivial market share. Potentially in an Amazon / web-purchasing world people can buy "one just like my mate has" without going into a shop, possibly media hype and brand loyalty can make people buy expensive new products on-line that they've never physically seen. On the other hand the experience of the rather cool Litl product - is not too encouraging.

Economies of scale in retail often lead to a few, large high-street vendors - whose appetite for across-the-board risk and experimentation with new software/hardware combinations is low.

Revolutionary technology improvement

There are two types of people: those who don't like to learn new things, and what was the other one ?. Persuading people to like change and new-ness is rather difficult - it seems to me, that the more humdrum and non-novel a product is, the more attractive 'new-ness' is as a marketing feature: "new ultra-squeeze toothpaste" turns out to be just the same old stuff in the same old kind of tube. Conversely - "new - radically different approach to keyboard key layout - up to 5x more productive" already doesn't sound like a winner. Apparently some new technologies are just so usable that people are willing to invest their spare time in learning them - perhaps that, or their brands, constructed by expensive marketing, are so powerful that people buy before they try, and feel they ought to catch up with their friends later.

Questions around Consumer demand generation

Can we create and retain a feature edge vs. other operating systems (who will relentlessly copy our killer ideas) for long enough, that we can create a marketing story that reaches enough consumers to build significant demand ?

Can we mobilise, motivate and inspire enough (tech literate) early adopters to evangelise, support and unambiguosly advocate the Linux Desktop ? Can we simultaneously please enough innovators such that they love using the platform to get their tasks done and let us capture a significant proportion of the leading edge of the adoption curve ?

Instead of targetting immediate ubiquity, could we find, and focus on a series of consumer niches which we can grow to become the de-facto solution, in turn growing a community of developers to sustain that niche ? Are there intrinsic strengths of the Linux Desktop that would stop any killer apps moving to other, existing platforms to avoid migration pain ?

Tentative Conclusions

While I've been hacking on and/or using the Linux Desktop it has improved in an simply incredible fashion. It is hopeful that on it's current trajectory it will continue to improve, assuming we can continue to (mostly) avoid the duplication, pointless re-writing, and un-necessary re-invention that plagues Free Software. However from a consumer adoption point I draw these hesitant conclusions:

There are clearly vast, assymetric, network-effect problems that a new-entrant into the desktop operating-system market faces. Arguably this is one reason why that no new entrant to the market proprietary or free has gained significant market share in the last decade+. The corpses of various different, well funded but failed attempts abound: BeOS, NeXT, OS/2, MeeGo Netbook etc.

The economics of an excessively cheap product are a difficult fit for the consumer market, and drain money from the ecosystem necessary to invest in development. The relentless drive to a zero cost-point to gain market share in Linux Desktop pre-loading helps to further sterilize the space.

x Free Software applications, and cloud service integration points are mobile - so the hope for a 'killer app' for linux is unrealistic. Conversely - working on great cross-platform Free-Software applications makes a fully-free system a much more viable prospect, not co-incidentally a great way you can contribute to that is to hack on LibreOffice, or perhaps Firefox / Webkit.

for linux is unrealistic. Conversely - working on great cross-platform Free-Software applications makes a fully-free system a much more viable prospect, not co-incidentally a great way you can contribute to that is to hack on LibreOffice, or perhaps Firefox / Webkit. Ease of use is a laudable goal, but building a rich ecosystem is even more wonderful. Since (in my view) all software should be Free Software, having mind-blowingly-sexy integration with for-pay / cloud hardware services at a desktop level might provide a less transient Linux specific feature edge.

Postscript - the Business user

So - perhaps focusing exclusively on the consumer desktop seems a bit depressing. It is interesting to consider instead the enterprise / business user. There are a number of factors here that make this a much more promising space, and one that I'd love to persuade more hackers to take seriously as they work. A note of self-interest, my employer SUSE happens to sell a fantastic Enterprise desktop SLED. A quick run-down of the salient differences are:

Enterprises like a constrained / locked-down environment - so a limited set of software from ISVs that can be installed can be a feature-not-bug. Having said that, it is necessary to have the key ISV software - luckily many big ERP/CRM systems use the web anyway. So the ISV problem is much reduced.

Enterprises typically purchase hardware in batches of at least dozens of new machines of a well controlled, specific type avoiding some of the hardware enablement nightmare. They also try to continue to buy identical / approved machines on an ongoing basis, that helps reduce their support cost - and OEMs provide less crazy component turnover in response.

Enterprises also dislike their users being badgered by trial-ware, so they pay more for their hardware - and get it imaged in the factory, preferably with a complete set of the (few) applications that they expect to have in their standard install.

Enterprises are fewer in number than consumers, have highly technically literate staff choosing technologies, have in-house support and hopefully do their own pre-deployment testing.

The net effect of the above is to make the economics far more favourable. Clearly there is still a co-marketing cliff of pain, the hardware manufacturers provide and debug windows drivers 'for free', etc. but the economics are much more tractable. So - what does a strategy for tackling business users look like ? What do business users care about that consumers tend to care less about ? I have a few thoughts, probably others have more:

Security / Compliance / Encryption / Privacy - businesses like to not leak their critical customer data, relationship information, pricing, trade-secrets, and more. Easy to use auditing, multi-factor access control, encrypted disk, swap, VPN, Tor, DNS etc. are really useful features to businesses.

Lock-down and remote management; it is no good giving people sexy features without giving an admin the ability to turn them off for almost everyone. Being able to do that centrally is really important, and having pretty tools to build and test policies is also key.

Very few features: the more features there are, the more bugs and odd configuration options the user will find, enable and then mis-use to crank up support costs.

Hetrogenous network integration - integrating well with existing policy and authentication mechanisms; eDirectory, Active Directory, LDAP is crucial. Ditto for server services: Exchange, Notes, Groupwise, instant messaging, remote windows share browsing. The same for kerberos authentication, single multi-factor sign-on, secure proxy support and more. All apparently un-sexy integration problems that are supposed to 'just work', but frequently bit-rot.

Enterprise users like a smooth upgrade path, with well advertised technology deprecations, moving from one high-quality release to another (many refuse to deploy something new until after the first service-pack). They also think they dislike rapid upgrades: every two or three years is enough disruption for their users. For a potentially de-stabilising OS upgrade - Windows-XP's 10 year run is also appreciated.

Enterprises also want primarily bug-fixes, optional new features, and no re-training costs. Naturally the combination of the need for bug fixes, new/improved features, no re-training cost, no regressions and a multi-year update lifecycle is somewhat toxic to innovation. However it is quite easy for the staff-time, trainer time, and opportunity cost of spending a day re-training each user to exceed the cost of the software itself. We need to justify that by increased productivity: can we persuade people that the upgrade will clearly save much more than a man-day in aggregate each year ? the endless TCO arguments get read by someone at least, and need considering during development. I sometimes hear the meme "no-one needs training to use a Mac" - a quick google for 'OSX training services' (43m hits), vs. 'Windows training services' - (226m hits) is superficially encouraging until you consider the relative market shares. If we care about business users, we need to care about wider cost, and have in-mind the materials / pretty cheat-sheets to help people migrate.

In my view the most hopeful strategy for the Linux Desktop is to make it ideal for an enterprise, while not crippling it for consumers and very early adopters. It is perhaps not glorious - enterprises care little for the bling that doesn't have a direct, unarguable business benefit - and bling is fun to hack on; but surely creating real value, that allows people to work more efficiently, reliably, and speedily has to be a satisfying thing to do as well.

[ This is a live-ish post, that I'll try to update, correct, and cross-link better over time. ]