Reviewing software is one of my hobbies, and in the course of using Linux (dual booting Ubuntu with my main OS- Windows 7) I got to try quite a lot of the Linux/FOSS ecosystem’s software. Now I feel the need to share my findings, just to give newbies an introduction to what Linux has to offer (and save them some time) and because there are some things I want to get off my chest. The short version is that there are some areas where this ecosystem excels, especially if you are a programmer. These programs show that the open source model can produce some very good results, and that makes the “bad news” I’m going to rant about all the more grim. There are some areas where the Linux experience absolutely sucks, and when you see which categories these areas include, you’ll soon realize that this isn’t going to be “the year of Linux” anytime soon.
In this post I’m going to focus mostly on Gnome programs, because this is what I’m the most familiar with and because I’m in favor of GUI uniformity and generally prefer programs to maintain the overall aesthetic of the OS. As you will see in the bad news section though sometimes using a program with an alien look and feel is going to be the only way to maintain some sanity in the Linux world. I’ll mention some KDE apps whenever I can too. One thing I’m not going to do is address the fact that you can load Windows programs using Wine or other emulation software. When you bring emulation to the table the whole discussion about software “ecosystems” becomes moot.
So let’s start with what the Linux ecosystem can be good for:
Browsing the Web
You can get Firefox and Google Chrome on Linux. What else could you possibly want? Firefox will even make itself look native to Gnome, and Google Chrome doesn’t look too out of place either. I suppose you can also install Opera, if you really want to. There’s definitely no compromising here.
email (and calendar)
For email the two most prominent options seem to be Mozilla’s Thunderbird and Evolution. Thunderbird is a perfectly fine tool for doing email, and though it doesn’t come with a calendar/TODOs/Tasks you can install the Lightning addon and get that functionality as well. It’s definitely not as feature full as Microsoft’s Outlook, but it should be good enough for most people, especially if you utilize the active addon community. Mozilla like to support each OS’s aesthetic, so Thunderbird will make itself look native to Gnome, and in fact does a much, much better job at it than Evolution, Gnome’s official default email program.
Evolution at its fugly state. Notice the inconsistent spacing between the top icons, inconsistent vertical padding in the line where Show and Search is, overuse of the color grey, and terrible typography.
To be honest I wasn’t sure whether to stick this in the good news or the bad news section because I’m basically saying that out of the only two options worth using one of them involves a huge UX compromise, but the truth is that it doesn’t matter. So much email work is done inside the browser nowadays that even if neither of these programs works out for you, using Gmail or Hotmail (yes I said Hotmail) is a perfectly good experience.
If you just want to watch some movies, the Linux world has got you covered too (once you manually download codecs that normally come bundled with other OSes that is). VLC is available on Linux, and that right there should be enough for everybody. VLC is an outstanding, robust player, and often succeeds in playing a movie where other players fail. But some of the programs that come (or used to come) bundled with Ubuntu are perfectly fine too. These include Totem and MPlayer. Though I admit I did not give them a thorough testing, they both seem perfectly fine for just playing movies.
Generally controlling your computer
The Linux Terminal is pretty magical. This is definitely one of the best things in Linux. There’s seemingly no limit to what you can do with it thanks to the easy, fluid way in which it allows you to invoke programs and let them interconnect.
Want to install a program? Typing
sudo apt-get install <name of program>
will automatically locate, download, resolve dependencies, and install the program. Have a source tree with hundreds of files and you need to find where a function is defined? Typing
grep –rn <name of function> *
will search all the files and display in which files and in what line does the function name appears. Need help with learning some command? Type
man <command name>
and you’ll get the command’s manual page. Want to cure cancer? Type
sudo –xv cure-cancer *
and it’ll cure cancer (this feature is in pre alpha and will most likely not be available in your distribution).
You can write scripts that can do pretty much anything (for example, an alarm clock that launches a music player with a playlist and gradually raises the volume), and there are many programs in Linux with great command line interfaces (many are even designed as command line programs first), including the device driver system (yes, you can interface with drivers via command line). In short, there’s a reason why so many Linux screen shots have the terminal in them, and while there’s a somewhat steep learning curve to it, it’s well worth it.
Both KDE and Gnome made a (not so successful) effort to make themselves modern desktop environments. While these attempts were met with much criticism (Gnome 3’s usability was criticized by many, and KDE 4 had a rocky start too, and in fact made long time user Linus Torvalds, as well as many others, switch to Gnome), but they did do a not too shabby job at making Linux look nice (although quite frankly Gnome could be much better). But of course the real star here is Compiz, the kick ass program that brings all sorts of cool stuff into Linux desktop, including many useful tricks and customizations. As the following video demonstrates, it can make Linux look outstanding.
Linux is pretty good with all sorts of downloads. Need to download an entire source tree? Most source control systems can be invoked via the terminal, all you need is a link. Need to work with FTP? There’s FireFTP for Firefox or the standalone FileZilla. Bittorrent? Transmission, which comes with Ubuntu is kinda shitty, but Deluge is pretty much a clone of the official Bittorrent client, which is good.
There isn’t really much choice for ebook readers on Linux for the Gnome environment, but KDE has one of the best programs for ebooks I ever encountered. Calibre is not only an ebook reader, but also an ebook library manager, and can do pretty much anything you may want to do with your collection of ebooks: edit metadata, convert to other formats, sync to various ereader devices, buy books, and even fetch news from web sites and convert them to an ebook. What is also great about Calibre is that its creator appears to have a clue when it comes to user interface (something I can’t say about more than half of FOSS projects out there). It’s a little messy and verbose, but aside from that it gets a lot of things right, and it doesn’t look too out of place in Gnome either.
The *nix community dates back to the days of terminals and computers without mice, so text editing is a problem that was optimized the hell out of many years ago, and the options are aplenty.
Most of the hardcore Linux programmers either use Vim (or Gvim), or Emacs. Both are keyboard centric editors that have a huge collection of time saving keyboard commands for moving through and manipulating text, not to mention a variety of plugins that can do anything from syntax highlight and auto completion to bringing an email client and file system browser right into the editor. They both have a very steep learning curve, and will take you months to master, but people who manage to get through it usually say it was well worth it for their productivity. The following videos demonstrate some of the basic capabilities of these editors, as well as some examples of plugins.
Emacs is extremely customizable. Almost every aspect of its behavior can be changed by the user, including the smallest of nuances like what punctuation marks define the end of a sentence. In fact, it’s so customizable that it has its own programming language (elisp), and can run internally programs written for it, which include games, a calendar, a news reader, and more. You can use it to read email, browse and make changes to your file system, edit ASCII art, and lots of other stuff. Yes, ‘holy crap’ is an appropriate reaction.
Emacs is effectively an operating system, which is how Vim fans like to make fun of it, describing it as “a great operating system, lacking only a decent editor”. This might be an overkill for a text editor, but it does come in handy. You can make it act in any way you want to (it is not uncommon for people’s .emacs file, the file Emacs reads to load user customizations on startup, to have hundreds of lines), and with addons for source control integration, compiler/debugger integration, and auto completion, you got yourself a nice IDE.
Of course, Vim has quite a lot of plugins as well, including the above mentioned source control, auto completion, compiler/debugger integrations, and so on, just not the superfluous features and customizations. Some people even argue that once mastered it’s better at actual text editing, and it doesn’t have the reputation of giving you RSI. I’m doing it a disservice now by talking so little about it (it really is a great editor), but I currently use Emacs and therefore am not very familiar with Vim.
If you don’t program or don’t feel like learning how to use these complicated text editors there’s also a pretty good basic editor called gedit. Its keyboard shortcuts are very modern (Ctrl-C for copy, Ctrl-Z for undo, and so on. Emacs and Vim’s keyboard commands are nothing like what people are used to nowadays), and it has some plugins that give it the basic functionalities people expect from a text editor (syntax highlight for example. I absolutely love the Oblivion theme). It’s not a replacement to Notepad++ by any means, but it has the potential to get there given enough time. For really quick edits there’s Pico and Nano, which are keyboard based but very simple editors. At any rate, regardless of how hardcore you want your text editing to be, the Linux ecosystem has the right tool for you.
Despite what some Linux fans might say to you, or the efforts of companies like Canonical, Linux is still an OS “by programmers, for programmers”. This is bad for the average user, but pretty good for programmers themselves. Programming on Linux is a pretty good experience, and while I maintain that being a programmer in the Windows world is better, the open source community definitely gives them a run for their money.
I already mentioned Emacs and Vim as great editors/IDEs, but it doesn’t end here. If you want a true, full blown IDE, you have Eclipse. It’s outstanding for Java, and pretty good for C/C++. For C# there’s MonoDevelope, which is also pretty good. You can get all kinds of source control programs on Linux, and most importantly- git, Linus’ second best achievement after Linux. The Linux terminal and the outstanding scripting capabilities can be very useful, and living in the open source world means that source code is always available. Many tools have good interoperability too, so it is not uncommon to discover that your favorite debugger tools are usable in other environments as well.
I’m sure more experienced Linux developers than me can give more examples. Many of these things are available on Windows as well, but some of them (specifically the scripting and anything terminal related) feel more native in Linux, and there’s definitely a certain plus in how heavily text oriented pretty much anything in Linux is.
The bad news
I wasn’t sure where to stick this section because Libre Office- which now comes in Ubuntu by default- is a capable office suite. You can actually use it and be satisfied feature wise. The problem is that compared to Microsoft’s Office it’s a huge mass of suckiness (I can already hear the Ribbon haters massing with torches and pitchforks behind my door). Libre Office started as Open Office and was meant to be a clone of Microsoft Office 2003. Unfortunately, Office 2003 had a lot of UI defects: it felt overly complicated, it was hard to find stuff, it was hard to get to features, and generally the UI was a mess that didn’t help anyone. …and they cloned these defects as well. I know that there are people who whine about Office’s Ribbon UI (still. It’s been 5 years, shouldn’t they have gotten used to it by now?! I call PEBKAC), but surely even they can’t defend the chaos of crap that is the Libre Office GUI. You open one of the programs and are presented with almost 50 small, unlabeled, mostly ambiguous buttons and toolbars without proper organization. After you’re done scanning all of them and discover that your feature isn’t there, you then need to go to the menus and scan over 200 menu items. I think I read somewhere that this was how they tortured political prisoners in North Korea. They sat them in front of Office 2003 and told them to search for features.
The problem with those Office clones becomes apparent the second you open a document generated by another office suite and see it all messed up. The margins squeeze everything in, formatting gets broken, the fonts change, pictures move on top of other things, the punctuation in RTL languages gets all screwy (and god help you if you happened to intermix RTL with LTR languages, you’ll be lucky to understand half the sentence). What a great experience! But hey, at least it has 7000 buttons on the toolbars for one click access to all of your features, isn’t abundance of buttons the definition of good UI and UX? Open Office isn’t any better, and in fact is slowly dying. There’s KOffice on KDE, but I don’t believe it’s much better. Your best option might well be Google Docs, which isn’t nearly as fully featured, but is at least good enough for simple scenarios. You can try Microsoft’s web apps for Office, but they are frankly worse than Google Docs in terms of features. In short, you can’t win.
Music and general media library management
There are actually many programs for managing music and video media on Linux: Exaile, Sonata, a-tunes, Clementine, Amarok, Rhythmbox, Banshee, and probably many more. Most of them suck hard. Trust me, don’t even bother downloading them. It’s not worth your time. From atrocious interfaces to lacking features, if there’s a deal breaking defect for a media library player- they got it, and in multiple quantities. The only player that is kinda decent is Banshee, and that’s a sad state of affairs since it is nowhere near the quality of Zune, iTunes, or Media Player. It *is* a capable player: it has iPod synching, integration with online stores/Wikipedia/Last.fm/YouTube, the richest selection of media type management (music, video, audiobooks, and podcasts), and even album tiles in the music browser section (you can pretty much forget about iTunes-like “grid” navigation, NONE of the players have such a thing implemented, but Bunshee at least comes somewhat closer to it).
The problem is, as always, the user experience. Banshee’s UI is kinda haphazard in that “let’s solve UI problems by introducing a new rectangle” sort of way, and is frankly pretty ugly (LOL oxymoron). It’s not feature complete either, and some parts of it feel half baked; for example it doesn’t really manage audiobooks or videos, since you can only browse your collection as one huge list, so while you’ll probably discover that it’s OK as a music manager, it leaves a lot to be desired for everything else. Then there are the random annoyances like how just selecting a track, without double clicking it, interferes with playing order (next track is the selected track, not the next track in the album), and a bunch of Linux pathologies like stuff not working (this one is more individual of course). Overall, while it technically gets the job done for managing music, it still feels like a step back, both in terms of the design, and the missing features, and the pointless extra features (yes it’s very nice that it can integrate all kinds of web services, but how about giving me a feature that is not better served by a web browser?).
Rhythmbox is sort of OK too, but it’s effectively a simpler version of Banshee, so there’s no point in choosing it over Banshee.
There is another player out there, that even fixes some of Banshee’s defects, called Nightingale. Nightingale is Songbird for Linux reborn. After Songbird dropped Linux support, some people decided to fork it and continue to make a Linux version. It looks great, in part because it uses its own graphics engine, not relying on Gnome’s GUI, and doesn’t even look too out of place in that environment. It’s also a capable player, and the most iTunes-ish program you may find for Linux at the moment (there used to be a Grid-view addon on Songbird for example. It was buggy as hell, but it was there). On the down side it’s still in development, and development is going slow. There are currently no addons, no webstore support, and it keeps carrying that integrated web browser around, relying too much on its utility if you ask me. Maybe someday it will mature, but for now there’s no media library player/organizer that I’m satisfied with.
Photo library management
If you thought the situation with music library managers is bad, this category is even worse. All the programs suck, and then there aren’t even that many of them. For starters pretty much all of them don’t actually manage your collection. When you have a collection of photos you want to be able to find photos of a certain person, or a certain event, or maybe even location. You will be lucky to find a half assed support for at least one of them in a photo manager on Linux. Most of them don’t have face detection, actual geolocation data, or the ability to join photos into albums. You usually just get plain tags and sort by date, which is not even close to what you need: sorting by date fragments multi date events like a vacation, and substituting people, location, and event tags with plain tags will lead to a tag explosion problem.
None of them help you tag photos, and many don’t even bother to create a proper GUI for it- you have to use menus. Tagging a large collection is a prohibitive chore even with help from the software such as face detection and reading geolocation info, so when you not only don’t provide assistance but actually make it RSI inducing it just becomes unacceptable. Then there are design defects, the let’s-throw-some-buttons-in-there/GUI-is-just-a-map-from-function-to-button UI design, and the typical OSS pathologies like stuff not working. Showtell is the only app with some promise (in the sense that what it does have doesn’t come with 1001 things you want to fix), but it doesn’t really do anything well beside viewing the pictures. It’s pretty low on features.
When it comes to managing your pictures, your only choice is to use Picasa, which has a “Linux version” that is really a Windows version run through Wine. It is behind the Windows version in terms of features, and it doesn’t look native at all, but you will not find an app in this category that does more things right than Picasa.
You can pretty much forget about being a gamer on Linux, unless you don’t mind to wait years upon years until Id Software open sources their latest now-obsolete-by-time 3D shooter. Oh and there’s also a bunch of open source games, which all suck, especially those always-8-years-behind-the-mainstream-in-terms-of-graphics open source shooters. Aside from the very rare gems that find their way to Linux (like Machinarium), mainly because they were developed on a platform agnostic technology like Flash, you have nothing to look forward to.
Advanced creative work
I’m a software engineer, not audio editor, animator, 3D modeler, or designer, so I really can’t tell you if any of these needs are properly met. I can tell you that if you need to create UML diagrams you’re out of luck. I couldn’t find a program that even came close to Microsoft’s Visio, and what I did find was barely usable. If you need a Photoshop replacement you’re screwed as well. The biggest contender seems to be Gimp, and it has one of the most terrible user interfaces I’ve ever seen. It’s packed with features that are useful and yet I can’t bring myself to use it for more than 5 minutes.
I don’t know much about about audio editing but Audacity seems to be fine for basic audio work. There are 3D modeling/animation programs that certainly look impressive, although looks are sometimes misleading (for example Blender looks impressive but I heard from people who know about this stuff that it has a very non-standard user interface and you aren’t doing your career any favors by learning it). Overall, you’re mostly on your own here.
So as you can see, moving to the Linux world will involve some sacrifices, unless you’re willing to use Wine to run Windows programs. If you ask me, my ultimate Linux setup is: Firefox (with Speed Dial, MultiLinks, Customize Your Web, AdBlock, and Flash Block), Thunderbird with Lightning, VLC or MPlayer, Deluge, gEdit for simple text editing, a combination of Emacs and the terminal when I’m doing systems programming at work, Eclipse for hardcore projects and Java in general, git for source control, Banshee for music, and Picasa. I don’t edit graphics on Linux if I can help it, and I prefer to avoid using Libre Office whenever possible.
That’s all. Hope I was helpful.