At DebConf14, Linus Torvalds had a Q&A session. One topic was GNU/Linux on the desktop. At one point, about 8:45 in, he details a major problem with GNU/Linux on the desktop, from the viewpoint of developers dealing with a bunch of distros. Essentially, a distro changes something and has to rebuild everything or all applications may be broken. For one distro, this is not a problem but a developer can’t produce binaries for all distros. It’s just impossible. He thinks Valve distributing major applications, games, to GNU/Linux will use huge statically linked binaries to overcome this. This will put pressure on all distros to come to some standards to help developers.
I agree with Linus that this is a big problem but I think it’s mostly a problem for non-Free software where the distros or OEMs have no access to source code. If the distros fix the issue in source code for their repository, the users don’t see the problem and the developer is not closely involved in the work. Clearly, OEMs and distros can do the work if they have the source code of applications. Since most users of PCs can function perfectly well with any particular distro without importing a lot of “foreign” applications, I think this problem is back a level or two from the key issues which I rank from most important to least important:
|1 – Getting OEMs to ship GNU/Linux readily, without buyers having to beg,||Still a problem for consumers buying directly, but not a problem for wholesale buyers like governments or large organizations because OEMs make a few changes and copy images, not a lot of work. Distros like Linpus and Ubuntu have made big inroads with this.|
|2 – Getting retailers to offer retail shelf-space (some aren’t even giving retail shelf-space to that other OS here…),||Still a problem here even for small cheap computers because legacy PCs are not getting much space and consumers are not lining up demanding choice. When the market matures in a few years things could change. GNU/Linux is better for OEMs, retailers and consumers in many situations. Retailers tend to like selling higher-priced items with higher markups when they should consider that they can sell more units at a lower price and make more money. With FLOSS, the retailer gets to keep more of the money the consumer pays.|
|3 – broken ABIs by distros, making it difficult for developers to get applications into distros or onto OEMs’ machines, Linus’ issue, and||Important for non-Free software because distros/OEMs can’t get the source-code. Less important for FLOSS because the packager in the distro does the work, not the original developer. The developer needs only to convince the distro to package the software. (Linus does mention that this is not practical even for a FLOSS application (e.g. his diving programme, Subsurface) with a small number of users. ~58minutes in)|
|4 – Consumers’ lack of familiarity.||In my experience, consumers/students/non-geeks are readily convinced with a demonstration/advertisement, particularly when they see improved performance and/or lower price, something OEMs and retailers can do.|
I have built a few applications from source code and it is a problem how diverse the library-space is: years of constant upgrades with incompatible versions of dozens of libraries. At some point, the ABIs should be frozen. After all these years, why is that not done? Perhaps instead of employing developers to constantly update libraries in source code we should employ them to create applications using the libraries as they are. Just fix the bugs. Stop throwing more features into the bins.