Fragmentation is not killing Linux



There are thousands of charities. Aids Research, Cancer Research, the British Heart Foundation. This fragmentation is killing our chances of actually curing Cancer. If you funnel all the money from Aids prevention, Comic Relief, Leukaemia and so forth there is no doubt in my mind we'd have cured Cancer by now. If we coerce the scientists working on making Shampoo into curing Cancer we'd have an even better shot. We might even save more lives in the long run. Don't question how useful Shampoo scientists are to curing Cancer, just accept they are scientists and trust me.

I'll leave that insensitive and silly metaphor there now. People often get involved with charities such as Leukaemia and so forth do so for very personal reasons. Perhaps because it has affected them or costed them loved one. My point is that contribution to FOSS software is voluntary and driven by a sense of community as well as personal values.

Trying to force people into roles for a collective purpose is a bit like communism, where the state forces people into jobs to build one super ... ok ok I'll stop it. My point is you can't force people to contribute to projects they don't want to contribute to, so the idea of every distro being dropped to help support Ubuntu isn't going to happen. There's no boss here who can control the whole FOSS development resource like a big company. You just need to put this idea out of your mind. Accept it can't happen.

There is however more to discuss than just "can we coerce people to work together?". The following is just my opinion and I'm certainly open minded enough to change if people bring forward new points, so lets investigate some of the gripes people have with fragmentation.

"I continuously hear on Reddit tons of people saying Fragmentation is killing Linux. I think we all need to have this discussion."


[caption id="" align="alignleft" width="1024"] Arch + Openbox[/caption]

Duplication is a waste of resources


I find it hard to find places in software where duplication doesn't exist. Why the anger at distros when there's the vim vs emacs debate to contribute to? Why even bother developing Firefox when we have Internet Explorer? I believe Free software should compete against itself the same way Apple and Microsoft and Google do. To try and be the best. Linux came from nothing to be the leading open source operating system even with the advent of other FOSS operating systems like BSD.

One of the cool things in Opera was how they added that search box along side the address bar. A small change and innovation in their software and well.. you see that box in Internet Explorer these days. Just because you're small, doesn't mean you can't change the world. A FOSS program can often influence, prototype and prove how good certain new designs are. They can move the large applications into changing for the better. I expect it was Firebug that drove IE to add their rich developer tools.

[caption id="" align="alignright" width="1024"] Arch + fbterm + tmux[/caption]

Just because the DWM Window Manager has fuck all users doesn't mean it isn't great. I think it's essential to my workflow in my job and I don't want to give it up. It's fresh and it's different to me. It's the reason we have tiling features like auto split in KDE. Apple's animations gave way to Compiz Fusion and its cube paved the way to a KWin clone, now destined to take its place as Compiz's (understandably) hacky code base crumbles alongside X11. The competition is good.

Fragmentation has always been a part of Linux's history. It gives Linux strength and understanding why is tricky but finally you get there. Diversity is like parallel trial and error. Rather than Windows XP (good) -> Vista (shit) -> Windows 7 (good) -> Windows 8 (shit), we have
debian good -> ubuntu better -> linux mint good -> arch better
fedora good -> ubuntu shit
debian good -> fedora better

I'm not trying to start a flame war here and I don't to discuss the merits of distros so ignore the actual names of distros above. I'm just making a point that at any point in time there is always a good distro for you!

All these package managers waste effort


Package managers have different strengths and weaknesses and compete in the same way. Here are some links out to different discussions talking about their technical merits:

* http://unix.stackexchange.com/questions/634/what-are-the-pros-cons-of-deb-vs-rpm
* http://lwn.net/Articles/223183/

I'm sure you can find some more links in your own time. I know you're not convinced with this though. The problem isn't two different competing clients.. it's about the enormous overhead of package management right? It's about having to package programs for multiple distributions as if they were totally different operating systems. My thoughts? You can still distribute your application as a source tar file and let the helpers and contributors compile it up for their platform. I believe it's typically as easy dropping a message into the right mailing list. Budding future maintainers are waiting for emails like that. Essentially my first argument is that someone else will do all the work for you.

My second argument is that if Debian has 37,000 packages, Ubuntu 47,000, Fedora 22,000. It isn't obviously that big of a deal. Will hundreds and hundreds of package maintainers really make one distribution better? All this complaining about wasted effort. Which distro among us is saying "hey this is a popular distro but is dying because no one wants to package stuff". No one is saying that. It's problem people think is a problem but in reality non-existent. I expect in the FOSS world, for every 200 users of a distro you get one free package maintainer.

Tools like alien that convert RPM to DEB, PackageKit UI and the fact some distros can feed off the same packages (Kbuntu, Xubuntu etc) show there is the opportunity to spawn your own distro and reuse others hard work.

Finally lets not forget you can run ./configure, make and make install to get more great stuff on any platform!

[caption id="" align="alignnone" width="1280"] Solaris + CDE[/caption]

Software developers have to support too many environments



Let the distros do it for you. Fedora, Debian and Ubuntu are swarming with wannabe package managers who'll take the time to package up your software. Those on the niche distros will still do it for you too, or understand your pressures and install your code from the source. Look at the reaction to Steam coming to Linux. It was packaged for Arch in literally a few hours and made publicly available.

You just have to write to the POSIX or LSB specification to make your software portable. Java came along to solve the problem of "write once, run anywhere" but let me remind you that that has been true of Linux and Unix for a long time. Bash, Perl and Python also carry those benefits. Perl even distributes cpan modules cross-platform outside of the package management ecosystem so you know your dependencies are present.

Given the number of happy Fedora users, it doesn't annoy me that tutorials and guides and so forth all seem to be Ubuntu focused. Even with documentation it, again, feels like a problem that doesn't exist.

There is duplication in just having multiple programming languages. Lets not worry about distros as if they're too big to coexist. They don't suffer from a limited pool of talent in my eyes.

What's the point if all the distros look and feel the same?


Well, KDE looks like KDE. Unity looks like Unity. XFCE looks like Gnome 2. Under the surface it's always the same technology. Boring old iptables, bash, the Linux standard base. Where's the real variation? Where's the real value?


Don't be a Linux fan boy. Be a FOSS fanboy. Expore the wider world. If you remember moving from big ole Windows to little niche Linux, be adventurous and try it again. Distro hop to a new OS. You'll *feel* the difference this time.


Switch the operating system if you want a new experience. There's value there. You can switch the stack up how ever you want. OpenSolaris + X11 + a unique and interesting tiling window manager like DWM. Linux + KDE. FreeBSD and OpenBox.

It does go against my headline admittedly. Fragmentation could kill Linux, I guess.. but it can't kill FOSS. Linux hasn't killed BSD. If you're bored of a lack of variation in popular Linux distros, try another OS. The freedom and the choice exist.

[caption id="" align="aligncenter" width="800"] Haiku OS[/caption]

All these distros confuse me. I just want Linux



For work? Fedora
For home? Linux Mint
For old machines? Damn Small Linux
For servers? Try using a workstation first.

Forget the rest until you've played with one above. Get a feel for what you're really judging. We should be encouraging distro hopping for newbies as a way of gaining exposure. If you've already used one but didn't like it, start a discussion on DistroHopping, browse distrowatch or ask people on IRC about their experiences.
You can't judge the subtle differences of different distributions if you've never used Linux.. so stop asking for a specific distribution and just install Ubuntu.

Fragmentation might negatively impact Linux like it did Unix and BSD


My belief is that the decline of Unix or BSD can be attributed to many factors, not just fragmentation. Issues like Licensing or Mismanagement. The mismanagement link I've just provided is certainly worth a read if you strongly believe it was fragmentation that broke BSD.

Linux has always a myriad of distros surrounding it. Why the concern now? Are we not making progress? I believe we are.

[caption id="" align="aligncenter" width="1366"] Debian + OB/tint2[/caption]

Fragmenting the UI is one thing, fragmenting the entire stack is too much



From what I can tell, X11 is no longer viable for Ubuntu and those wishing to build next generation Window managers for tablets, phones, composite desktops and so forth. It must be replaced. It's a good time to write multiple new replacements. To explore. To see who wins. To get strength through diversity. We need to march forward. As long as one distro works.. Linux will survive. If the other distros lose out, so be it. The users and developers will eventually switch. If they don't, then it shows it still that distro has some merit and worth and value.

We've been arguing about systemd and upstart and how it turns its back on the old days of Sys V init scripts. That Linux is cutting its ties with its Unix heritage. This is true. What we might see is a fragmenting of Linux's user base. The "just want shit to work crowd" following one way and the Unix romantics going another way. The way I see it, those romantics will still maintain the skills to backport the good stuff and are a growing crowd rather than a dying generation.

Forks and classic software will always exist and be supported. Slackware is still going strong!

Stronger support for one distro makes life easier for hardware vendors


We've seen an upsurge in tablets and phone software recently and that hasn't even dented FOSS development. No one is saying lets not build phone apps because it detracts from Linux. Why isn't there a desktop version of Facebook but a phone version? Nvidia has been supported on Linux for as long as I can remember. Certainly before Linux had any concept of being a potential gaming platform for the industry. Why do you worry that fragmentation will hurt this hardware support? My question is that platforms have been a long standing important investment choice for a long time but if you don't think the development into your mobile phone impacts Open Source then perhaps you're thinking in either too small terms or it isn't really the problem you think it is.

We got Flash, We got Nvidia, We got games coming to us from Steam. We've got Spotify, We can watch the BBC IPlayer. What we have at the moment is working. Progress might be slow but we're getting there. Even if we sped up support, those already running Linux can't be running into that many show stoppers. Linux needing to pander to mums and grandads with plug and play and "it just works" is not everyone's goals. I throw myself in learning VIM inside out because the benefits of understanding my editor makes me more efficient. For me I need a customisable Linux so I can optimise my workflow. So I can use git inside VIM with vim-fugative. I need to be able to Ctrl+Z to my terminal and not click around on different windows. I need customised prompts, custom IRC notifications, email filters, the Unix philosophy of small tools being reusable. Pushing everyone to one distro does not make Linux stronger. My hardware is already well supported. What I need is choice. Linux gives me that and it's not worth giving that up.
Another silly thing to point out... the number of distros doesn't impact hardware vendors as, because it's hardware, the code should live in the Linux Kernel, shared by all Linux distros anyway...

If Nvidia were only to get into bed with one X11 replacement, at least it would be progress in the right direction still. They currently only support X11 so what would we lose?

[caption id="" align="aligncenter" width="1440"] FreeBSD + RIO[/caption]

I don't wanna learn yet another package management system



Then don't fucking change distro! No one is forcing you.

Either you consider yourself a professional and therefore willing to learn and understand new technologies (which are actually just a variation of what you already know) or use their GUI tools to avoid learning it.

Summary



I don't think fragmentation will kill Linux. Even if it did, it won't kill Open Source and something will rise from the ashes. Progress in Open Source moves in one direction. It's get better and if it gets forked, it gets forked at it's peak. FOSS Software never moves backwards like Windows Vista or Windows 8 has. Fragmentation won't hurt us. It's just looking for that nirvana of tools for small groups of people who care enough to contribute and try it.

In celebration of the fragmentation and diversity of a rich FOSS market, I've littered this page with images from unixporn :-)