For the last couple of weeks I've been using Linux on my personal PC, so now is a time to write a post about this experience. I've been logging all the good and bad things, and over just 2 weeks the list has got long enough for a substantial blog post, so here we go! I have to forewarn I found a lot of problems – I am going to have to do a third blog post about Windows some time and bring up all the issues I have with that. I haven't used Windows 7 yet, so I'm not in a position to do that (whilst my Mac and Linux reviews are basically on the latest versions).
I install the latest version of Kubuntu (9.10), from DVD, on a fairly old PC. I wanted Kubuntu instead of Ubuntu because I'm in the KDE camp rather than the Gnome camp. Most of what I say would equally apply to Ubuntu though.
Good thingsI am a Linux fan. I wouldn't even consider using Windows for a server unless it was to playing a central role in a Windows-only network. I think it beats Windows Server hands-down, because architecturally it is built for this kind of thing and has a legacy dating back many decades. Windows often makes things unnecessarily complex when it should be simple – for instance, to set some web server setting I would have to do it from a GUI which is saved in a 'registry hive' (if I remember correctly), which is unmodular and cannot be backed up or restored easily (I'm sure it can be done, but not anything as close to the simplicity of backing up Apache configurations) – on Apache you can just use .htaccess files and they are nearly contained along with other web files so your settings generally automatically back up (and there's no centralisation, which is a huge advantage in terms of delegation, backup, site transfer, etc). The mad thing is, in terms of structure, the Apache technique is simpler, better, and easier – I often wonder what on earth Microsoft developers are thinking sometimes.
You can't beat the Linux price – it's free.
And, Linux is libre-free too, meaning if there are any problems, any need for new features, any need to do anything quirky – as long as you have the skills and time, you can get right inside and test and change it in any way needed. You don't need to be a 'trusted partner', go to a conference, join a developers programme, or anything else expensive and unnecessary. You just can't do changes or investigations easily on Windows. If IIS is doing something quirky, I can't step through it's code, and I can't extend it without investing in a full stack of Microsoft software and learning specific plugin APIs which may well not do what I need.
KDE is beautiful. It is probably on par with the mac in terms of eye candy, and I think the only thing lacking is the responsiveness. On the mac everything flows and moves seamlessly - KDE is a bit less smooth - but I'm not bringing this up as a negative on KDE, really it's amazing that the mac does what it does in terms of responsiveness. The fact that there are now Mac-style 3D animations on KDE is brilliant, it must have been a huge effort to get that going given all the systems involved.
KDE is also really very user-friendly now, they should be applauded. I particularly like how they label what programs do on the menus so you can see, because this was a real problem before (Linux apps tend to have bizarre unintuitive names, so it really helps).
I thought it was fantastic when I saw that KDE users can share their themes and backgrounds with other KDE users. It's far better than the approach on Windows where you have to go through ad-laden third-parties to get them, download, fiddle about, then install.
It's great that you don't need to hunt down drivers, my printer worked immediately.
The KDE file manager, Dolphin, actually has a really nice innovative interface – it's good to see they come up with something that suits Linux on their own and not just copy Mac or Windows. I also really like how Dolphin gives a choice of move/copy/link when you drag – it's a good choice, because it's really easy for the user to specify and it removes a lot of potential for problems.
The whole idea of APT is fantastic. I love the APT philosophy (including the equivalent implementation of RPM over yum that Fedora uses) – just being able to run a few commands and having everything auto-install from a maintained, shared, compatible, open and tested sum of all good software, with almost zero effort, is very compelling.
Related to this is how little effort is required in installing extra software, after your core traditional operating system is there. There's no need to go all over the net or switch through a dozen CDs – it can all come from the same Linux DVD.
And one last thing related to packages that I really liked – if I type a command in a terminal and it's not there, Kubuntu actually tells me what package to install to get it. I love that.
Lastly, most major Free Software on Windows or Mac originated due to original efforts on the Linux or BSD platforms. It's kind of unfair that Linux is not gaining all the desktop traction it should due to porting efforts. That said, I am all for porting, it just seems that it is unfortunate it effectively erodes Linux's set of unique advantages.
Bad thingsUnfortunately I came against so many problems using Linux. I'm sure I could fix most of these if I spent enough time. I could even go down to the source code level and debug things in a very direct way. Unfortunately I just don't have days spare to do it, and every time I have installed Linux and tried to use it as a fully-functioning multimedia desktop (about a dozen times over the years) I have had to struggle for days to get everything working as I need it. I'm no noob – I actually administered a network of about 25 Linux desktops for a year, providing support to about 30 users, and managing the servers too – so I know a great deal about the architecture and how to solve problems on it. I obviously have a lot of experience using Linux as a server, as 9 times out of 10 it is what we install ocPortal on.
So here we go…
- I had my Terabyte external hard disk plugged in, and the Linux installer tried to scan it, but really slowly. It would have taken hours if I let it go right through. I eventually realised what was happening and unplugged it, but I don't think I should have had to do so or at least to second guess what the system was really doing to take so long.
- If you go to different consoles during installation (I wanted to see why it was so slow) you see all kinds of errors come up, such as 'Deprecation warnings'. I don't like to see a system so messy under the hood that everything isn't written to the same base-line, it just doesn't give me confidence or make me think 'professionally managed'. I know on a practical level it is 100% irrelevant, but I think it shows a window to how Linux is developed – fantastic developers (that we should all say thanks to) write some code in their way for their own reasons, and then commerce tries to pull it altogether and iron out the visible problems – it is not developed to a planned agenda that Linux or MacOS has. I should reiterate I know there is no practical problem here, it just makes my sense of OCD go off.
- Ejecting does not always seem to work. I tell something to eject from Dolphin, and it doesn't – no error message, just it doesn't work. I suspect the CD was in use, or there was some kind of permission or locking issue somewhere, but it needs to tell me rather than just failing silently.
- Sometimes when I choose restart in KDE nothing actually happens.
- Generally multi-tasking is not handled well in X-Windows: it seems that the KDE taskbar swaps out of memory if memory is low, presumably because it's not been used recently, but this is something that should be kept around in order to maintain basic responsiveness. If something is grinding there's no easy way to kill the process that I can see (no taskbar way). Disclosure: I only have 512MB of RAM in the machine, but I think this isn't the point – failure and resource competition should be handled gracefully.
- When X-Windows (or maybe KDE) runs out of memory it seems to reset, so all my apps close and new ones reload. Swap clearly is not working well (even though I have loads set up).
- If try and open a file it does not have permissions to it complains about 'read errors' rather than 'permission denied' errors. This is likely a KDE-wide problem (although I saw it in Kaffeine), and I think it's really important that error messages like this are specific, as it is a pretty normal thing to get a permissions error when using a desktop (file-based) app in a UNIX environment.
- Every time I log into KDE it needs me to re-authenticate against my wallet. The KDE wallet really should be smart enough (optionally if fine) to realise that if I have logged in, my wallet should be accessible from everything I've white-listed. It's this kind of dum-reapproval that annoyed people about Windows Vista.
- KDE4 eats loads of RAM just in the background print and update notifiers (about 30MB) that hardly actually do anything – because they're written needlessly in python
- If you type 'sudo sh' in a KDE terminal, arrow keys stop working (normally they cycle through past commands).
- If I don't have my speakers turned on KDE tries to uninstall them.
- This really drives me nuts: if I copy some text, then close the app I copied from, that clipboard is emptied so I can't paste. This could have disastrous consequences and is really needless and intuitive – and I suspect it is by design.
- If you try to copy&paste a password field, it seems to just silently fail. Again, no GUI action that was manually-initiated should just silently fail.
- KDE makes display errors if the taskbar is resized (because icons assume they are at the top).
- The package manager suggests things to update, but if you don't want them and untick all boxes and click Okay it gives an error about a bad command line command (as it tries to install "nothing" which leads to a parse error).
- Randomly X won't start up and I need to reset, going in to it's form of safe mode. This morning I had to reset the computer 4 times before it worked (I didn't do anything magic or different the last time, I promise, this happens to me every morning!).
- I have two sound cards (motherboard one, and decent surround-sound one). ALSA chooses which order to load them in 'randomly', so I have to keep reconfiguring the precedence config file. Robbie has actually since suggested I disable the motherboard one in the BIOS, which is a great idea, but this kind of creative thinking should not be needed.
- The mouse I used double-clicked whenever I tried to single-click. This wasn't me misunderstanding how it worked, as I plugged in another mouse and all was fine. Prior to that I tried tweaking all the settings (including the obvious double click speed one) but nothing had worked.
- To get my USB TV card working apparently I needed to install Firmware. However there are various issues here:
- I only found this out by digging through my boot logs (unfortunately kubuntu masks any boot errors behind it's pretty startup screen, so it's a good thing I know enough about Linux regarding where to dig!)
- The idea of installing firmware is very scary– usually that is a significant thing that can break hardware if not done right (or if power fails mid-way), although now I understand that in fact some USB devices routinely download firmware on initialisation, and it's kind of like a hardware-side driver. As a user, I want to see all this explained to me or hidden from me, not for me to have to muddle through it.
- The TV card was not shown as supported in Linux, although I knew it was because it was shown as having a patch made to v4l (Video for Linux). In fact it's a good thing it works, very impressive, but also demonstrates poor documentation.
- To get the firmware I had to download it from the net manually, rename it, and place it in a special directory. There was no real documentation, I had to piece together the process from some mailing list posts.
- Every single time I booted it wanted to run a disk check– even after I allowed a full check last time and did a clean reboot. I had to disable boot disk-checks because it would have taken 30 minutes to turn my PC on each day.
- I had to manually configure my APT settings to allow it to source packages from the install DVD (rather than downloading everything I didn't originally install). It wasn't very easy to do, and I got error messages because the DVD has the package indexes compressed and some of the command line tools don't recognise this format. Really the tools supplied should work with the DVD packages supplied. In fact, I shouldn't have had to configure anything by hand here in the first place.
- Pulseaudio got installed by APT (I think actually at original installation) and resulted in sound hardly ever working in anything in any way. I had to first find out that it was that causing the problem (after learning all about Linux audio), and then remove it. During the research process I learned what an ungodly mess audio on Linux is in. There needs to be one single sound driver system, with one API, and one mixer served by that API – and everyone needs to use just that and nothing else. This kind of thing is difficult to arrange for an open development environment like Linux, but I think it is absolutely critical at this point that it happens. Even after removing Pulseaudio I have problems, such as one program locking the sound – I think if I am playing a video and load up a browser, no sound will play until I stop the video and reload the browser (this is Flash-related, if it can't initially initialise the sound, it seems to give up for that browser session).
- I had big problems with Flash. These problems really rest with Adobe – there is no source code to Flash and they have epically-failed to release 64-bit versions, so to get it working is a challenge to say the least. I had to follow some instructions I found online, which included a script that had about 10 bugs I had to fix (compatibility issues, assumptions, etc), before it would work, and even now I can't use ITV Player in most web browsers for some odd reason (something to do with Flash files linking to other Flash files I think). I could write a whole blog post about my issues with Flash on Linux actually – there are subtle details I don't have time to mention now (such as it being available in APT, but not working well enough by default, and there being package dependency problems). I am really disappointed with Adobe (well, the Macromedia staff must be to blame really – I shouldn't tar people who worked at Adobe pre-merger), and as a web developer I now want to use Flash less than ever.
- Hibernate doesn't work, it causes a crash. And, it cannot be disabled, so I would need to educate any user of the computer not to click it (I have tried all the online tips, none work).
- I got plenty of segfaults from apps. An automatic error reporter like Firefox, MacOS, and Windows, have, would definitely help app developers fix these.
- When I use APT, I often get problems with broken dependencies (i.e. a package was moved or renamed, but the dependencies in APT were not adjusted correctly).
- So many warnings get thrown out by things behind-the-scenes. For instance, when I run gftp from a command line I get three warnings about it's (default) config file.
- Linux has an annoying habit of doing nothing when you click buttons. For example in Kompete (this is the KDE instant messenger app) if I go "Edit -> Properties" without selecting someone, nothing happens. Now I guess this is because I do need to select someone, but there's no error message. This kind of thing happens a lot in various apps. At least this one doesn't segfault when I do it like some!
- Xawtv is the worst 'significant' Linux app I've ever used. It is butt-ugly, and just incredibly buggy. The most obvious of things result in segfault (e.g. clicking a button related to a selection, without making a selection). I don't think anyone has maintained it for many years.
- I have to keep telling Xawtv I use PAL and not NTSC. It just won't save the preference!
- In MythTV I wanted to scan for channels, but the scan button was disabled, with no explanation why.
- … and scanning from MeTV failed, even though I could tell it the exact local transmitter we have
- … so I used a command line scanning tool that produced output that could be fed into MeTV, but it could not parse it (even though I made sure I targeted the right channel format)
- Kaffeine throws up blank error messages if TV signal noise is high (it should just do the best it can, possibly with some small non-modal messages about the problem)
FTP, via Kasablanca:
- Kasablanca does not work with Windows FTP servers (it doesn't recognise the directory listing format). Listings just come through a blank.
- The reported download speed keeps jumping between 0 and 80, due to some measuring bug.
- Kasablanca finished downloading a file and left it's status at 99% (even though 0 bytes remaining), stopping me downloading another file.
- Later it was freezing up whenever I reopen and try and browse to a directory.
- Whenever an FTP disconnect happened, the local folder was reset as well as the remote folder, meaning lots of needless rebrowsing had to happen. Instead, it should have just auto-reconnected.
- It seems you have to upgrade to each consecutive Kubuntu release, you cannot jump releases. This seems silly as APT is so powerful, and it may well be the case that you have good reason to do this. I don't think it's fair to expect people to always install every O.S. upgrade.
People have been promising the 'year of the Linux' desktop for some time now. Unfortunately for Linux, the competition between Mac OS and Windows, and the porting of open-source-software to both has made it challenging for Linux to keep up, and has eroded its competitive advantages. Whilst I think Linux is the best server operating system around, I question whether it will catch up to be a viable all-round competitor to the ever-evolving Windows/MAC OS unless there is massive investment in compatibility and user testing on the whole range of use cases. Unfortunately, it's hard to see how any company could justify such an investment given that Windows and Mac OS are relatively cheap (both get bundled for virtually zero cost to the end user), and that investing companies are incentivised only to make Linux work with their own specific hardware and applications.
All this said, for people who can put in the time, a Linux desktop could be configured to be better than any Windows or Mac OS desktop.