LWN.net Logo

Must ... Not ... Have ... Choice

Must ... Not ... Have ... Choice

Posted May 8, 2012 23:52 UTC (Tue) by ldo (subscriber, #40946)
Parent article: Fragmentation on the Linux Desktop (Is it Normal?) (Datamation)

“Fragmentation” seems to be the new term for “competition” and “choice”. Why is it bad?


(Log in to post comments)

Must ... Not ... Have ... Choice

Posted May 9, 2012 2:07 UTC (Wed) by Company (guest, #57006) [Link]

Lemme think... Ah, yes, the people that claim the Linux desktop will never get anywhere bcause you need to decide between 25 distros or DEB vs RPM. Oh, and there's the people that claim it's bad if you need to write your apps twice, once for KDE and once for GNOME.

And then there's http://www.islinuxaboutchoice.com/

Must ... Not ... Have ... Choice

Posted May 9, 2012 9:44 UTC (Wed) by robert_s (subscriber, #42402) [Link]

"the people that claim the Linux desktop will never get anywhere bcause you need to decide between 25 distros or DEB vs RPM. Oh, and there's the people that claim it's bad if you need to write your apps twice, once for KDE and once for GNOME."

Well these people clearly don't know what they're talking about so I'm not worried.

Must ... Not ... Have ... Choice

Posted May 9, 2012 16:57 UTC (Wed) by drag (subscriber, #31333) [Link]

The biggest issue is that right now dealing with dependencies is a huge pain in the ass. There is no formal API that people can depend on. There is no effective documentation or rules that people can learn what to use. A programmer has to depend on guessing, experience, and personal preferences. Sometimes they choose correctly, other times they get burned.

The traditional work around is to have distributions put a lot of manual effort into plotting out dependencies and careful package creation. This makes it easy for end users. Unfortunately this is crippled by the massive amount of duplicate work each distribution must perform combined with the lack of manpower.

Effectively it's people throwing lots of hours and effort to work around technical limitations that people don't want to address in the platform.

The upstream application programmer knows most about the requirements of his application so, ideally, he should be the one building the packages and outlining dependencies. And users should be able to go out and download packages from different sources and be able to use them without fear of breaking their systems. Distributions should still collect packages and present them, also and work with upstream to correct packaging issues and bugs and such.

But all of this requires doing things like establishing 'layers' in the platform, cooperation between distributions, formal set of API requirements, and testing and so on and so forth. Nobody wants to do that, I guess.

Must ... Not ... Have ... Choice

Posted May 9, 2012 17:54 UTC (Wed) by jedidiah (guest, #20319) [Link]

> The biggest issue is that right now dealing with dependencies is a huge pain in the ass.

Nonsense. Package management pretty much eliminates that completely. It's not 1998 anymore. Even if I decide to build something from scratch, it's pretty trivial to resolve dependencies with the available tools.

Must ... Not ... Have ... Choice

Posted May 9, 2012 19:01 UTC (Wed) by drag (subscriber, #31333) [Link]

> Nonsense. Package management pretty much eliminates that completely.

It's NOT a solved problem. It's barely even addressed by Linux systems.

Because if I want to install a application binary and it's not pre-packaged by a distribution then I still have to go in there and read the documentation , run 'ldd' on the binaries and jump through a bunch of hoops to get anything done.

Must ... Not ... Have ... Choice

Posted May 9, 2012 19:53 UTC (Wed) by job (guest, #670) [Link]

The problem with installing third party applications are far wider than that. You might even find that your release doesn't offer the required version of some library, or that it is mutually exclusive with another one (as in, "you may have pulseaudio, but not together with the old version of glibc").

Must ... Not ... Have ... Choice

Posted May 9, 2012 20:50 UTC (Wed) by drag (subscriber, #31333) [Link]

Yes it can be very irritating. It's enough of a problem that it's really rare that I will bother installing anything that is not packaged by my distribution (or from repositories made specifically for my distribution) because of the difficulties.

I spent many unfortunate evenings struggling with doing things like trying to use python bindings for Orge3D or something like that. Many hours trying to figure out the magic combination of compile options and dependencies. Many dependencies needed to be compiled and copied to the system. What made it terrible was that I was just trying to learn this stuff.. I had no idea what to expect when it worked so I had no idea if what I was doing was correct. When a test failed, was it because I did something wrong or was it just because it is using something that isn't supported yet?

Meanwhile if I was using Windows XP I could of had everything installed and running correctly with about 15 minutes of effort.

It was maddening that open source software developed by people who believed in open source software most of whom used and programed in Linux... was pretty much unusable in Linux, but trivial to use in closed source operating systems.

I saw this again and again and again. Mostly with games or game libraries and such, but it is very common problem with all software on Linux.

It's a bit amazing to me that people in the community can easily see the wisdom of having a strong Linux API/ABI for userspace and can see the wisdom of having POSIX and adhering to standards and whatnot... but totally balk at the idea that Linux desktop should need anything higher level then that. That all problems can be solved by distribution using brute force labor to conform software to their very specific implementation decisions.

Must ... Not ... Have ... Choice

Posted May 10, 2012 7:10 UTC (Thu) by ssmith32 (subscriber, #72404) [Link]

> Meanwhile if I was using Windows XP I could of had everything installed and running correctly with about 15 minutes of effort.

That's not Linux, that's Ogre3D: they have packaged their library for windows, but not for Linux.

Which it not surprising, given the Ogre3D community has a strong windows preference. Which again is not surprising, given the gaming community has one as well.

And, yes, I have used Ogre3D on Linux - it wasn't so bad, but it does come with a strong windows community around it, and not a Linux one.

I've actually had the opposite problem: I just wanted to play a song at a certain time in the morning: since the tools needed (mpg123 and crontab) are trivially available on linux, it took only a few minutes there. On windows it took HOURS of searching around (no I'm not downloading random spyware junk from download.com) on the microsoft site, downloading a WGA application, having it break, fixing it, finding an alarm clock program, fixing it...

So it's not really a "linux" problem: just a problem with the software you want to use. It could go either way.

[OT] windows task scheduler

Posted May 10, 2012 9:51 UTC (Thu) by cortana (subscriber, #24596) [Link]

Out of interest, what was wrong with using the Windows Task Scheduler to open the MP3 file at the desired time?

[OT] windows task scheduler

Posted May 10, 2012 19:46 UTC (Thu) by JanC_ (guest, #34940) [Link]

I suppose what is "easy" largely depends on what you are used to... ;)

But even better: Windows includes an "at" commandline tool to schedule this (if one prefers that over a GUI).

Must ... Not ... Have ... Choice

Posted May 10, 2012 7:02 UTC (Thu) by ssmith32 (subscriber, #72404) [Link]

I wouldn't say "barely" addressed.

If you want to install an application binary that hasn't been packaged, that's like wanting to run an executable for some large application in windows without an installer, or a random Mac binary that hasn't been packaged up.

So you'd have the same problem on all platforms, not just Linux.

Essentially, wanting to run an executable file the has dependencies and hasn't been packaged in some way, and expecting it to "just work" is just silly on any platform.

Must ... Not ... Have ... Choice

Posted May 10, 2012 9:46 UTC (Thu) by cortana (subscriber, #24596) [Link]

The two are not equivalent. As a developer, if I want to "package" my application for Windows I can do *one* lot of work to create an MSI that any user can run to install my program on any supported version of Windows.

I cannot do this for Linux; I have to build the program on a Debian system to create a Debian package and just hope that Debian-derived distributions don't stray far enough from the latest Debian stable release to break my package; I have to create a separate RPM for Red Hat, Fedora, Mandriva, OpenSUSE, etc. Slackware users are out in the cold unless they don't mind extracting the contents of the deb and installing the libraries that it requires themselves. :)

Must ... Not ... Have ... Choice

Posted May 10, 2012 11:38 UTC (Thu) by ean5533 (subscriber, #69480) [Link]

>>Slackware users are out in the cold unless they don't mind extracting the contents of the deb and installing the libraries that it requires themselves. :)

Yeah, but let's be honest: for a Slackware user, extracting a deb is like opening a Christmas present. They really don't mind.

Must ... Not ... Have ... Choice

Posted May 14, 2012 2:19 UTC (Mon) by dlang (✭ supporter ✭, #313) [Link]

or they just use alien to convert the package

Must ... Not ... Have ... Choice

Posted May 10, 2012 13:48 UTC (Thu) by smokeing (guest, #53685) [Link]

If I, a developer, want my application reach interested users, I find package maintainers for it, or become one. Debian folks have gone to great lengths making it as simple as possible (but not simpler than that).

No sane Linux user will want anything that hasn't been properly examined, passed QA wrt all dependencies, and packaged by someone competent.

If you want something that's not in your distro, maybe your choice of distro is suboptimal. If you can't find it in any current distro, either you or program author are doing it wrong. Distribution tier exist for a reason.

Gentoo people have a very disparaging word for it: slackwarization. Also, no bug reports will be looked at if your kernel is tainted (notably by nvidia drivers).

Must ... Not ... Have ... Choice

Posted May 10, 2012 14:10 UTC (Thu) by cortana (subscriber, #24596) [Link]

And that strategy works fine if you are producing (1) free software (2) that does not need to be kept up to date.

In the real world people need to sell proprietary software for a living, and the lack of a decent way to package that up for end users to buy, install and use, has kept Linux on the desktop back all these years.

Must ... Not ... Have ... Choice

Posted May 10, 2012 17:31 UTC (Thu) by pboddie (subscriber, #50784) [Link]

And why is that? For years, all we heard from Miguel de Icaza and the GNOME top table was "ISV, ISV, ISV!" We also heard it from other projects who favoured inferior permissive or weak-copyleft libraries to superior copyleft libraries (I'm thinking of OSAF's Chandler product) because of all the ISVs who would be building proprietary software on their work.

So why didn't all those people championing this lucrative ISV ecosystem get something done to make packaging and deployment easier? It's not as if those people had no skills, influence or money to do the work.

Must ... Not ... Have ... Choice

Posted May 10, 2012 22:00 UTC (Thu) by smokeing (guest, #53685) [Link]

works fine if you are producing (1) free software

In point of fact, this is precisely what I am busy with: produce free software (johnhommer.com/academic/code/aghermann). And so also do countless people small and large, for the common good.

(2) that does not need to be kept up to date

Maintainers will do it, for some considerable time even after upstream goes AWOL. If there is a sustained demand, they will try really hard; eventually it will be adopted, or someone forks/starts from scratch an alternative, better package serving the same purpose (the story with stow/xstow comes to mind).

If in all appearances, a project dies and no one seems to care, then perhaps the purpose is no longer valid, or has never been in the first place (think sundry 'ext2 defragmenters' of around 2000).

In the real world people need to sell proprietary software

I do programming full time for a living. The single big product we do, has one big university for a single customer, such that we not so much sell the *product* as, rather, sell our time and expertise to please this single customer. Barring idiocyncrasies of certain middlemen in my case, this model works remarkably well.

You seem to advocate the proprietary, closed-source model instead. Why do it here? I give you some people do closed source, some even meet with success (Angry Birds?). I, for one, in this same real world, don't, neither in my capacity as user nor as a developer, and I don't feel obliged to accommodate the (inferior) alternative.

the lack of a decent way to package that up for end users to buy, install and use

Skype is shipped as a deb file in two flavours, statically linked with Qt and standalone. Just don't tell me it's hard to install a deb. The essential problem, again, is this is not distribution done right.

has kept Linux on the desktop back all these years

I smell slashdot here, thank you.

Must ... Not ... Have ... Choice

Posted May 11, 2012 8:21 UTC (Fri) by jschrod (subscriber, #1646) [Link]

Or you can get an openSUSE Build Service account and let OBS do it for you. It will produce packages from the same source not only for openSUSE, but for Fedora, Debian, Ubuntu, and other distributions, too, see http://en.opensuse.org/openSUSE:Build_Service_supported_b...

OBS is one of the most under-reported good services in FOSS land ever.

Must ... Not ... Have ... Choice

Posted May 9, 2012 20:21 UTC (Wed) by ovitters (subscriber, #27950) [Link]

Try packaging GNOME boxes. The dependency adding is all manual.

I packaged it for Mageia. Noticed missing dependencies because I looked at the proposed Fedora spec file. However, even the Fedora spec file missed some dependencies.

The GNOME boxes maintainers knew about these dependencies of course. But only some is automatically generated.

Must ... Not ... Have ... Choice

Posted May 9, 2012 17:51 UTC (Wed) by jedidiah (guest, #20319) [Link]

If not for "fragmentation" we would all be stuck with some gawd awful CDE desktop. Some of the early X interfaces were truely hideous and it's a good and great thing that someone else was able to step up and offer alternatives.

Must ... Not ... Have ... Choice

Posted May 9, 2012 9:57 UTC (Wed) by nhippi (subscriber, #34640) [Link]

1) because having one good implementation is better than having multiple implementations of varying quality.

One implementation gets many eyes reviewing, testing and writing documentation. With many implementations this works gets scattered around.

2) because most users are unable to make fact-based decisions between the choices and just end up choosing based on anecdotal hearsay.

People just google "best email server for linux", seing a forum post from 2004 where second answer suggests qmail or sendmail. Good luck newbie!

Meanwhile, someone who wants to make linux fileserver for windows machines will only find leads to samba.

3) when each of the layer allows multiple choices, the amount of permutations gets rather extreme, many of the combinations being untested and thus potentially unworking.

Fragmentation orients from the fact that it is often more satisfying to write your own NIH solution instead of collaborating with others as a team.

Must ... Not ... Have ... Choice

Posted May 9, 2012 10:24 UTC (Wed) by ldo (subscriber, #40946) [Link]

Because central planning is better than leaving it to free competition...

Must ... Not ... Have ... Choice

Posted May 9, 2012 10:35 UTC (Wed) by slashdot (guest, #22014) [Link]

Yes, if the central planner has the best possible plan.

The whole point of open source software is that anyone can submit patches and ideas, and thus the plan gets corrected to be the best possible (assuming the maintainers are open to them).

Or you can also see it as competition on small patches and ideas, which is much more efficient than competition on whole implementations, which requires a ton of wasted work.

Again, the whole point of open source is that this model is more efficient than a traditional proprietary free market, as long as there is something that motivates people to contribute despite the inability to sell the software (such as need to use personally, or need to have good software to sell hardware or services).

Must ... Not ... Have ... Choice

Posted May 9, 2012 11:12 UTC (Wed) by spaetz (subscriber, #32870) [Link]

> 1) because having one good implementation is better than having multiple implementations of varying quality.

Ahh, that is why Linus started to contribute to the BSDs in 1991 rather than founding a new competing offspring, I see :-)

> 2) because most users are unable to make fact-based decisions between the choices and just end up choosing based on anecdotal hearsay.

You'll be happy to hear then that they mostly have no choice anyway when buying a new computer. Problem solved.

> People just google "best email server for linux", seing a forum post from 2004

If this is your best approach to fact-based decision making, I am happy that you are not making fact-based decisions for me :)

> Meanwhile, someone who wants to make linux fileserver for windows machines will only find leads to samba.

And they should be using alternatives (if there are any?) exactly why? Remember we should all help to improve the "one true codebase" rather than exploring alternatives according to you.

People do have different preferences and use cases. Emacs works great for me, but I don't think it will necessarily be the best tool for you.

Must ... Not ... Have ... Choice

Posted May 9, 2012 11:22 UTC (Wed) by cortana (subscriber, #24596) [Link]

Well, paranoid GPL-haters might choose to use smbx...

Must ... Not ... Have ... Choice

Posted May 9, 2012 23:33 UTC (Wed) by jjs (guest, #10315) [Link]

You realize that one reason Linus created his own was that BSD (as in without the lawsuits) didn't exist in 1991?

http://gondwanaland.com/meta/history/interview.html (interview with Linus in 1993):

Meta: What is your opinion of 386BSD?

Linus: Actually, I have never even checked 386BSD out; when I started on Linux it wast available (although Bill Jolitz series on it in Dr. Dobbs Journal had started and were interesting), and when 386BSD finally came out, Linux was already in a state where it was so usable that I never really thought about switching. If 386BSD had been available when I started on Linux, Linux would probably never had happened.

Must ... Not ... Have ... Choice

Posted May 10, 2012 5:48 UTC (Thu) by cmccabe (guest, #60281) [Link]

Let's take a look at one of the original newsgroup postings by Linus, announcing Linux.

> I'm doing a (free) operating system (just a hobby, won't be big and
> professional like gnu) for 386(486) AT clones. This has been brewing since
> April, and is starting to get ready. I'd like any feedback on things
> people like/dislike in minix, as my OS resembles it somewhat (same
> physical layout of the file-system (due to practical reasons) among other
> things).

Just the first paragraph mentions two competitors, "gnu" (which would later become Hurd) and Minix, by Andrew Tannenbaum.

Oh nos! Fragmentation! If only Linus had left it to the all-knowing central planning overlords to decide everything.

Must ... Not ... Have ... Choice

Posted May 10, 2012 7:57 UTC (Thu) by anselm (subscriber, #2796) [Link]

Just the first paragraph mentions two competitors, "gnu" (which would later become Hurd) and Minix, by Andrew Tannenbaum.

Let's have a look at those »competitors«:

  • GNU: Not ready. (In point of fact, twenty years have passed and it still isn't ready.) Also, »cathedral« development style. Boo.
  • Minix: At the time AST was on record as not being interested in adding features that would make Minix a serious (as opposed to »toy«) operating system, such as virtual memory. Boo.
  • BSD: Was available but not free (the AT&T lawsuit was still around). Boo.
So what's a hacker to do?

Must ... Not ... Have ... Choice

Posted May 11, 2012 1:04 UTC (Fri) by cmccabe (guest, #60281) [Link]

Linus had a different philosophy than GNU Hurd and Minix. So it was entirely appropriate that he create his own project to express that philosophy.

Similarly, ngnix has a different philosophy than the apache web server (raw speed vs. features). Xfce has a different philosophy than GNOME3. And so on, and so forth. Debian focuses on different goals than Red Hat, or Slackware. Dismissing all of this as undesirable "fragmentation" is just stupid, and that's my whole point.

Must ... Not ... Have ... Choice

Posted May 10, 2012 15:58 UTC (Thu) by Corkscrew (subscriber, #65853) [Link]

One implementation gets many eyes reviewing, testing and writing documentation. With many implementations this works gets scattered around.

You're assuming the total amount of labour stays constant.

My (very vague, unsupported) impression is that labour in open source is proportional to enthusiasm. With the exception of the big prestige projects (Linux kernel, LibreOffice etc), people seem to get most enthusiastic over projects when they feel they're a significant contributor. That's easier in small groups.

Having a competitor is also a great boost to productivity, even if the competition is friendly. It keeps people focused very nicely.

So, basically, even if there was a central planner of the entire open source ecosystem, I think it would be sensible of them to allow multiple implementations. Finding the level of fragmentation that maximises overall productivity is left as an exercise for the interested reader.

Choice to experiment

Posted May 11, 2012 8:16 UTC (Fri) by man_ls (subscriber, #15091) [Link]

Also, smaller projects are better for experimentation. The big projects are less likely to try out completely new features, but they can (and often do) copy them from the competition once they have matured.

Must ... Not ... Have ... Choice

Posted May 11, 2012 8:53 UTC (Fri) by jezuch (subscriber, #52988) [Link]

> Having a competitor is also a great boost to productivity, even if the competition is friendly. It keeps people focused very nicely.

Actually I think it's better if the competition is friendly. Unfriendly competition leads to obstruction, lock-in wars etc.

> So, basically, even if there was a central planner of the entire open source ecosystem, I think it would be sensible of them to allow multiple implementations. Finding the level of fragmentation that maximises overall productivity is left as an exercise for the interested reader.

That's something that is done in software engineering at times: two (or more) teams get the same spec and implement it independently. This is supposed to test all the ideas that many people could have without them going down in design flamewars, and also to have several different implementation with different bugs in them ;) (As a test of interoperability, among other things.)

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds