Making Things Easy Is Hard
paul.dunne writes "John Gruber of Daring Fireball has written
a long and considered riposte to
Eric Raymond's recent lament concerning the poor quality of user interfaces in free software.
The core of his argument is that 'developing software with
a good UI requires both aptitude and a lot of hard work.' One point that particularly struck me: according to Gruber, 'Unix nerds who care about usability are switching
to Mac OS X in droves'!"
As a software developer and a person who moved from Linux to Mac OS X. I have a lot of respect for what apple has done. The Apple UI is relatively low in Eye Candy compared to Other OS's Including some Linux WMs, But they make a good interface which I actually am more productive in compared to others. As a software developer I know how hard it is to come up and program some of these interfaces because the way that a normal (non-Slashdot) user does something is different on how a programmer will do something, Plus it needs a LOT of extra error checking which often makes programming it dull. It is not like making eye candy which is kinda fun and looks cool or making the algorithm that does the work because you can marvel at your code. Interface programming seems to get boring and repetitive in style and there aren't many cool showoff algorithms that you can't get a PHD with.
If something is so important that you feel the need to post it on the internet... It probably isn't that important.
"Unix nerds" who are switching to OSX are not Unix Nerds.. they're Unix Wannabe's that like aqua..
chicks dig console...
The road between democracy and tyranny is paved with secrecy in the name of security.
It's not just usability. Making things that go beyond raw utilitarian funcionality is just generally difficult. Look at cars. Making a basic econobox is pretty simple, but making a real driving machine is more difficult and usually costs more. Slapping together an Ikea bookshelf isn't too terribly difficult, but hand crafting an Arts and Crafts style bookcase requires considerably more effort and skill. Yet, somehow when things move into the software realm, our expectations change. Unfortunately, it's difficult to get BMW handling with a Kia budget. Even harder for free.
The Glass is Too Big: My Take on Things
...is the most difficult to discharge superbly.
--Robert Fripp
...Rob
The American Dream isn't an SUV and a house in the suburbs; it's Don't Tread On Me.
First, I admire Daring Fireball in all of it's pedantic glory. Maybe he is just trolling for April 1st.
OSS software is not always easy to use - there are plenty of OSS developers and users who understand this constant plight. This article doesn't seem to recognize that. Gruber always paints with a broad brush and it is hard not to be offended by what he is saying and implying in this article.
Good user interfaces result from long, hard work, by talented developers and designers.
Check this Gruber - Gnome, KDE, Easy Software (CUPS), Freedesktop, Mozilla, Ximian, Trolltech, Activestate, IBM, Sun, Redhat, SuSE, Novell, Mandrake, Debian, Open Office, Apple, and on and on, ALL have talented developers and designers on board. Some are paid, many are not. All of them write, package, repackage, extend, design, evolve, sell services around or just use OSS software. Even if the print setup on Alan Cox computer was too difficult for anyone, it was written by a talented developer and probably looked over by a talented designer somewhere later. It just didn't work this time around. So we move on. We re-examine it. I promise you we didn't need Alan Cox to tell us it needs improvement. Alan Cox is not OSS. Alan Cox problems do not reflect everyone's problems. Certainly not my co-worker who's CUPS install does autodiscover. It even connected to my amazing Apple Powerbook's shared printers running off... CUPS.
There are plenty of failures in OSS usablity. They are being fixed fast (release). The fast (release) is complimented by the fast (performance) of Linux. I use OS X everyday, don't tell me it is more responsive than Linux and it's OSS on equal hardware. You don't have enough proof to refute mine, I don't have enough proof to disprove yours. OSS is also more than just cheap software, it's cheap software that runs on cheap hardware (more on this below). And it will be good. I think it's good right now. Novell and IBM thinks it's so good right now they are rolling it out, company wide.
Talented programmers who work long full-time hours crafting software need to be paid. That means selling software. Remember the old open source magic formula - that one could make money giving away software by selling services and support? That hasn't happened - in terms of producing well-designed end user software - and it's no wonder why....
For example, look at how much Mac OS X has improved in the last three years alone. Even if desktop Linux is improving - and I do think it is - it's improving at a much slower pace than Mac OS X....
Mac OS X printing implementation was built on much of the same software as Alan Cox Fedora install. This is the panacea of the OSS business model - quality free (libre) disparate software, glued together by intelligent programmers. Further I don't understand Gruber's point of view - Apple is making money off OSS and the developers are getting paid. The support and services might be in the form of support software which may not be what the kind of support he was thinking of... but it's still services and support.
This isn't to say desktop Linux isn't growing in use. It is, and will continue to. But it's growing at the bottom end of the market - cheap $400 computers from Wal-Mart. That's a market where software usability is not a key feature.
I'm sorry but Gruber is wrong. It is a key feature in that market - according to Linux developers. Maybe not Apple developers and maybe not Microsoft developers. However, to many, many, many OSS developers, usability importance doesn't scale with price. That's a disgusting, exclusive statement by Gruber.
Posted here tooI run both Linux and OSX, but I'm mostly entirely on OSX now. I like having someone else worry about my security updates for me. I'm willing to pay for someone else to do maintance and assure that my OS is completely compatible with my hardware.
The fact that its really pretty doesn't hurt either.
Tell them what? That OS X beats a shoddy imitation of MS Windows hands down?
"just that it needs to be done, not overlooked."
Well, the point is that it's *not* being done. On this Gruber and Raymond are agreed. The question is, why not?
Setting aside the silliness of fashion, elegant designs (lamps, home furnishings, clothes...) generally cost more than their K-mart alternatives. This is very true in architecture (which is probably the closest physical analogy to SW interfaces. There are builders tossing up 3600 sq ft barns for $140/sq ft. The damn houses have crummy flow, light switches in the wrong place, plumbing running down exterior walls so pipes freeze, messed up rooflines etc. It takes time, talent and forethought to design something well.
Since much of open source is developed to satisfy the intellectual/academic interests of the development team, they often forget that someone else may want to play with their toys. I am sure there are many exceptions to this and these are generalizations, but that's my 3 cents
When the people fear their government, there is tyranny; when the government fears the people, there is liberty.
Today, I saw three Mac OS X gurus unable to connect to a nwtwork printer. They knew the ip and the printer type, but they finally gave up and had to call IT for support.
Meanwhile, I directed my browser to CUPS and setup that printer on my Debian Powerbook, with no problems. Then I did it again in my Mac-on-Linux.
The problem isn't interface...its the inability of some people to understand how computers work. And pretty UI's don't fix that.
Why make things easy when it is just so much more fun to create something that the user has to read pages of configuration instructions then go to a support forum where they can get laughed at and degraded for asking such a simple n00b question?
Software isn't meant to be productive. It's meant to help people get a laugh at the expense of others.
Function before style.
Just a minute. Don't for an instant believe that user interface design is just about style - pretty colours and slick marketing - because it's not. It's just as much about function and utility as any other aspect of software design. It really does belong more in the engineering department than the art department or marketing.
I don't deny that the software foundations needed to be laid beforehand, but he's right on the money when he says that UI development is the hard part.
I'll admit my bias, because I am a professional user interface designer. But I tell you, I'm starting to long to get back to software development, where I have my roots. It's a purer and simpler world.
Accountability on the heads of the powerful.
Power in the hands of the accountable.
That's okay, I just read it as "Interface Engineering".
-- Alastair
I dunno... I hear what you're saying, and the CLI gives you the power to do exactly what you want---er, tell the thing to do...
But I got fed up about the Nth time I had to figure out
...when all I really wanted to do was burn a bunch of files to a CD-RW. Would drag-and-drop really be harder or less powerful or more inconvenient to use than the command line?
I'd kill all of you for focus-follows-mouse in OSX.
No need. From an xterm, enter
defaults write com.apple.x11 wm_ffm true
exit X and restart it. Lo, you have focus follows mouse for any X application. There's a similar setting for terminal, and probably other native applications.
But in a year or two I will need a new computer. My brother took the plunge at going back to a Mac a few years ago (during OS 9, before OS X). It was a nice little computer, but I planned to stick with Windows.
Then came OS X.
Not only does it look good (and the new things like expose have me drooling), but it's got unix under it. It runs GCC. It runs make. You don't need to run cygwin. It's got basically everything that I've come to love about Linux. Don't get me wrong, I'll never give up Linux, but for a main OS/platform, I'm going Mac when I get a new computer.
The biggest thing between OS X and Linux for my decision is the "cohesiveness". I like tinkering around in Linux and looking up how to get things to work. But my classes in college are taking up more and more of my time and so when I need to get a wireless adapter working, setup a remote printer, or anything else I'd like it to "just work". Maybe one or two little dialog boxes, but it's just nicer. I like that I can plug in hardware and it works without having to go hunt down a driver. I like that I can go buy a piece of software if I must. Other than Office, there really isn't much proprietary software I use anymore, but if I need a good web authoring package on Linux, I can find one or write one. I like the ability to go to Microcenter and buy Dreamweaver. There is also the games. There are not many games that I really want to play on the PC any more (consoles fill most of it) but the few I want usually come out on the Mac (and if they don't it's OK, I can borrow times on Windows).
I love Linux, but I don't have all sorts of time to fuss with things. That "just works" is something I really like the idea of. I have problems with things in Windows too, but they don't usually take as long. It's rare these days that I run into a Windows problem that takes me a LONG time that I wouldn't have with Linux.
None of that even mentions how I like Apple's designs and such. And the idea of a G5 processor makes me drool too.
Macs with OS X are the best of both worlds. The unix core and environment that I've come to love, with the ease of use and consistancy that something like Windows can show, plus that loverly Mac hardware.
Comment forecast: Bits of genius surrounded by a sea of mediocrity.
I see a lot of comments glowing with praise for the legendary "productivity boost" you get from using a Macintosh. But how much of this is just hype? I'm not disputing that in several aspects MacOS is well in the lead; file browsing, interface consistency, intelligent dialogs, auto discovery, and so on. But how much of that really adds to your productivity? My belief is, not a whole lot.
Hear me out. My typical use of the computer involves e-mail and word processing. I don't spend a whole lot of time reorganising my files. If the typical day involves 2 hours writing documents, 2 hours reading/writing e-mails, 15 minutes reorganising my files, and 4 hours doing non-computer things like meetings, then even if the Finder made me twice as productive when reorganising my files that's only 7 minutes. I waste more time than that saying hello to everybody each morning.
I can anticipate the first round of angry denials. "But it's not just the Finder; the Aqua interface and Human Interface Guidelines makes you N% more productive for [intangible reason]". Ok, perhaps that's true, but the majority of my time writing documents and mails is spent thinking. I don't struggle with the interface. I click "New Message" then I spend 10 minutes writing then I click "Send". I click "New Document" then I spend 2 hours writing then I click "Save".
The second round of angry denials will probably be "But MacOS makes it easier to add hardware because once I installed [Foo Device] on Linux and it took me 16 days and cost me $1 kajillion dollars in lost productivity". Well I rarely change my hardware, so while I can agree that Microsoft and Apple make it easier to install new hardware than in Linux, it's not as if that really affects me either.
My point is that you spend most of your time inside applications; not the Finder and not the hardware installation wizards. So it amazes me that of the people I know who switched from Windows or Linux to MacOSX they are all using Mozilla or Firefox, OpenOffice or NeoJ, and the free e-mail client with MacOSX which (IMO) is slightly worse than Evolution (eg. it only just got threading). How much productivity did these people gain by changing the OS but keeping the same applications? If you listened to them, you'd think they were suddenly Ultra Productive Super Beings, able to produce documents and e-mails faster than a speeding bullet, but from what I can see they are still spending most of their time inside a word processor or an e-mail client.
So how much more productitive are you with MacOSX? Be honest. Instead of replying immediately with "U R DUMHED, MACOSX IS HEAPS FASTER FOR EVERYTHING", step back and reflect on actual improvements. Are you saving minutes per week? Hours? Nothing at all? In my case it was a few minutes per week and I wasn't willing to lock myself into a proprietary upgrade treadmill to save a few minutes per week.
Elegance means caring about what you create, caring not only that it works but that it works well, caring that other people may work on it, caring that it may be used in different conditions than you foresaw.
Elegance often means choosing simplicity, and restricting choice; choice isn't always a good thing. Better to have one overwhelmingly good way to do something, whether it's a UI method, an API, a language construct, a business process, or a class method, than umpteen bad ones.
Elegance may mean taking time; time to think things through before you start coding, or time afterwards refactoring out ugliness. But that time is well-spent, an investment that's often repaid.
Elegance usually means consistency: uniformity makes things easy to understand and predict, whereas inconsistency draws your attention to trivia, whether in concepts, code formatting and naming, UI layout, API design, system organisation, or whatever. (Time spent getting bogged down in arbitrary differences is wasted time, even if those differences are shiny or buzzword-laden.) But it can also bring power and flexibility.
Some examples of elegance are clear: Unix pipelines, UI tabs, the iPod. But most aren't so easy to spot. It takes some care to recognise it when you first see it, and more to create it, but it's well worth the effort.
PS. As Blaise Pascal said, "I have only made this letter rather long because I have not had the time to make it shorter."
Ceterum censeo subscriptionem esse delendam.
I use OS X. I've always used a Mac because it is the best computing experience, but I BELIEVE in Linux. Linux has the potential to be cumulatively better than any computer operating system because it has potential input from far more skilled people.
The coding has been great, the apps are progressing with amazing pace and people are really using the software for real world problems.
The big problem to this point, as the two articles point out, is that there have been no skilled UI designers or branding managers involved in the development process. The reason is simple - these people get paid good dollars doing private work. They're also particular personality types - generalists who are also perfectionists, big egos with big personal goals. I will humbly say that I'm part of this group and offer the following as some perspective to the community.
I've wanted to be involved in Linux but it's closed to creative idea types. The incentive that drives these kind of people when money isn't involved is the ability to see ideas come to life and until recently, only hard core programmers could have this opportunity. The comparison to Apple is almost perfect. Steve Jobs runs the company. He is the vision and he makes sure everything fits in right down to the amount of shine on the OK buttons. He's not a dictator though, in fact he relishes the input from his team so that he "can make the best user experience there is." Steve Jobs isn't saying this because of some marketing spiel, he truly believes it.
The culture of Linux is fundamentally opposed to allowing one visionary take any kind of control (with the exception of Linus perhaps). There will never be a competing level of usability in Linux as a whole until the environment that can support the likes of Steve Jobs exists.
I think the one shining light of late, as many people are noticing, is the Mozilla project. Somehow there was a leap of faith and the project asked Steven Garrity to take hold of the branding. Already, we've seen some huge improvements because he thinks like a visionary. For me, the proof is obvious through his writings and what has already been accomplished. This is the first project that I've felt I could offer something to and I think that's an important milestone that must be noted by the community.
You have to attract more of these people. There has to be a level of respect and opportunity for idea people from within the programmer community. While many will say that it's up to programmers to determine the destiny of Linux, that will mean that Linux will never compete in the sphere that real branded companies exist in. The types of people with vision are not overlords, or politicians, or slavemasters. They're people who can focus energy in a common cause and accelerate acceptance and usability. In time Linux will have to accept some kind of central direction, or even more limited distros so that there is the opportunity for certain personalities to step forward. I hope this happens sooner than later because I've been waiting a long time for the promise of an inexpensive, open and powerful computer. Apple always strives for those goals, but only Linux can ultimately attain them.
Sort of Like Einstein lost at the train station. You can be so intellegent about networking, ports, protocols etc.
But they have the hardest time understanding simple concepts. That unfortunately reveals itself in the UI of many applications built on Unix/Linux. Of course a green screen doesnt help much.
At least Linux is a movement to shift the Unix world in the right direction, and to its credit Linux is getting better all the time.
I think that what interfaces truly need are simple rules that can be quickly learned, from which one can intuit the more complex details.
If that's what they wanted, they would't lambast the 'vi' interface as the worst text editor experience. Vi is very simple, and quickly learned, and the simple rules build to make more complex ones (for example, if 'foo' is the command to move the cursor to a spot, then 'd' followed by 'foo' is the command to delete that section and shove it in the default buffer.) But people don't want to be able to intuit complex tasks from how the simpler ones work - becuase basically they don't want the 'tree' of learning that that approach creates. They want *all* tasks to be simple in a flat model with no heirarchy. They really hate it when foo doesn't make sense until after you've already learned bar. This is why they hate tools like vi, while programmers love it.
If you know you're going to be using a program a LOT, then the best UI is one that favors long-term application of your learning more so than short-term. If you're only going to be using it occasionally, then the best UI is the one that favors short-term learning more so than long-term application of your learning.
The problem is that short-term and long-term learning of a tool are often in conflict and cannot both be optimized. Hence you end up
with the big fights over what counts as a "good" user interface - where the programmers and the end users can't agree because they don't have the same needs.
That's why the ideal situation is to have open standards for file formats - then the same file can be used by a simple end-user tool and by a complex tool, and each side can use what they want and be happy.
Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.
I don't understand either. I know Linux well, I have been using Debian for the past 5 years ; but now I just love Mac OS X. It never crashed on me (I have switched to OS X 6 months ago), fink is beautiful and apt-get is there when I am too impatient to just wait for the damn package to build.
I never use X11, it's there, but what for. What exactly are you doing with your powerbook that makes you prefer YellowDog?
Last, OS X is not slow. Yes, Apple Mail is slower to launch than mutt ever has been. But Safari is way faster to startup than Mozilla was on Linux... Globally things are differents, but not slower.
YOu know, I couldn't help but read both articles and think "Jesus fucking Christ! Why didn't he do this on Mandrake? Mandrakes printer config tool opens up with a recommended printer and scans everything, and disables what doesn't work. Eric's looking for Mandrake!"
And that's an example of the typical response to anyone who presents a valid, well written problem with linux software. "You tried to get feature-x working with distro-y? What an asshole, you should use distro z as it does this so much better.
That's what pisses me off so much about the linux community, most of the time when asking a question one will be derided for one's choice and then told that another distro is much better.
! news flash ! this doesn't help anyone!
I asked some well writen, polite questions in a linux forum about fedora core and rather than getting the answers, was I derided and astounded by the 'don't even think about it on that, get mandrake instead' or some other distro.
No-one seems to understand that a distro might be chosen for certain reasons and that changing is not an option, things have to be made made to work.
On old hardware i used slackware and that was fine. On my new hardware I've tried mandrake, and I couldn't get certain hardware running. I tried fedora and it worked fine. Hence my choice. Plus mandrake didn't come with some software that i wanted, which would have required a great deal of downloading which on a dialup account (that i couldn't get to work with under mandrake, but could under fedora), was unacceptable. Despite whether the parent is a troll or just some random asshat, the answers to fundamental questions about getting software to work are just not forthcoming from the community. Despite the hatred of windows software that most slashdotters seem to have none can show a piece of software that is easier to setup than it's windows equivilent.