2012/11/04

A Tale of Two Desktops: Star Crossed Comeptitors

I've been reading a lot of the documentation on Fedora, mostly by Lennart Poettering, who made some comments about the "plumbing" of Ubuntu which got me thinking.

Fedora and Red Hat have put a ton of effort into the internals of their distributions, creating systemd, pulseaudio, avahri.  They push newer lower level tech sooner - they had UEFI up faster, LVM support faster, and they drove KVM hardware virtualization with libvirt.  A lot of the work on btrfs comes from the Red Hat camp, and they really like their low level performance optimization.

Then they take that base of sound concepts and throw Gnome 3 on it and call it Fedora.  And it suffers for it, because after trying Gnome 3 half a dozen times (and my most recent excursion broke my user permissions and got me mad) I can finally call it utter shit.  It is not a tablet OS, it is not a traditional PC OS, it is just a bunch of obtuse ideas that don't work together and make my life a pain if I try to use it.  And that is bona fide failure.

Meanwhile, Canonical is big on the higher level stuff.  Lightdm, Unity, and efforts towards Ubuntu TV.  They use Upstart, but it is honestly a half baked piece of shit that isn't nearly as well thought out as systemd.  Socket activation is amazing, and it really drives me nuts how people who proclaim "super performance needs" dodge using sockets for a lot more work.  Sockets are great for IPC because they are naturally blocking file IO and behave the way you expect when something isn't set up or prepared to handle requests, and that is why systemd is so elegant, compared to the bash script dependency soup of sysv inits or Upstart. 

But Unity is usable.  The dash has grown on me and it is an extremely useful search feature (when it isn't saturing my paltry 350kbps of network with amazon ad pulldowns).  I think the idea of pinnable app panels has won the desktop pretty clearly, since most people rarely use more than half a dozen applications in common use, and being able to rapidly switch them via a panel is a productivity and simplicity gain.  Anything else is easily accessed through super+ 2 - 3 characters + enter.  Crisp.

Of course, Unity might be "crisp" but it is horribly uncustomizable, and the ugly fixed title bar at the top at all times pisses me off.  Whoever thought having window titles there where you mouseover the name to find the system menu, which obscues and fades some of the title needs a firm talking to.  And it is slow as shit.  As Ubuntu is evolving into the de-facto gaming platform of Linux, it seems laughable how bad Unity cripples resource usage.  Also, VNC still doesn't work right even in 12.10.  I'm an idiot, I can't remember the 500+ linux commands needed to sufficiently manage a system from command line (not to mention the 50+ arguments to each command with obscue -f -h -t+ -her --more-minuses-hehe syntax).  I like having guided menus that limit my options, or at least tell me what they are.  I should write a blog about "next generation terminals".  Because ttys are so 1960s.

Point is, Fedora and Red Hat are pushing low level improvements to make stable and fast groundwork for pretty desktops, but don't actively revolutionize such a pretty desktop.  Meanwhile, Ubuntu is going their own pretty desktop route, but keep crap like Upstart around because I-honestly-have-no-idea.  But so much breaks low level in Ubuntu at arbitrary times that doesn't in Fedora it seems obvious where the focus is in both camps.

And if only they got together and got past their differences, the sum of the parts would probably be greater for it.  I'd not want to be cliche with a "why desktop Linux doesn't happen" blog, because it isn't a complicated question.  Desktop Linux doesn't happen because Grannie McBacon doesn't see an Ubuntu laptop when she goes into Best Buy and needs a new AOL machine to fill with viruses and adware.  She sees Windows.  The day of Desktop Linux is the day that Wal-Mart sells a preinstalled Ubuntu machine.  Because your mother can't replace the freaking OS on her whatever she is using, she has no idea.  And she shouldn't have to know, and she won't know, so stop thinking there is something inherently bad about Linux that makes it not work in laptops or desktops, because it does (at least Arch does.. work... Ubuntu is pissing me off with arbitrary parts of its software stack failing all the time).  Windows is shit, and there isn't anything great about it besides the fact that some guy at Dell figured out how to make the drivers work on the XPS whatever for Windows and they just flashed the disks with copies that work out the box.  Windows Vista didn't work out the box, but that didn't end Windows.  Because Grannies around the globe were still buying it at Best Buy.

But the proliferation of the Linux desktop suffers every time I build an OEM machine for my Grandmother, try to throw Ubuntu on it, and since it is a Trinity APU I need a 3.5 kernel at least to properly support it, so Quantal is buggy as shit and breaks all the time (samba still doesn't work) but 12.04 doesn't have a tested backport of the 3.5 kernel to run on it, so I'm stuck on Quantal.  And I get freaking memory errors from fglrx running 3d applications.

So the day Red Hat and Canonical set aside their differences and just agree on a platform is the day the world boils over, but Linux as a whole suffers from how both camps have nice things going for them but they rarely get along.

Also, I don't know if Lennart is a genius or a massive asshole.  Systemd and Avahri are awesome, and Pulseaudio is steaming turds that never should have been (the solution to ALSA being weak is not to frankenstein murder it and rip its guts out while keeping it alive on life support from user space, it is to work on ALSA and make it support multiple channels and per application volume control and mixing inherently).

No comments:

Post a Comment