The One in Which I Say Open Source Software Sucks
blog.bitquabit.com
blog.bitquabit.com
One of the signs of a 'not good enough' disruptive innovation is that the rate of improvement of the new thing is greater than existing tech. Windows and Mac were both fairly usable 10 years ago, Linux not so much (for 'ordinary folks' - I was happily using Linux as my primary environment at work in 1997). Linux has improved by leaps and bounds, and will continue to do so. Will it ever surpass MacOS? Maybe not, but will it hit a 'good enough' level? Certainly. It already has for many things. At the last company I worked at in Italy, full time, we had everyone on Linux, including the administrative assistants and call center people.
Twenty years ago, Apple and Microsoft had to convince non-geek consumers that personal computers were worth buying, and so they had an incentive to make their products as usable as possible (given the constraints of cost and technology). Now that consumers see personal computers as things that they have to use whether they like it or not, there's not as much incentive to use the UI. Instead, people shell out their own money (or, if they're lucky, their employers' money) to take "how to use Microsoft Office" classes.
I love the tabbed file system views in Gnome. It's much more comfortable than the Finder. Windows Explorer too is simply terrible. I have been using Windows at work and Gnome at home and can't even begin to decribe all the ways Windows is completely broken from a usability standpoint. People tolerate it because they know nothing different and/or are unwilling to learn.
In many aspects, Gnome and KDE have already surpassed Windows and OSX.
smirk
Also, at least when compared to Windows (where everyone and his brother seems to feel the need for a custom and flashy toolkit, even within Microsoft), Linux apps have mostly standardized on look and feel. Very few people seem to feel the need to reinvent the GUI toolkit and make something that looks completely out of place on Linux (except for the proprietary vendors, like Google, who seem to be ignoring the established human interface guidelines and completely inventing their own look for Chrome)
Finally, as a developer, being able to delve into the source of libraries when debugging is invaluable.
But let's be honest here: whenever a newer version of a software package is released, it can take months before it enters sid on Debian, or in Ubuntu, and these are the better-maintained distros.
And if you want to distribute proprietary software, maintaining multiple packages for multiple distributions and multiple versions, is hell-like.
And regarding interface guide lines, I do not agree that Linux apps have a standard. Quite the contrary.
If you want the bleeding edge packages, you need to install it yourself from an add-on repo (once you set it up, its just as easy as `apt-get install newpkg`. Or, pick a rolling-release distro that caters more towards having the latest packages available, such as Gentoo or Arch.
Why does it have to be like that? Why does Linux distributions fall in one of two categories: either "stable foundation and out-dated apps" or "unstable foundation and recent apps"?
What many people want is a stable foundation and recent apps. This is easier to get with a decentral installation system.
I know that Gentoo, at least, has the facility to accomplish this. They have package masking, so you can specify exactly the packages you want to be kept on the bleeding edge. Taken a step further, you can set up your own "profile", and list exactly what version of each package in the system you want. Arch Linux provides something similar; you can list what versions a package shouldn't be upgraded past in a config file.
I'm sorry, but there's nothing "easy" about having to watch 50 RSS feeds or twitter uses to know when there's a new version of an app I might want, downloading it manually, and clicking next through their installer. Setting up a few config files and doing `pacman -Syu` is orders of magnitude easier.
Also, you seem to misunderstand the point. To have a third kind of distribution -- "stable foundation and recent apps" -- doesn't affect your choice of distribution, at all. When you're satisfied with Gentoo, you simply continue using it.
So where can I get this program you speak of? Why doesn't it exist? (edit: and if it doesn't exist because you don't even have RSS feeds, isn't it even harder than watching those and manually installing?)
[1] http://sparkle.andymatuschak.org/ [2] http://metaquark.de/appfresh/
What happens when the "stable" version doesn't have the same feature as the latest one? For example the latest Python is 2.6 and it's even declared stable, but RedHat comes with 2.4 IIRC. There were quite a few changes between these versions, so you have to use the same version for both production and development.
At least in open source, you can hack it however you want. In fact, its fairly simple to make Firefox use the KDE file picker: Enter "about:config" in the address bar, look for the "ui.allow_platform_file_picker" key and change its value to "false". ( http://www.gentoo-wiki.info/HOWTO_Integrate_Firefox_with_KDE... )
Edit: I was incorrect, the method I linked won't make firefox use the KDE picker, just an alternate gtk picker. But there are ways that can be found with a little bit of googling.
Open source is bad at usability because FOSS projects are controlled by committees that can't even assign tasks, let alone create and enforce coherent cognitive models and elegant interfaces that express them.
You could have good FOSS usability - if you had a central company driving the development. As in Firefox. It just hasn't happened many times so far, because people are willing to pay for good closed-source interfaces in most problem domains.
I think the concept of designing for usability has just been slower to enter the FOSS world. Only now are open source projects starting to grapple with how you do interaction design on a open source project. But throwing up our hands and assuming it will never happen just because it doesn't always happen right now is silly. How about we start recruiting non-developers to open source projects to run simple usability tests and report on their findings? It's not that developers will never work on usability, it's just that it's a difficult and foreign field to most of us, so we avoid the issue altogether.
That being said, my knowledge is not exhaustive... maybe there are examples that I am not aware of.
Profit is certainly not the only incentive that drives people. Saving time and effort by fixing problems (usability and otherwise) is also a great motivator.
Toss in a lower barrier to entry with open source, and you end up with junk at the bottom. I suspect that if you took the top N proprietary and open source apps, you wouldn't find a usability difference. The average would only get dragged down if you include the half-finished releases of open source stuff that would never have made it to market in a proprietary environment.
In contrast, Closed Source products simply hire a professional interface designer if that's necessary to convince "no-users" to buy.
Apart from those, I would expect most projects would be happy to accept advice if the UID demonstrated competence.
> You could have good FOSS usability - if you had a central
> company driving the development. As in Firefox. It just
> hasn't happened many times so far, because people are
> willing to pay for good closed-source interfaces in most
> problem domains.
Actually, Firefox was originally started by two guys as a reaction against the centralized development that was at the time occurring with the Mozilla browser. The Mozilla foundation officially came on board later, well after Firefox gained momentum and popularity.Unfortunately the people in charge are idiots with terrible taste, and they've been under siege so long that they're deaf.
There are graphic designers who are graphic designers, and then there are web developers who are also graphic designers.
Have a look at what some "designers" are getting paid on sites like crowdSPRING.com and 99designs.com and it's pretty obvious that graphic designers who don't know code are fairly easy to find.
I think this has been why there's been such a backlash against the freelance sites by the brick-mortar "design only" firms.
They are in no way, shape, or form, ready for the print production environment. Not even close.
It's not necessarily about being "the best", it's about being "good enough". The Gimp is probably there for what a lot of people need.
This is not a question of "best" vs. "good enough" for those who need CMYK and color management. It's a question of "works" vs. "doesn't work".
Conversely, the people who just need to whip up some graphics don't need Photoshop; they have cheap alternatives like PaintShopPro, Paint.NET, or competing lesser-known commercial software.
In the interest of fairness...I just bought Adobe CS4 Web Premium (with Photoshop, Illustrator, etc.). I've been working with the GIMP and Inkscape for a good long while, off and on, and I'm still finding Photoshop and Illustrator to be incredibly hard to use and obtuse. I've been watching video tutorials, reading the docs, searching the web, and tinkering, for a couple of weeks now, and I'm still nowhere near as productive as I am in GIMP or Inkscape. Partly this is just that the Adobe products do more. This is an acceptable cost, to me, but I still find myself feeling grouchy a lot of the time because things do not work as I would expect (not just "as the GIMP or Inkscape would do it", but also in terms of discoverability...for example, sometimes I accidentally break my workspace, or whatever it is called, and can't figure out what I did or how to fix it; you can't undo workspace changes, as far as I know).
Take it all with a grain of salt, as I'm a barely functioning idiot with quite a few products that are supposed to be easy to use. iTunes, for example, is a nightmare for me; I always end up deleting my whole collection either on the device or on the computer or having something else go totally amok and I have to reboot into Linux just to recover all of my data. So, maybe Adobe software is "easy to use" like Apple software is "easy to use", and I'm just an idiot.
Stability of the Adobe stuff also leaves a lot to be desired. It's kinda like Inkscape a couple of years ago, or GIMP ten or twelve years ago (or during the 2.0 beta years). Sometimes weird things happen and it just freezes up. This may be the newer Adobe stuff; I'm usually watching a tutorial video when it happens, so maybe Air or Flex or whatever is to blame, rather than Photoshop or Illustrator. But it happens a lot when I'm watching those videos.
My experience with GIMP is none, so I'm not exactly qualified to comment, but Photoshop has to be one of the biggest usability nightmares on the market today. There are strange restrictions and ambiguous error messages that don't make any sense for the novice. Once you get more comfortable with Photoshop, you realize the power and flexibility of it, but it takes a while to get there.
As someone that spent a good long while being frustrated by photoshop, I can't imagine GIMP actually being harder to use.
I haven't found a single task where GIMP is less obnoxious. Most of the time I give up -- sometimes I'll try to use ImageMajick or PIL, other times I'll get a Mac or Windows box with Photoshop or Paint.NET
I can't agree with you on this one. I think you're guilty of believing intuitive means "what I'm used to". We all are to one degree or another, which is why I made a point of mentioning my many years of using GIMP vs. being a beginner with Photoshop. Nonetheless, the learning curve in Photoshop is very steep; I believe steeper and longer than GIMP. Yes, it's definitely a more powerful tool, which is why I bought CS4 recently despite being comfortable with GIMP/Inkscape and able to product most things I've ever needed to produce with just a few minutes of effort (except ai and psd files). But, nonetheless, even just doing basic image editing tasks, Photoshop is pretty hard to use.
I think the only real conclusion we can come to is that complex software is hard to use for beginners.
I used GIMP and several generations of Microsoft products (my family had a MSDN subscription) before I figured out Photoshop at all, and the difference is night and dusk (PS is no usability king either, just not dogshit). There's tons of opportunities for improvement over PS, but GIMP takes none of them and instead does a bunch of stupid MDI shit.
Interestingly, I find the opposite holds true for Illustrator/Inkscape -- I am baffled by Illustrator, and have never met someone (even digital art faculty) who could really wrap their head around it, much less show me the way. It's CAD-tool bad! Inkscape is awesome, and not just compared to AI (though for the first several years it was ridiculously unstable).
I think most designers I've met know what OSS kinda is and are always looking for tools to improve workflow - they just want tools that work. Last time I checked out Gimp it still didn't support adjustment layers for non-destructible editing, which is pretty much a show-stopper.
Packages get used when they lead the way in a given field, most of the OSS design apps I've seen are just playing catch-up.
So which is it? Gimp isn't good enough because it doesn't provide feature for feature compatibility with PS or because it doesn't do something different? You just claimed both. It has a different workflow than PS so yeah as long as you try to keep using it like ps it is going to compare poorly.
You can't advertise without doing some marketing work. Free Software projects have to figure out who their target markets are and cater to them. GIMP is the best example because it could be split into a few different versions; one that's suitable for Photo Shop users, and another that's useful for people who haven't been "tainted" by Photo Shop.
There could be tutorials and books that make it easier for Photo Shop users to use GIMP.
If there was some cash, you could do the sleazy thing and pay people to use the GIMP when teaching graphic design classes or whatever. Heck, you may not have to pay them at all if you can convince them that the price of $0 makes the GIMP better than Photo Shop.
Time and time again, Gimp has proven to me that it's not the tool for doing anything but the most basic editing. I want to love it, because it's free, but I don't have the time to waste when it eats my drawings.
What could really help would be a gallery of stunning art created with only open-source tools; the trick there is teaching the artists to use the tools and making it worth their time to do so...
On the other hand, an open source webserver or programming language, in which the user is a programmer by default, is much more likely to get fixed.
And honestly, what is your average open source developer more interested in: GIMP or Apache?
Secondly, so we've admitted that non-company-backed open source projects can have good code, making for a good backend. So the economic model does work. What we need now is for more non-developers (UI designers, artists, etc) to join this movement. I think that it's slowly happening. Tech savvy ones would be more likely to join, and as it becomes more and more inviting I think the less savvy will join as well. I can't think of any specific reason this economic model applies to developers more than others, so I think that over time, UI will become good for the same reason the code is good.
The point of the article is that, so far, open source only works when there's a company behind it, and companies are structured the way they are, I would argue, because of their profit motive.
On one hand, I can see how putting it there makes a unified update system possible.
But the system does nothing for me in helping me discover what I need. To learn of the existence of a tool, I still need to stumble across it from a user recommendation or web search. From there, in Windows I just download and install.
But on the Linux platform, I get lost in all the various repositories available, each of which has multiple levels (I forget them specifically, but I remember something about "universal"?). And god forbid that the necessary repository isn't one of the standards (as I had to deal with when installing XBMC); finding and setting up the public keys is like root canal.
The flip side of this, uninstalling software, I haven't figured out at all. It seems that doing so doesn't actually delete the deadwood, but I happened somewhere on a command line way to tell it to clean up. I remain confused about how to specify precisely which packages to uninstall. The way they're built into dependency blocks, with optional recommended pieces, on the installation side is great. But I don't see at all how to determine the root package of something I don't want anymore, so that all the children are removed as well. And I really don't get if or how it determines which shared, possibly optional packages, will stay or go.
So I think that this is precisely what the OP is referring to. As a developer I can appreciate the benefits of the Linux repository system. But as a user of it, It's hideously unfriendly.
I agree that finding the right tool is sometimes hard because there are so many options. My general rule is open up the package manager (System->Administration->Synaptic Package Manager) and search for what I need. Then I google the 3 or 4 options and see what people recommend, and just install that one.
I just let Uninstall do its thing, if it misses a few pieces it doesn't really matter. If it really bothers you just use Purge instead of Uninstall.
As for repositories, again you are overcomplicating matters. You really just need to know if it is in the repositories you have connected or not, you might have 40 repositories by default but it doesn't matter which it is in to you. I generally add 1, max 2 repositories to my machine but thats it.
You also don't need the public keys, you can just hit YES when it asks if you want to use it, though I am sure that is not recommended. Generally the instructions just include a command to copy and paste into the command line i.e. Medibuntu's instructions.
For those who have been using unices for many years, it is difficult to remember the challenges of a switcher. I've been using Linux for 12 years, but I have constant reminders, because I'm a CTO, and have to support the end users who are coming into a new OS environment. When you, who have all this stuff in your head, trivialize the new users legitimate challenges, you are part of the usability problem, not part of its solution.
If OSS projects were able to motivate developers to work on the boring stuff like graphics and layout, the apps would look a lot better and adoption on the desktop would certainly shoot up.
It's not a clusterfuck, you just have business people who need to have support 24/7 from people with full time intimate knowledge of the product.
But for what it's worth, after a few grueling days getting the p.o.s. up and running, I was shocked to have all the UI fluff my macbook has, plus the infinite list of other great stuff that's inherent to Linux.
The moral? Just shrinkwrap all OSS with a CS degree holding nerd who has a couple days of free time.
1. Someone still makes non-standard cd-roms? 2. Someone else still buys them?
After learning you are person #2, why would anyone ever trust any other judgement you make?
See what I did there?
People who complain about FOSS community's "attitude" should really check their own sense of entitlement. We are talking about you getting something FREE that costs hundreds of thousands of man hours to make. If it takes you more than one try to get it to install then think of that as the cost to enter instead of the $150 you pay Microsoft
(incidentally Windows suffers similar problems on my home desktops SATA controller as you describe having under Linux, it is not a Linux thing it is a shitty hardware thing).
The argument isn't whether or not Linux is useful to a bunch of nerds, myself included, or whether or not I should kiss rms for bestowing this gift unto humanity for free. It's whether it's competitive against its better known closed source counterparts on the Desktop. And you basically answered that question in your first paragraph.
Please tell me which desktop you mean. Do you mean the home desktop? Or perhaps the administrative assistant desktop that needs access to the calendar, word, and email, (maybe the web too...). Perhaps you mean the desktops of the engineers, using autocad and a pile of specialized tools. And so on.
Each of the above has different needs (perhaps even vastly different). A smart consultant/company/etc would go ahead and stop trying to use the same tool for every job. Some of those environments could probably switch to linux, and after a couple of months of "getting used to it time" everything would continue on as if nothing happened.
The point is that "the desktop" has always struck me as a strawman to begin with.
My girlfriend and parents prefer it too. If your entire interaction with the computer is through Firefox, a music player, and Office like it is for them, OpenOffice is actually closer to what they know than the "new" Office 2007. Subtract out viruses, add in never needing drivers (how do I make my printer work? just plug it in), and they are much happier under Linux than Windows.
I've installed it for a lot of people and there are basically 3 periods. 1) Installing (which turns a lot of people off if they can't get it right there). 2) Getting used to it (which basically is people learning it and finding out its not that alien) and 3) Preferring it.
I have yet to find someone who didn't get to stage 3 in about 6 months. You don't get it at first but eventually you go back to windows and start looking for the 'Always on Top' checkbox or you have a popup during a presentation and say, why the hell am I paying for this?
After reviewing the facts as they exist in this world, why would anyone have trust your reasoning or logical skills ever again? Moreover, given how important logical reasoning is to the computer programming, why would anyone ever trust your computer programming skills ever again? Finally, given how important computer programming skills are to being a computer geek, why would anyone ever trust your geek cred ever again?
See what I did there?
After naming an asian company, then stating some vaguely related nonsense about talking inanimate objects, I will now imply there is some sort of link to your sex life: you are impotent.
Despite your pretense of cleverness, I did in fact see what you did there. You pretended that my ad-hominem attack, which trivializes his judgement based on my disbelief of the existence and his subsequent buying of some obscure hardware invalidates his sweeping generalization about an entire industry (an argument silly on its own since driver problems are a universal issue), is somehow the same type of ad-hominem attack as stating random unrelated facts and listing the implications of poor reasoning, reductio-ad-absurdum. Well sir, you are wrong, my blatantly ad-hominem attack (which is pretty absurd in itself) is not the same as your poor attempt at using a witty question to counter it.
Edit: the above run-on sentence is intentionally confusing and absurd.
Installation is an obstacle for linux adoption, but it's not (entirely) because the installation process is broken. It's because Linux doesn't have the OEM distribution model that Microsoft does.
I don't think this refutes anything you've said, I'm just pointing out that it is more than a software issue.
It's fairly common for the CDROM in an 'enthusiast' desktop to be attached to the single PATA port on a secondary controller.
The key problem isn't if an application is open source, or even it's usability - it's the incumbency problem.
Name one general consumer application for windows which wasn't being used ~5 years ago - even if it is non open source. I can only think of Firefox, games, and maybe some IM client software.
Even usability disasters (eg Vista) win huge numbers of users when they are the default choice.
When new niches open up (eg, web applications), open source apps have proven to be just as usable as commercial apps. Eg Wikipedia and Wordpress.com are both in the top 10 sites world wide, and both are open source (ie, the apps themselves are open source, not just the infrastructure software).
I am a pretty experienced designer focusing on interface design and have tried a couple of times to get involved in these kinds of projects.
But what often happens is that they coders don't really want to have designers involved before at the very end where needless to say the software suddenly dictates the experience.
It's a perfectly solvable problem and have nothing to do with OSS as such but the same thing that hit many big corporate projects.
You decide the platform before you decide on the product.