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.
To quote the article:
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.
Just repeat after yourself: "There is no such thing as redhat, there is no such thing as Redhat."
True, Redhat *sells* boxes of software. But what you're getting for your money is the support that comes with it. Right?
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.
Oh really? So tell me, is Walmart a store that techies currently shop? Cheap $400 computers *are* meant for the non-technical type that wants the cheapest computer they can possibly afford. Typically, people who use their computer more tend to want something a little better. Either that, or build it themselves.
UI development is the hard part. And it's not the last step, it's the first step. In my estimation, the difference between.
He might be talking about making a desktop for linux, but he's missing the big picture. Before there was Desktop Linux, there was the kernel itself. Function before style.
/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i
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'd kill all of you for focus-follows-mouse in OSX.
The lack of focus-follows-mouse completely blows away any other "usability improvements" in OSX.
Hopefully, I won't accidentally type my root password in here because I forgot to click on the Terminal window before entering it.
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?
This article, and the one it refers to, commit some basic mistakes.
One is that by imitation one is stuck in underachievement. Not so, everyone learns by imitation, even the few ones who rise to geniality.
Other is that the GNU/Linux desktop is not maturing as fast as proprietary ones. This has not been my experience. Sure MS Windows has matured a lot since MS Windows 1, but that was a long time ago; most interface improvements came in the MS Windows 3.11 to 4.0 (AKA 95), and since them it has basically stagnated. Mac OS X was a huge improvement in both polish and underpinnings from Mac OS 9, but not in usability. On the other hand, Gnome 2.6 for instance is so much better than Gnome 1.4, and continues to improve.
Finally, he assumes there are no companies behing desktop GNU/Linux. Hasn't him ever heard of Novell, IBM, Sun, HP and their backing Gnome, contributing usability studies, guidelines and improvement to it, and taking part in the Gnome Foundation?
I guess KDE is not much behind if at all.
Leandro Guimarães Faria Corcete DUTRA
DA, DBA, SysAdmin, Data Modeller
GNU Project, Debian GNU/Lin
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.
I'm actually going at things from the other direction. For most of the time I was in college I was a GUI snob and preferred things like the NeXT and Mac OS GUI's over the power tool OS's (Sequent and IBM Unix). True, I have a Mac OS X box today that I use a lot, but I find myself looking longingly over at the Linux side of the world and I'm even prepping a couple of spare boxes that I can use just to toy with Linux.
I used to be a HyperCard wizzard, a FileMaker consultant, and an AppleScript guru, but lately the limitation of these tools is really chafing against me. I've found it necessary to learn C. Of course I've tried to learn Cocoa and GnuStep but it's not nearly as easy as what I'm able to whip up with the kindergarten graphical tools. But now I've started really understanding the elegance of pipes and the simple syntax of C and the GUI things are really getting on my nerves.
There are still many things that I hate with the experiments that I've played with Linux. I despise all of the confusion over the package managers and libraries (I just don't understand it). And I get frustrated by the way one handles memory management in C (though I do understand why one do it; it's just like filling out my taxes each year... frustratingly monotonous).
I know that the way this topic started off there will probably be a slew of flame wars starting from people who feel that the integrity of Linux and BSD has been insulted by saying that Mac OS X is easier. I'm not interested in those flame wars but if there are any lessons that can be learned from each camp, there could be a really good symbiosis that comes from Linux users wanting more simplicity and Mac users wanting more power.
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.
I am sure there was some good things to be said in this article, but I get kind of pissed off when I read crap like this:
(Side note: parallel port? What year is it in the Raymond household?)
You know, we keep complaining about "attitude" taken by some of our open source comrades, and this is precisely the kind of crap we don't need being written. I still have a cd-rom drive that connects to a special connector placed onto an old ISA sound blaster that I also still have. It isn't actually connected, but the wonder of it is that LINUX STILL SUPPORTS IT.
People who come off with this "only use the latest" attitude really annoy me. A LaserJet 6MP is a very respectable printer. Parallel ports are still fast and reliable. Not everybody feels the need to upgrade to USB 2.0 printers just because that is "trendy". People like me, who take good care of their equipment, tend to have legacy items that ARE STILL PERFECTLY GOOD lying around. And furthermore WE LIKE LINUX **BECAUSE** of its EXCELLENT support of older hardware (although parallel port printers aren't exactly old).
Debate is a good thing at any venue, but this sort of Red Herring / Ad Hominem attack is *NOT* constructive and makes us look like a bunch of infighting children.
Education is a better safeguard of liberty than a standing army.
Edward Everett (1794 - 1865)
Usable for me is being able to read the man page once, write a script to automate it, and never have to look at the damn thing again
Cool, glad things are working out for you, but sadly, not everyone defines 'usable' in the same way. Sometimes 'pointy flashy clicky things' can get a one-time or rarely-performed task done quickly. Sometimes the ability to quickly do one rare task through a GUI without having to reference a bunch of docs is just as important as the ability to repeat the same task quickly through a script or CLI.
The problem with open source development is that computer geeks are attracted to it. not other kinds of geeks (design geeks, graphic geeks, font geeks, even marketing geeks). The way to attract other kind of geeks to something they aren't innately attracted to is to offer them money. Something that a commercial, closed-source shop can do. Open source software can have a much harder time doing that (of course its not impossible).
That's why the core of linux is rock-solid. Its computer geeks doing what computer geeks love. But when you get to areas where computer geeks are out of there element, there tends to be more lackluster results.
"I'm a Genius!"*
*Not an actual Genius
What a cock-headed argument. Yes, usability means different things to different people. When I grab an instruction manual, I start reading text. Other people start looking at the pictures. Neither is wrong; they're just different definitions of usability.
I don't understand the whole "make Linux easy enough for Grandma" movement, really. I like Linux because it isn't like Windows. Windows' interface is fine for most people, but what's wrong with having an OS for more technical UNIXy people?
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?
Let me clarify for you. It this case, the phrase Unix Geek does not meen a willing enlistment in the Vi/Emacs war. It means someone who recognizes the potential of the availible tools for the platform, and whishes to harness that potential.
I love apache. I love php. I love mysql and postgres. The list goes on and on. I could care less what distro or whatever I run these tools on because in the end, it really doesn't matter. Microsoft has made great strides w/ windows xp over previous releases, but it is too little to late for me to stay with them. I also don't like the direction the secure computing platform is going in (my opinion).
However, I am also a fan of productivity. Certain tasks require a command line input and some scripting ability. Other tasks require a decent gui. Currently, only Aqua is filling this role (my opinion)
I am also lazy. I do NOT want to track packages installed by myself. Package managers were created for people like myself. I will only install from source if the benifits outway the ease of using the package.
In this sense I consider myself a Unix Geek (debate as you will). When the opurtunity arises for me, I will be making the switch to OS X, as I suspect many others are or will be doing in the near future.
Don't waste time... procrastinate now!
The "I'm l33t because I can type command line commands" attitude keeps the Linux kiddies from ever getting a GUI right. The attitude that a GUI is a "front end" will never work well. Everybody competent knows this. But the Linux kiddies don't know any better.
Red Hat is making some progress. But they're doing it by taking Linux away from the kiddies and making it their own. You can't even copy a Red Hat distro for free any more. That's not free software.
Lets look at this from a sane point of view.
Q: How many arch's can you run OSX on?
A: One (PPC)
Q: How many File Systems do you have to choose from with OSX?
A: One, HFS+ (or two if you count HFS, both of which are terrible)
Q: How many desktop UI's do you have available to you?
A: One. Aqua
Q: How "customizable" is your interface (aqua).
A: pretty limited.
Q: How portable is the cocoa framework?
A: oh yeah, its not at all..
Q: How many vendor's do you have to choose from if the one you're with takes a direction that you don't like or can't work with?
A: None.
After you factor in all of these and add other things like major incompatibilities with glibc and bsd based systems you might as well argue that Windows is an excellent system to migrate to in the fact that it has all the same freedoms (or lack thereof). "Free as in Freedom" people.
Now if only we all lived in a communistic society, all the advantages of OSX, Aqua and Cocoa would be relevant..
Mod me as flamebait if you like, but know that you're only kidding yourself thinking that OSX is the answer to UI problems inherent in open source based os's and projects.
As mentioned, aptitude, innovation and hard-work is what we need.. not another wheel..
The road between democracy and tyranny is paved with secrecy in the name of security.
Raymond may or may not be right, but you are wrong. A good UI and good documentation ARE NOT 'tying up loose ends.' If they are left as such, then simply do not happen.
I'm a coder, and my first reaction to being pulled away from coding to write documentation is "Ugh." I'm trying to be better about that. We all need to do the same.
Is UI development easy? Usually Not.
Is UI development important? Absolutely.
BUT... UI work is usually neither the bulk of the application nor the "most important" part.
To abuse the old metaphor:
The gas pedal on your car is important. It needs to function well and be robust, but it is NOT more important than the "back end" stuff like, oh... the fuel injection system. Both are necessary, but the fuel system is more critical.
I respect UI people (I am pretty lousy at it), and try to keep them in mind when developing back-end code. But if I have worked with the UI folks and know WHAT their interface will do, I can handle the heavy lifting (business rule processing) on the back end.
If the UI developer is doing "an entire order of magnitude more work", as the article said, then either the non-ui coder sucks, or the project has been badly mismanaged.
"Faith: Belief without evidence in what is told by one who speaks without knowledge, of things without parallel." - A.B.
Then like the original poster mentioned: you're not a unix geek.
The power of unix IS the console. Security and stability are secondary.
It only has to be done once.
You take an expert in the task - like CUPS printing. He/she sweats blood for one person year to make it easy to use. The job is now done.
Alternative : 10 million people spend 6 hours each to learn how to use it. Result : 20,000 person years wasted.
All this from a web site with what must be a 6 point font and poor contrast (white on grey).
Let's have a look at this argument then:
"The UI really isn't up to standard. If you worked more on it Linux would be great."
"Developing UI is hard. Let's not bother."
Nice riposte there. The ultimate excuse for not achieving the single most important thing in creating a total Linux revolution. The reason Bill Gates is in every home on every desktop. Here it is:
"It's too hard."
Bill Gates has won.
I am government man, come from the government. The government has sent me. -- G.I.R.
Hey, imagine this, troll:
A _NEW OPERATING SYSTEM_ takes TIME to LEARN!
Most everyone who switches to OS X and actually takes the time to familiarize themselves with the way things work find that their productivity increases. Don't confused "eye candy" with "consistency", as a lot of people do. Just because everything looks the same doesn't mean it's gratuitous.
How long did it take you to learn all the flags to ls, cp, ps, netstat, ifconfig, df, du, man, vi, emacs and be able to type them off the top of your head at nearly 100wpm? Let alone the intricacies of being able to bang out a 100-line bash, tcsh, perl or python script at a moment's notice. It takes YEARS, my friend. And I'm not even talking about serious development - I'm talking about being able to organize your mp3s, or something equally mundane.
Hmm, took me the better part of 5 years before I was totally comfortable and at full productivity at the command line. Now, 10 years later, I'm at home in OS X, where the GUI is there to help me get certain things done fast, and the terminal is there to help me get other certain things done fast.
The beauty of OS X is that a 10-year UNIX veteran feels just at home in it as does a 10-year old computer neophyte.
If you can't grasp this simple concept, I suggest you go ditch the Mac and go learn UNIX-like operating systems until you _really_ get it. Because right now you obviously don't.
The dangers of knowledge trigger emotional distress in human beings.
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.
The problem with the software is that the people who work on it think things like:
"parallel port? What year is it in the Raymond household?"
If you want your OS to succeed, then someone is going to work on usability for all facets of it, glamorous or not.
'Unix nerds who care about usability are switching to Mac OS X in droves'
This is absolutely true. If you don't believe it, then you're just needlessly anti-Apple. Myself and several of my friends, us having used Solaris (CDE WOOT) or similar UNIX variants for many years, are now switching to OSX.
What's not to love about an OS where I can have a great web browser, -pretty- window manager, tons of community software, AND comes with vi by default?
# wrote sig.txt, 23 lines, 31337 chars
"Tell them what? That OS X beats a shoddy imitation of MS Windows hands down?"
You know, I just get really sick of shit like that being said. I've always been one for, "Use whatever works." and as such have been platform/program/desktop environment/window manager/OS agnostic for a long time.
Even if KDE is a "shoddy imitation of MS Windows" at least it "imitated" the "up one directory" button unlike certain other frustrating as hell file managers.
My girlfriend uses OS X and she loves it. I use KDE and I've been very, very happy with it for months. They both work. They both work well. For what I do, KDE is great.
I just think it's really poor taste to shit all over other people's hard work just because you're an elitist asshat. I *like* OS X, but I think it's very, very overrated. OS X is far from the holy grail of the UI too, just check google for the number of Mac users that loathe the new finder.
It's good and it has people who like it but come on... you can't make a "perfect" UI any more than you can make a "perfect" dinner or a "perfect" book.
The fact that you got modded "insightful" is sad.
I'm particularly impressed at the ease of configuration of network devices and connections in OS X vs. WinXP.
Is this some kind of sick joke? Of course it's easier, Windows supports 100x the devices that OSX ever will. It's easy to make device-support easy and flawless when *you* control the devices.
The only thing he was right about is OSX geeks' ability to substitute less hardware choice and more money for easy hardware configuration.
"I assumed blithely that there were no elves out there in the darkness"
Familiarity breeds contempt. I'm guessing that you used a "pointy flashy clicky" web browser to post that message, but given that you're reading Slashdot I can accept the point that it's distracting you from getting real work done.
More seriously, though, there are plenty of tasks that are complicated enough that they can't be scripted. My guess is that you didn't rely on a script to post your comment to /., and you probably don't rely on one when you compose email, draw pictures, play music, or organize your pr0n collection. Programs that let you do those kinds of things inherently require a more or less complicated UI, and that means that somebody needs to design that UI, hopefully so that it's easy to use. You can't ignore the effort that went into designing those programs' UIs just because you're so familiar with them that you've stoped noticing. To the contrary- the ability to use those programs so easily that you forget about their UI is evidence that it's well designed.
There's no point in questioning authority if you aren't going to listen to the answers.
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.
I think you've just proved the point of the article!
:)
It's possible to get so bogged down in the philosophy that the higher level goal is missed. Sure having multiple vendors is nice, but all the options in the world don't matter if none of them are the one I want to use.
If there was only PC vendor who sold machines that could run run Linux and all the rest ran Windows 3.1, which would you buy?
Cocoa isn't portable directly, but why do you think that is? It uses things like Quartz that don't have an obvious counterpart on other platforms.. If you really want cross-platform, then use something like Qt or Java. GNUstep implements OpenStep (which is what Cocoa is based on).
major incompatibilities with glibc and bsd based systems
Huh?
As mentioned, aptitude, innovation and hard-work is what we need.. not another wheel..
The difference between open source efforts and Mac OS X isn't hard work, it's philosophy. Apple treats a computer as a whole and complete thing in and of itself. That's how the user thinks of it.
Best Regards,
- Scott
Scott Stevenson
Tree House Ideas
I think the issue is that with closed source development, there is more focus on having on having one single vision for how everything works. One group of people is calling the shots and dictating how they want their software to work, whereas in open source development you have all sorts of groups trying to take the software in a million directions. Consequently, the software doesn't have consistent goals for what it wants to accomplish, other than "it should do everything in every imaginable way that a user would want it to." The end result of this thinking is software that is hodge-podged together with a variety of standards that may or may not be compatible with other software. GNOME does things their way, KDE does it another. Some of the software works together, some doesn't. Massive library dependencies, multiple packaging standards, file structure inconsistencies (some distros install software to this location and have config files in a certain kind of hierarchy, others do it another way), etc.
What OS X and Windows do is have one company providing direction and saying "these are our standards and interfaces, at the very least you can rely on things being done THIS way", which helps usability and development massively. Why is it that with Windows you can almost always (barring certain issues related to the software) install any piece of off-the-shelf recent software without hassle on Windows 98, ME, 2000, XP, and 2003? Obviously there are exceptions, but they are just that -- exceptions. It happens more often than not that you can do this with Windows. Why then, in 2004 are there still problems getting software "out of the box" to run consistently with all of the Linux distributions? Case in point: our product uses InstallShield to do installations for Windows and Linux. On Windows, no problems getting the installer to run. On Linux, the installer works for most of our supported distributions without a problem, but on one distro (Redhat EE 3.0), you have to do "export LD_ASSUME_KERNEL=2.2.5" or else the installer doesn't work. This is some sort of inconsistency with libraries or something, isn't it? Why do problems like that still exist?
I have OSX up and running on a box and I really try and like it... I try and figure out ways to effiently do anything... I try to understand it's astoundingly atypical and anti-intuitive graphics, layout, and organisation but I just can't...
I guess it's just me - lots of other people seem happy with it (and some aspects like it's packages are refreshingly good) but try as I might, I just can't wait to escape to Slackware or XP. *Ducks*
Q.
Insert Signature Here
It's a matter of understanding the user. Instead of having studies on which percentage of users approaches buttons from the left or right, how about an error message that actually indicates what the user did wrong. Most programs I encounter love generic messages. This is of course understandable, it's hard to code a message for every stupid thing a user might do but that is exactly what is needed. A user has more questions then expectations. They _WANT_ to know what's going on. Where did I save? How do I open that file again? Why did this click not work? What happens if I crash, how much work is saved? Instead of assuming that you can make an interface so easy that they will never go wrong, you need to understand what concerns the user has. The error messages should explain what the user did wrong in detail. Date was too far in the future, too far in the past, you didn't select a user, you selected too many users. I remember working on a tiny Java appointment book application. There was more error checking and messaging code then the actual logic code. Granted, someone might say it was a very limited application, but every single user who used it loved it! Simply because I put them in control, and they knew exactly what they did wrong when they pressed a button. There was no feeling of being lost and not being sure of what the magical black box in front of you is doing. No need for technical explanations just say, "You did not select a date within the corrent range (RANGE)" or "Please choose at least one item from the list." Informative messages that understand the user's questions and answer them.
This is a endless discussion. And usually, the conclusion is not there is a best GUI. There is only an average GUI which fit better more people than others. It's not to say others are worst. They are different. If we would think exactly the same we, we would be very boring, but there will be an ultimate GUI.
But, real life is not so simple. Ask some left-handed people...
Achille Talon
Hop!
After reading the whole article, I wonder if Gruber has in fact used any software at all. I also wonder if he knows about anything that's happening with Linux in the news.
ESR's rant made sense. It did have facts, and it was centered around a case study. However, Gruber seems to like abstracting so much that he simply does not mention any software whatsoever!
He simply states that Apple and Microsoft have talent and create good user interfaces and that Linux developers don't. I wonder if he's ever seen a "Aunt Tillie"-esque person in front of a computer. I wonder if he realizes these people exist. I wonder if he's ever used the latest versions of KDE or GNOME. I wonder if he knows what they are....
I suppose my opinion on the essay can be best summed up in Gruber's dismissal of ESR's claims that user interfaces can be improved. ESR specifically details exact changes which would make the CUPS printer installation better. Gruber retorts that user interface design isn't possible without a guru. My point? He takes more time writing an essay on the futility of UI design than it would take to implement most of ESR's UI-improving changes.
Sure, UI design is difficult. But after somebody gave specific UI suggestions, it seems ironic that Gruber would turn around and say that the FOSS community is unable to create good UIs.
Personally, I'm sick of the Linux zealots who think that the future of Linux depends on mass acceptance on the desktop. It doesn't. As long as there are people who like to tinker (and not necessarily "get stuff done") there will be a place for OSS and Linux. Some users/developers may move to Mac OS X or Windows when they decide they want to "get stuff done." and that is fine. There are always the younger geeks ready to pick up where the older ones left off.
All this talk about what OSS should be aiming for is just ridiculous. As if the community as a whole was something coherent and well defined that you can manage or direct. It is chaotic. That is what makes it fun. Linux might make it big on the desktop someday. And that would be cool, i suppose. But if that doesn't happen, no big loss. It works for me regardless.
-matthew
"THERE IS NO JUSTICE, THERE IS ONLY ME." -Death
In my experience, what OS X does well is hard things like detecting WiFi, digital cameras, and any common hardware, but what it totally fails at is easy things, like changing between windows, moving windows, managing files, editing text, resizing windows, minimizing windows, having shortcuts for window operations, having shortcuts for programs, working fast, not changing your keyboard layout with every second click, and other little things like that.
:|
It's very very annoying to use after you get past the wow-factor of nifty animations everywhere, nothing just works, everything needs you to do fifteen clicks too much.
The sad thing is that people are copying OS X just because it looks pretty. I'd rather have a zillion Plan 9 clones than a zillion OS X clones
If he adds a GUI, it's because either he wants to tinker with this GUI toolkit, or he has a specific usage pattern and a GUI suits it well.
He documents it as much as it's minimally needed. He doesn't provide links on how to update your drivers, or how to build an ---insert yours but not his favorite package management tool--- for this application.
At the end when he's done, he releases it with the mindset "Hey I've done something nice, and I'd like to share it with you all AS IT IS."
There's no surprise here if his needs, usage, or documentation don't exactly suit yours. Most nerds tend to be alike, and we can mostly deal with each others' preferences/style/etc., but Aunt Tillie definitely cannot.
And unfortunately, as the article states, it is not trivial to glue an informative GUI to this finished product. The original developer didn't have that interest to begin with.
There are people out there who publish on their homepages their experiences with getting wireless ethernet to work on linux, and some others help other newbies by answering their questions on usenet. However, only few people commit to keeping their webpages up to date with howto's on new cards and drivers.
There are a lot of good people out there who'd like to solve other people's problems. Are there enough to overhaul desktop linux and make it usable by the masses ? I wouldn't know.
The key to doing usable GUIs is to ... design them before doing anything else. This can be as simple as sketching out the screens on pencil and paper, or as complex as gimp'ed-up images of exactly what will be on every screen.
While this sounds simple (and it is), it requires the programmer to think like a user before writing any code. This is important because most programmers think that elegant data structures and APIs is the reason why programs are written, and then the GUI is built to interface with those APIs.
That tends not to work because the programmer has already formulated in his/her mind how the code should work, and then the GUI becomes a reflection of that thought process. Unfortunately, most people don't think of the problem domain in the same way that the programmer does, and the GUI doesn't make much sense.
By designing the GUI first, it not only forces you to think like a user, but it also forces you to mold your code to conform to the GUI, and not vice-versa. And since it's the GUI that most people think of as 'the program', that's the way it should be.
>Think, for example, mail reading and web browsing. Perhaps photo viewing or editing, faxing, page layout, management of multiple login sessions visually, etc.
I'm with you for the web browsing and photo stuff needing a GUI. But I'm a pretty big fan of pine for my email (and latex does some pretty good non-gui page layout). Basically, except for when you really need it (like the photos), command line and shell stuff is always faster once you pass a little learning curve.
I've read long and wide about hackers that love to code, that would give up their life or (involuntarily) sex for coding. Then I find such GUI nightmares as X-CD-Roaster. Things so clearly slapped onto a CLI interface you wonder why they bothered.
So my humble non coding advice is: if you think your code has to be clean and elegant, think the same of your UI. If you must have "code that just works", then do an UI that "just works". Be it CLI or GUI, Do your best..
To end this rant: If you do a GUI, please do study a bit about usability first. I know, it's cool to add another sub tab to make room for hte extra "frobnicate this file" option. Refrain from it. Paraphrasing Havoc Pennington "If your app eats your e-mail, you don't include a pref option just in case someone wants it to stop. You fix it".
"I think it would be a good idea!"
Gandhi, about Internet Security
I am a developer, but what that really means is I spend a lot of time each day basically typing and browsing as well - just in a different kind of editor.
I do think there is a pretty significant OS X performance boost over Windows for such work (I've used XP and 2k and NT pretty heavily). It's not from the mythical "UI Consistency" which I don't believe helps much and doesn't really exist anyway in an app of any complexity.
Part of it is managing files, but that's not even much different.
I think the phrase I would use to describe it is the computer and windowing behavior is just more unobtrusive on a Mac. Expose is a much nicer means of finding windows you want than anything on Windows. The taskbar is a loose-loose situation on Windows for finding stuff - either you have that horrible folding turned on so that it takes you a thousands years to reach you a window you want, or you have Icon Overload. Lots of people mock the dock but I think it's nice to be able to say "show me all the windows for this app" so easily without the folding icon performance hit. It also makes for a better way to start up common things than the windows menu.
Also, there is window behavior. Perhaps this never, ever happens to anyone else, but daily I get modal Windows coming up behind things (outlook is particularly evil abut this) and making me take time to figure out what window is stopping input from all the others (the OS X sheets are a way better way to do modal).
Because I'm at work I have a number of network shares as well, and this always bogs down Windows explorer at work.
I think I would categorize the savings at perhaps 30 minutes over a day of work, but somehow with much less frustration at the computer "surprising" me when I did not wish to be surprised. That helps make the time I do have more productive in a quality sense, which is harder to measure.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Personally, I've switched from MacOS X to BSD, and I'm much happier. I still maintain my wife's MacOS X box, and basically the number of hassles with both machines is about the same. They're just different kinds of hassles.
On the mac, you want to connect and share files, but today, for some mysterious reason, the other computer's pretty little icon doesn't pop up, and you don't know why. On BSD, the hassle is that you have to read a badly written man page to get it set up the first time.
On a mac,the hassle was that I didn't like Apple's window manager, and there weren't any good alternatives. On BSD, I get my choice of window managers, but the hassle is figuring out the format of the rc file for the one I choose to use.
On a mac, the hassle is that a lot of the nice open-source software I want to use hasn't ever been ported. On BSD, the hassle is that there isn't any open-source replacement for certain pieces of proprietary software.
Find free books.
I've ever seen one of my post get the:
Extra 'Troll' Modifier
listed. I guess I pissed off someone. But hey, I guess:
40% Troll
40% Insightful
20% Interesting
means "troll" right...
-dameron
...while performing certain tasks can be faster with the command line (indeed almost impossible without), for the most part, a good GUI can make things much more efficient. The nice thing about OS X is that your CLI is still there just waiting for you to invoke it allowing access to all that UNIXy goodness.
I am but a lowly Windows CAD guy, but that comment strikes me as very insightful. Many CAD programs are so littered with cryptic graphic GUI buttons and flyouts and sub-sub menu items that navigating them is a nightmare. Keyboard shortcuts (or even better, programmable "other hand" input devices) for the most-used commands is the way to go.
two points:
1) I disagree that properly designed software is designed front-end, or UI-first. Such software, in my experience, ends up hard to extend, hard to use in unplanned contexts, and unflexible...
That doesn't mean UI can't contribute to the design, even at the beginning... But you design by datastructures lately, and orient from there, in many modern programming environments(when you aren't flat-out using objects, data structures work quite well). If the UI can store/manipulate the data he needs, in the format he needs, he will usually be quite happy(and won't forget to make his software localizable, currency-converting, language-translating, etc...)
2) Wizards:
Technical users' aversion to wizards is usually misunderstood and I'm not sure the article is an exception. just yet...
Technical users mind wizards because:
1) they let people who misunderstand how the system works keep using the system without updating their grokking of the problem or its solution
2) they require work, work that could be spent at improving the UI as a whole, not just for non-technical users(why would we like the developers(aka us) improving the software for everyone BUT us, when we usually have current grievances with the software is beyond me(and there is no such thing as perfect software, especially not in the eyes of a techie purist)
3) A "basic-level" ui with advanced buttons/sections usually is a better solution, with a good design to back it up, as the same UI can scale to growing understanding of the situation by the user, they can also, with a little work, cover several use cases. Wizards are usually static, linked to a single use-case and limited to a single way of looking at a problem.
4) That limited to a single way of looking at a problem can be irritating to some people. Those people tend to follow TIMTOWTODI and other "geek" thought processes, which don't follow the norm. It can appear condescending, limitative, or just plain annoying to someone that's too concentrated on his/her view of the problem to see the one from the wizard. That such people tend to be heavy/repetitive users of software, and not casual users compounds the problem.
As a footnote, Mac software UI design has gotten prettier in the last years... But in terms of consistency, the Mac User Interface Guidelines, as a global, almost-universally followed, enforced standard for UI has not yet been outdone... That the Mac can apply this to software that they can choose to open can only benefit everyone once they do.
That such a thing hasn't been extended universally to all computing concepts explains why we have such articles popping up from time to time...
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.
As far as desktops go, I'm happy to stick with Linux (at home) or Windows (at work). Linux works well enough for me on desktop PCs to be extremely useable, and has some specific advantages over Windows as far as I'm concerned. Even my parents, both in their 60s, run Linux/Firefox/Thunderbird/OpenOffice just fine and probably STILL don't know what a virus is...
... Sure, you can use a PC Card modem, but who wants to do that when you've already paid for a modem in your laptop???
However, laptops are a different story. Of all the people I know who've tried to run Linux on a laptop, none have managed to get more than 90-95% of the whole system working. Modems don't work, or screen drivers don't work, or hibernating to disc doesn't work, or networking doesn't come up after hibernation, or
I'm gonna switch to a Mac laptop when my current one reaches its end of life in the next few months. Being able to run Unix on a laptop, with vendor support for all those bits of hardware, is worth considerably more to me than the cost difference between Windows and Mac laptops.
Sure, there's a few Windows apps that I can't live without, including such abominations as MS Project, but I'm willing to bet that either Virtual PC on a Mac will let me run those apps or I'll find suitable replacements. In any case, the inconvenience will be more than covered by not having to run Windows.
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.
Keynote is an absolute jewel. Just a short anecdote... I gave a talk at my university about Debian Linux aimed at people who want to see how far the Linux desktop has come (I'm running unstable, so easy there...) and what they can expect from Linux. It also dealt with a lot of the ideas behind Free Software, some of the big thinkers (ESR, Stallman, Perens, though not all in the same breath), and it covered with the great advantages of Debian's package management, etc.
Well, I had to give this talk at our student center, and so I obviously wasn't going to lug my desktop PC along, even though it is an SFF. I own a used Powerbook G4, which I've been lovin' because of my ability (through Fink) to get the latest Linux necessities but still have access to the wealth of proprietary software I enjoy using (Photoshop, InDesign, Dreamweaver, etc.)
I was planning on using OpenOffice to make the presentation, but at that point OOo wasn't running too easily on OS X, and it occasionally crashed on me. I didn't feel like showing off a piece of OSS that crashed constantly as a way of convincing newbs. So I went to the local educational discount store and picked up a copy of Keynote, expecting Powerpoint aquafied.
WOA, was I wrong. This program, with only a few minor exceptions, should be the UI design BIBLE practically. Within an hour of playing I had everything I needed to make a really slick presentation. When you move elements around they click into place, and INTELLIGENT alignment bars appear to help you align other elements with existing ones. The templates are smart rather than inhibitive, and they are actually beautiful designed. The fonts are crisp and clear and perfectly antialiased, the transitions are smooth and (sometimes) 3D accelerated, the support for Quicktime movie files and MP3s is superb. Not only that, but after my talk, I was able to export the presentation to a Quicktime file and burn it to a CD, all without a hitch.
This was all so slick that it got me into trouble. Someone at the lecture asked, "Was this presentation made with OpenOffice, because it's really cool..." and I had to tell him that I used Apple Keynote, with a collective sigh from the room.
I said, "Don't worry, OO is getting there." Yea, right. I was lying just to make everyone feel better. OO will never get there. Keynote is like an entirely different way of thinking. I wouldn't even call them the same kind of tool in this case. Word processors are word processors, but there are presentation programs and then there is Keynote.
---
THERE'S STILL HOPE...
---
That's not to say Linux is doomed on the desktop. I'm a Linux desktop user. But developers definitely need to take lessons from some of these proprietary gems. Just a short list of applications whose UI principles I'd like to see utilized in the Linux desktop world:
o MS Office v. X - has many differences in UI design versus MS Office for Windows, particularly the formatting pane.
o Macromedia Dreamweaver - still the most efficient way to build websites within a graphical environment, and it's because the GUI is smartly designed.
o Watson - if you run OS X, check it out. Swiss-army-knife search tool, and to be fair check out the Windows "sorta-equivalent", Copernic.
o Tune Up Utilities 2003 for Windows - has a wonderful "integrator" program with a great UI, should be imitated for any collection of tools like a control panel.
o Winamp - huh what? Yes. A media player that doesn't imitate iTunes (like Rhytmbox), but also includes "media library" functionality and mp3/aac/ogg ripping, and is Winamp skinnable. So either improvements to xmms or something altogether new. I, for one, hate iTunes and its design.
o DVD Shrink - This is a good example of one of those "one-function" programs that just lets you see all the options and click "go" and everything works. acidrip and dvd::rip both have this sort of "single use tool" aspect to them, but their GUIs are still just wrappers to cli tools, such
Q: How many arch's can you run OSX on?
A: One (PPC), two if you count the x86 version of Darwin, as many as you want if you feel like porting XNU (it is open source afterall, and very portable (far more so than monolithic linux in fact, since you only need to port the microkernel, and everything else is hardware independent))
Q: How many File Systems do you have to choose from with OSX?
A: HFX, HFS+, UFS, UDF, FAT32, and various other common filesystems work out of the box, and you can (and people do) write your own plugins for other FSes like ext2 and NTFS.
Q: How many desktop UI's do you have available to you?
A: Aqua, X11, and any theme or window manager you feel like running on top of either of those.
Q: How "customizable" is your interface (aqua).
A: Very, you can change the visual elements of your applications without recompiling or any special tools thanks to apple's application packaging system, and with themes and one of the common tools for managing them you can change the appearance of your whole system quite dramatically.
Q: How portable is the cocoa framework?
A: It is based on an OpenStep, a open specification that has been around for quite a while, as has GNUStep, a open source implementation of that spec. In addition, Apple has in the past prototyped it's own "yellowbox" version of Cocoa running on top of Windows.
Q: How many vendor's do you have to choose from if the one you're with takes a direction that you don't like or can't work with?
A: All of them except microsoft really. If you get pissy about buying Apple's OS updates, you can always install linux or BSD or something on your macs.
"The worst tyrannies were the ones where a governance required its own logic on every embedded node." - Vernor Vinge
Cool, glad things are working out for you, but sadly, not everyone defines 'usable' in the same way. Sometimes 'pointy flashy clicky things' can get a one-time or rarely-performed task done quickly. Sometimes the ability to quickly do one rare task through a GUI without having to reference a bunch of docs is just as important as the ability to repeat the same task quickly through a script or CLI.
Agreed. Depending on interest and frequency, I'd almost say "all of the above". Sometimes I want a "Wizard" A to Z and we're done, sometimes I want a basic interface, sometimes and advanced, and sometimes a CLI. In each case, more options and flexibility, less intuitive. I hate spending ages understanding something I'll have 99% forgotten when I got to do it again in a year.
Kjella
Live today, because you never know what tomorrow brings
But one thing Microsoft got right (office aside) is that since Windows 95 there has been a style guide. Not everyone uses it of course, Adobe being the immediate culprit that springs to mind, but MS Press published a book on Windows UI design and MSDN included copies. The guidelines covered pretty much everything, from menu layouts, common dialogs, the spacing between buttons, gaps between text panels and buttons and so on.
When developers start to stick to guidelines the packages that don't use them look odd and feel odd and eventually got folding in because people expect applications to work in certain ways. UI consistancy is not down to the OS manufacturer, it's done to developers who want to stick with guidelines, as opposed to either not caring or wanting to do something their way.
Competing UIs are arguably not a good thing for end users, frankly they don't care, they just want consistancy on their computers, something Linux just doesn't offer.
Exactly right. Why change something when it works?
Example: The U.S. military.
How many of you pimply-faced 16 year olds ever heard of the Kermit file transfer protocol? It was invented in '81 as a highly reliable way to send data without error. The U.S. military still uses this protocol to send data over *110 BPS* (yes, that's right, 110 bits per second) connections in highly critical applications because it is absolutely bulletproof.
They could just as easily trash all that stuff and use some new-fangled suitcase-sized satellite terminal to transfer the same data at several MBPS. But what happens when there's a glitch in the system, or the system goes down? Congrats, the Patriot missiles don't fire, and a nuke just landed on your mom's house because our government went for eye candy rather than predictability reliability.
There are countless other examples of this in the military. How about the B-52 bomber? It's been in constant use since the *50s* (with numerous upgrades of course). Ever once in a while I hear some ignorant person wonder why we don't scrap the B-52. The answer is that it does a job that no other bomber can do, and does it well, and most importantly, it does it *reliably*. It's a *proven* technology. There's no *benefit* to trying to build a new bomber to take its place. It has been constantly refined over the years, and its limitations and abilities are well-known.
You can easily see how this applies to the subject at hand. RS-232, parallel ports, etc are all proven technologies that have lasted for decades and performed their jobs reliably and predictably. Exactly what's the rush to swap over to some brand spankin new technology just because it's new?
Sure, USB 2.0 is a nice standard. Great. But don't expect everyone to ditch what they've got just because something new shows up on the block.
These must be the same people who spend thousands of dollars doing "case mods" and installing neon lights and other useless things. The same people who, in another life, would spend half their life in the mall buying new clothes because their old clothes are "SO five minutes ago".
I think what John has done in this article is not try to understand exactly what Eric meant. He took the words at their face value. For example Eric basically said that the UI sucked cos it didn't automatically do this and that and help him in the process, which is true. But there was also the underlying notion that whilst the UI didn't try to help him (and when it did it was wrong), his major problem with it was that it didn't work.
Buttons lead no where, help didn't work or was unhelpful.. now making your buttons work as advertised and having at least some help when you press the help button (since someone had to put the help button there in the first place), isn't hard or too much to expect in my opinion
Normal people worry me!
I think that what interfaces truly need are simple rules that can be quickly learned, from which one can intuit the more complex details. I'll explain.
We know that when you get into a car, your real-time info is always in the same place, below the windshield, usually behind the steering mechanism (I know there are exceptions). Window controls are usually below the window. Parking brake is in the center console or at your feet. There are simple rules that allow a person to figure out how to drive almost any car.
Computers, on the other hand, have detailed rules that do not allow you to figure out the simple stuff. Mouse pointers usually look the same. Drop-down menus usually work in a similar manner. But only a few parts are always in the same location (window control widgets, start button, taskbar). Even those are often found in different locations.
We need simple rules that allow us to figure out the complex stuff. A simple example might be that we put things that can happen in the future at the top of the screen (like commonly used programs, start button, "My Computer" browser), and current or past stuff at the bottom (logs/graphs/gkrellm, running programs, time, weather). This way one could easily figure out where an action would be.
This probably needs some research first, because the rules should be intuitive, simple, and cross-cultural. But *we* need to define those rules instead of letting Microsoft change them every 3 years.
PS if anyone is interested in doing this research, send me a message - I'm looking for an interesting HCI project to work on!
This guy is confusing usability and learnability. Don't get me wrong--learnability is not a bad goal. The difference is as clear as that between vi and Notepad. There's no question which is more usable, or which Aunt Tillie should use.
demi
I probably shouldn't post this late in the thread, but dammnit, sometimes you gotta.
The article is pretty perceptive about some things, specifically, seeing the underlying attitude in Raymond's article which was itself the cause of Raymonds problem.
Here's the thing though: he points out that usability and UT design are arts, and require gifted, talented people to perform. I have this to say.
THE SAME FOR WRITING SOFTWARE YOU, POMPOUS ASS.
Have you read the Mythical Man Month? You just can't throw developers at a project to make it better. The author here seems to think that this is how OSS operates - lots of developers ameleorating their overall mediocrit. And yet Open Source is still churning out high quality software at a rate to make MS blush, and only a food would think that the quality of the Linux kernel was entirely about the number of developers working on it. So, clearly, we must have strong leadership and good talent working for us. Why hasn't the same thing happened for usability?
It will. The fact that Slashdot posts articles about usability shows how the community is turning the furor of a thousand keyboards in the direction of usability. Once again, someone misunderstands "Open Source", and begins to say what it can and cannot do. I say wait and see.
In the call centre where I work, we're migrating from a console based billing system/customer database (basicly just a 3270 session connected to a mainframe) to a gui based system that IMNSHO sucks dirt.
The pointy clickiness of the gui based client only slows down those who are lightning fast with the 3270 based app, and average call handling times (the only thing that really matters to management) has gone up as a result.
So much for gui being better than text based apps.
You make the mistake of thinking you can educate the fundamental stupidity out of people. You can't.
It's true that Linux developers have their beanies on too tight and don't recognize UI design as the High Art it is. But that's a symptom, not the disease.
The disease: Linux is open.
I don't mean free, nor do I mean open source. I mean: there's no one in control. This is a great motivating feature of Linux, that's for sure. But it's a DISASTER for GUIs.
I have a friend who puts it this way: GUIs need a hegemon. A very smart person in charge who tells you how it MUST be done. Very true. The single most important feature of a UI is consistency. Consistency in look and feel. Consistency in interoperation among applications. Consistency in how widgets operate. Linux is anti-consistency.
Lessee, let's just count the incompatable widget sets. You got athena, you got qt, you got motif, you got emacs' weird way of doing things. And GNUStep. And gtk. And Swing. We're not just talking different looks. The scroll bars work differently. Cut and paste works differently (heck, there's not even a consistent inter-application cut and paste mechanism; some still use grotesque things like mark-and-yank). Drag and drop doesn't work correctly among any differing widget sets. There's no consistent font access, no consistent open or save panels, no consistent print panels, no consistent dialog boxes, no consistent icons, no consistent way to access menu items via the keybboard.
And don't even get me started on the five billion window managers. And there are people who actually think this is a GOOD thing! And even when the open source community tries to create a uniform mechanism, they blow it. So now we have GNOME *and* KDE. Smart. Really smart.
What makes MacOS X so good is consistency. Every application works with every other application. Drag and drop. Services. Cut and paste. Application ownership of files. And every application operates in the same way. Fonts, colors, panels, widgets, dialog boxes. They're all the same. You don't have to memorize five hundred different ways of frobbing a scroll bar. Apple has put a lot of work into this, establishing standards and creating tools to make it as easy as possible to get your app working with those standards. Apple's even taken pains to make odd-men-out (MacOS 9 apps, Java AWT/Swing apps) work as similarly as is possible to the Aqua interface.
The reason Apple has done this is because they have a few people In Charge who dictate how things will be. Sometimes the dictums suck (Dock, New Finder) and sometimes Apple violates its own standards (brushed metal for everything, ugh). But they're standards nonetheless and that kind of control is powerful.
Until Linux gets someone big enough to *demand* that interfaces be a certain way, it'll always be the redheaded stepchild on GUI street.
What i think would be a good start(TM) would be a program that interprets config files and turns them into GUI menus when possible, turning integers into fields, lists of commented out options into checklists/dropdown menus, etc. I know it wouldn't be perfect but it would make editing a config file less scary for less experienced users
Snowden and Manning are heroes.
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, of course, after anything appears in Fedora it is immediately and profoundly representative of the entire development community.
I think they both need to fuck off and take a harder look at things. They're both exactly right, and they're both exactly wrong, and they're both just pissing for attention.
Like what I said? You might like my music
You're constructing a false dichotomy. Nobody wants the command line to be the only way to control the computer. But also nobody wants the command line to be replaced by fancy drag'n'drop shemes that require you to do mouse-moving orgies and keep you from automating and getting the job done quickly.
Your command is a nice example of what can be done perfectly by a little scripting. Put it in a shell script and insert the files to be burned as paramter. Voila you have a simple yet powerful command to burn files. You could put that command in numerous shell scripts, cron jobs etc. You can't do that easily with shemes that require user-interaction.
Unfortunately the Linux desktop tends to move toward that dichotomy, with KDE being nice to the eyes and to the beginners and excluding methods of automating. I prefer shemes of small and powerful tools that can be invoked by command line if you like to and GUI frontends that can be used by beginners to control these commands. This is the way to do it. Nobody gets hurt. Everyone is happy. Sure it means more work to encapsulate the different jobs. But this is what the article is about.
I think both of these articles have problems. After ESR subjected his readers to that CUPS rant I couldn't put my finger on it. After this I think I know why it bothers me. He basically assumes that the skills used in writing code are the same skills that a system administrator has. The truth is of course more complicated than that. There is perhaps some overlap. I've done both for years, but quite a bit more SA work than programming, and what programming I have done wasn't really for "end users", mostly for myself or fellow SAs.
Oh, and saying that good UI design is an art is kind of a cop out, an excuse to avoid the study of how people interact with their computers. In short, an excuse to avoid thinking with some hand waving about artistic talent. If I think they're serious, I flinch when people call their code "art", too. Art should evoke an emotional response, mostly I get intellectual stimulation from it.
One final note. If you don't like the UI, then perhaps it's time to write a better one? No one forcing you to use it as-is. People are going to assume that's a troll, but I don't care. You have the code, you have literally millions of lines of readable code to teach yourself from, so go forth and design something better. As it is, most of linux development has been rightly directed toward creating a clone of unix, not windows. I like unix the way it is, and will happily go on running my dozens of xterms. If someone feels it's lacking, they're supposed to do something about it, talking isn't going to get it done.
So to summarize, for me the command line + scripts are wonderful (if not required) for complex, out of the ordinary, or highly repetitive tasks. For more normal tasks (burning CDs, setting up printers) a well designed GUI can be very useful, even to experienced users - and I'm often surprised (on OS X) at how this 'normal task' category can include operations I'd previously regarded as being complex...
Define "Lowest common demoninator". There are people out there who still run 486s, hell, even 386s. Should Gnome have targetted these as the lowest common demoninator? No, for the simple reason that there ARE window managers for these circumstances, and Gnome wanted to move forward. Sometimes progress actually INVOLVES progress, and that means sometimes people dont get catered for, which is fine so long as the people you ARE catering for have their needs met.
Why should the Gnome project have to code around people who have 2mbyte graphics cards, people who moan that terminals arent responsive enough, people who want to run modern software on hardware that by all defininitions is well past it. By all means, enjoy what you can run, but dont moan when progress is being made and you cant take part in it.
You have to draw the line somewhere.
In fact, UI is not hard anymore ... we have simple UIs and simple object -event models like KDE's components
I think you're missing the point entirely. Dragging and dropping a button onto a form is dead easy, and has been for years - it's been around a decade since VB, Delphi and powerbuilder came out.
But that's like saying "painting is easy, paintbrushes have never been so cheap".
Knowing where to put it is the hard part, and is what seperates a good-looking, consistent, learnable, intuituve UI from the usual junk.
My Karma: ran over your Dogma
StrawberryFrog
OS X starts with the idea that choice is confusing to the user, who doesn't want to have to learn anything new, ever, even if it makes him more productive. Choice is bad, and the user must be protected from it. This is the reason for the (usually) benign dictatorship that OS X imposes on the user. Given this philosophy, OS X does what it is supposed to do very, very well. If you put ease of use and lack of confusion first, OS X beats KDE hands down.
Almost all Linux desktops like KDE still carry the completely opposite philosophy around in their guts somewhere: If you really, really want to, you can drill down to the last bit and change things. Choice is good, the user is not stupid, and is willing to learn if it makes him more productive. Given this philosophy, KDE does what it is supposed to do very, very well. If you put productivity first, KDE beats OS X hands down.
All we need to do now is for each side to realize that they are not in direct competition. The KDE people do seem to admit that they'll never be as flashy (not until X11 grows real transparency, at least). The problem I have found is that the OS X people seem to believe that their OS can be all things to all people. Not so.
I've been using my new iBook G4 exclusively with OS X 10.3 now for over a month while waiting for YDL to get the next Linux version out. As nice as OS X is to look at for the first few days, once you get down to serious work, it is simply a pain. You can't get rid of the cute gimmicks (when minimizing the window, you can either have the "genie" or the "scale" effect, but you can't get the damn thing just to vanish). Closing a window doesn't close an application like it does in the rest of the computer world, you have to Command-q it or else it will hang around in the background. Expose is cute, but basically it is just a complicated way to make up for the lack of virtual desktops.
Yes, it is a cliche by now, and Apple users will probably go arrghhh because the have heard this so many times, but the single mouse button is one of the biggest drawbacks of a Mac (and no, I can't attach a USB mouse every time when I'm on the road with my iBook). KDE has a beautiful two-punch right-button, left-button combination that works consistantly over (almost) all applications. Reply to mail? Right-left. Log out? Right-left. With OS X, you're constantly pressing strange key combinations or (horror!) have to move up to the menu bar. Working with one button feels like having one hand tied behind your back.
Don't get me wrong, I'm very happy with the iBook and would buy one again if this one got eaten by rabbits or something. If you are thinking about buying a laptop, do yourself a favour and at least look at Apple's portables. But OS X? High cuteness factor, quick to learn, but not for those who want to be productive first and cool second. Just like it was designed to be.
Wow. You really don't get it do you. That IS the problem. Instead of programmers creating easy to use, for the job GUI's they are trying to get creative.. trying to make things easy.. trying to take the short route.
Maybe a little less scary, but I'm guessing it would be negligably so. Windows has regedit, which is pretty much what you're talking about, and it's still a nightmare. It's still a hackers-only tool, and there's no way an A.T. (I'm assuming the reader has read the article) would ever use it. Firefox has about:config, which also does this, and is also a nightmare.
A poorly-designed options panel is just as bad (maybe even worse, since you can't use text-manipulation commands) as an excessively long config file, and the design criteria for an options panel are significantly different than for an easily-maintainable config file.
"Last mile to the user is propietary" is the state of affairs the author invisages. Which is pretty much the case: Xandros, Lindows. They both are Free software underneath with an attractive veneer of easy to use propietary software on top.
The same could even be said of MacOS X (in places): KHTML underneath.
Basically: he makes a good point. Selling goods and services based on a Free use of commonly owned software basically means either doing to tricky things for users (consultancy) or writing apps so that users can do the tricky things themselves (distributions do this).
Distributions either make their nice configuration tool FOSS or propietary. Redhat do the former, Xandros and Lindows (AFAIAA) do the latter. Whose configuration tools are easier?
Posters recognized by their sig,
I have used Mac OS/X, Windows XP, OS/2, etc and I find KDE to be far more usable then any of them and I think it is more usable then they ever can be for some very simple reasons.
In KDE I configure spellcheck ONCE. The settings are system wide, the dictionary is shared and it works the same in EVERY KDE app. I don't have to deal with different applications having different ideas and having to set that up for each one.
In KDE I configure the proxy settings for my network ONCE. Every KDE app uses those settings from viewing webpages to using webdav to grab data remotely. I just set it once and don't worry about it again.
In KDE I configure my editor ONCE. I set what I want my default editor to be customize it to how I want to view text, work with it etc. I currently use the kate embedded component as my default editor and it works the same way showing embedded data in konqueror, in the kate application, in kwrite, in kdevelop 3 etc. I could change it to kvim in one place if I wanted and use it everywhere. I can set my editing component to ANY registered text editing component. I have seen NO equivalent functionality in any other environment.
KDE has io slaves. EVERY file save/load, the url bar in konqueror etc are url transparent. I just work with files and don't have to worry about what app I am using. I can just open a file in my editor, word processor, spreadsheet etc and not need a special sftp, ftp, webdav,imap etc client to grab the data. I just worry about what data I need to work with and where I need to save it to and not about what app I am using.
KDE saves me a large ammount of time getting work done and while some areas are still buggy and need work it is far more usable now then I see OS/X, XP, etc as EVER being. I don't think proprietary software can agree to the point that I can choose what my system wide editor is, what my spellcheck system is etc.
Mac OS/X looks prettier but I also find that for what I do it makes the job far slower and harder then it needs to be. It has lots of pretty graphics but things like io slaves just save too much time. I am sure it is great how easy spellcheck is to setup in various apps but I setup these things ONCE for the system and now I just get about doing my work. I have 3 monitors setup and I have 6 virtual desktops and on startup I tend to have about 50 gui apps running along with zope that I use to do my work.
You can have mac osx and all of these other environments. KDE is becoming more usable all the time and it is becoming more integrated and easier for more settings to be system wide.
Note: I know that GNOME has some of these same features and will likely have all of them in the future and that GNOME and KDE are working together on freedesktop standards etc. I just commented on the KDE side because that is what I use the most. I want both to continue to exist and grow stronger through competition and cooperation.
In the end I don't think multiple proprietary vendors can ever really work together and so I don't see it as possible to have an environment as integrated as KDE is already and will become more so in the future.
Computer modeling for biotech drug manufacturing is HARD!
The parent authors comments about GUI relation to technical stuff reminded me of something I posted several months back on Slashdot. I think it really needs yet another reposting.
--
About 9 months ago, Eric Raymond came to speak at my LUG. No matter what else I think of him, he's really intersting and a really good speaker. I wouldn't for a moment knock his entertainment value, no matter what else I might have to say about the guy.
However, there was this one point during this discussing at the dinner before his speech where me and several of the LUG members were talking with him about linux GUI's and the future of the Linux Desktop. Eric Raymond said something about the whole unix system of creating back ends first and then grafting GUI's on to those later.
My response: "But Eric, most usability experts recommend you design the interface first and then write the code".
His response: "then they're wrong."
My response: "But what if there's something that the backend folks didn't think of when they wrote there code that the GUI really needs? Or what if there's something in the back-end that just doesn't work once you add a GUI?"
His response: "then it needs to be fixed."
My response: "But what if so much code has already been written that no programmer wants to go back and make all the changes necessary to make it really work?"
His response: "then we've got a problem."
It was at this moment I realized two things:
1. The Open Source leadership is just stuck in command-line land as your typical rabid, BOFH linux zealot, and is just as clueless about designing desktop software and user interfaces. The leaders of Open Source are as desktopically bankrupt as their followers, and it is unbelievably disturbing that people like this are placed in charge of leading efforts to make alternatives to windows for non-technical users.
2. For Free Software/Open Source to succeed in being a viable alternative for non-programmers, it must be once and for all divorced from the Unix Culture. The concept of freely distributable and modifiable code must be seperated from the concept of The Unix Way.
Ergonomica Auctorita Illico!
No offence, but you're missing the point exactly the same way Raymond did, for exactly the same reasons this article describes.
You can put as many buttons and help screens on as you like, and obviously they should do something if they're there. But the point is that making a program with good usability requires more than this. You have to have the right buttons and have helpful help text.
That is hard, and for now it seems it really is too much to expect, at least from open source projects. I use several of them every day, and have great respect for the development teams, but that doesn't change the fact that the help text in them usually doesn't (or, in some cases, isn't) and the old-fashioned, commercial, closed-source alternatives are years ahead in usability terms.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
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.
you obviousally never used it to set up a jetdirect or networked printer.
you have to fight to get a network printer installed. if it cant detect it you dont get it! Dammit! I had to fight the stupid thing by adding a printer on lpt1, the nedit that printer to be a network printer but not allow it to detect it or it will not let me have that printer.
ALL User interfaces need to default to expert mode and trust the user when it's automated systems fail. I am sick of software assuming that the user is a moron and never letting them get the job done if it cant do it for them.
Do not look at laser with remaining good eye.
This is so true, in anything where you have volunteer help.
I am currently the president of a large club, with an organising committee of around 30, including about a dozen people with specific responsibilities. All of these people (me included) are volunteers, and we all work and/or study full-time.
Trying to co-ordinate this -- in particular, trying to balance the views of the "leadership" (who often spend a lot of time considering a question and shortlisting viable options before even consulting the full group) with the views of the main group (who collectively have far more experience, but often have laudable but unrealistic goals) -- is very challenging. What can I do if someone doesn't do their job properly?
All I can do is have a quiet word and ask them to change how they do something. If that doesn't work, my only real options are to put up with it, or to seek to have them removed. The latter is hardly a nice thing to do amongst a group of friends, and relies on finding another willing volunteer to take on the job. I don't have the options a business has of formal disciplinary procedures, nor the motivation of offering increased rewards for a good performance, and I couldn't rely on getting a good replacement if I had to get rid of someone, because unlike a business I can't just advertise a good remuneration package and wait for the phone calls.
And this is just with a group of 30 or so people, all in the same place, and often knowing each other well outside the organisation. Compare that to what the project leads on a large OSS project have to do, and it's easy to see why setting a clear direction (and, equally imporant, making sure people go that way afterwards) is so hard.
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
" I just finished development on a little utility that runs on Mac OS X. Has a nice GUI interface, we think it's easy to use."
[warning: rant]
Whaddya mean, you "think" it's easy to use? Of course it is to you: you've been working with it since day one.
Please, go recruit 5 test subjects- people that would likely use your type of application. Follow a simple thinking aloud protocol, and give them tasks you would expect them to complete with your GUI.
Then fix whatever issues, and iterate until you KNOW it's easy to use.
I can guarantee you, when you are done your app will kick ass and no one will want to use anything else.
Information: "I want to be anthropomorphized"
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.
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.
So what, you came across some rude people. They exist everywhere, including open source land.
I hear your point, but I think you are missing another one. What the parent was trying to say, I think, is that the technology exists in the open source community to do what you need to do. The fact that Distro X didn't pick up the technology and package it isn't the OSS community's fault - it's the distro packager's fault. So in other words, don't be so quick to judge the entire OSS community based on what specific people or companies have done (or said).
But this article doesn't end up as any sort of "here's how we improve Linux" essay (which at least ESR thought he was doing). It's just a commerical for commercial software. He fundamentally misunderstands a key difference between Free Software and proprietary software.
The article criticizing Raymond's writeup is mostly speculation. Note all the claims made, and how many are backed up with any fact or actual investigation. He's saying "Raymond's an idiot, OSS sucks" in a veiled attempt at disparaging OSS software - this is just a rant. No investigative work or research to prove it, not even a convincing argument to go along. Without any constructive points for improving "the situation", the article is worthless except maybe for some minimal entertainment value.
Consider a point I would like to make: some software projects aren't ready for an easy to use interface (CUPS aside obviously). OSS by nature is a public development effort, so you get to see it - warts and all - from its creation to its maturity. When the project matures and is stable at its core, then usability becomes the biggest issue. Look at the problems Microsoft is having with vulnerabilities in Windows because they did not spend enough time on the core of the OS before diving into major new UI features. It became a joke that you had to reboot every day and that crashes were something you had to live with. Not until the threat of open source did Microsoft start concentrating more on the core of Windows. Those who swear by Microsoft should appreciate at least that much.
The inherent belief that UI concepts are somehow simple can be blamed for a lot of the crap that is out there.
Special Relativity: The person in the other queue thinks yours is moving faster.
I mean, who the hell has a laser printer connected to a parallel port and wants to share it over a network?
umm... you're kidding right? people do this all the time. maybe no at home as much as in the office (though i do this at home). and printing to shared printers is absurdly easy in windows and mac os x.
Users often ask for the most ridiculous things that they think will suppsoeduly make their life/jobs easier (since I build software for professional tasks, this might not be apropos to the OS), it is my job to not just dismiss these request but to think about them and try to figure out the underlying problem that I need to solve. Not to make the user totally happy, but to make them productive (bonus if both are possible, and they sometimes are).
Basically I consider there to be three types of users:
- Beginner's - just beginning to use the softeare and need training.
- Novices - can get around, do there job competently but is still not at the the optimal state
- Expert - They can use the system flawlessly and are very productive
In my world I design systems towards the experts needs. They use the software every day and need to perform their tasks quickly and without mistakes. If I design for the beginner in mind, it will slow down the Novice and Expert groups, and eventually with the proper training all users should progreess from one stage to the next, ending up at the expert stage. For a company, they want all their employee's running at our near the expert level because this is where they gain their efficiencies.It is a little more of a problem to apply this concept to an operating system, this is why I have the utmost respect for the people who design them. But I think they should try to keep the same principles in mind, design towards the expert with helping hands towards the beginners, i.e. Wizards (but not limited too). When you first set up let say a network connection, you use the wizard (beginner/first time setup), when you need to change something, you most likely will just go to the connection and make the change directly (novice/expert). That is the difficult part in the design, allowing all types of users to use the system, while also educating them. I'm don't know about everyone else, but when was the last time you moved the mouse up to file menu and down to the pring button instead of hitting Control-P? At first most people probably went to the file menu to print, but then they see the hot keys next to it and learn that this is a quicker way to perform the same task.
Overall, I am just happy to see serious discussions on this topic. A lot of people in my work take UI design forgranted as well, and I will point them to these articles.
Exactly! There is a burning desire in the Open Source community to leave everything up to the user. This makes configuration files (or configuration screens), long and unmanageable. While flexibility is great for advanced users, beginners are scared away by the complexity. One of the solutions for this is called 'progressive disclosure'. Its a theory in UI that simple task should be simple, but the more advanced tasks should be close at hand for those adventurous enough to look around. The best implementations of progressive disclosure show hints to the user tempting them to explore the advanced features without forcing those features on them.
There are good examples of this in Word, Excel, IntelliJ IDEA and the Mac desktop. Any user can immediately start using the product. But little by little, the more advanced features show themselves.
Examples of UIs that go against progressive disclosure include wizards, clippy and requiring the user to search for configuration options among page after page of options.
There is one feature that Dell laptops have Mac laptops beat in. "Screen Resolution" I have a 8500 with a 15.4 inch screen at an amazing "1920x1200" Not even the 17 inch TiBook comes close at 1440x900. The 15 inch is a measly 1280x854. I will gladdly put up with some Linux hassles ( I haven't used a modem in nearly a decade. ) to get the best screen possible. My ideal laptop would be one without a CD-ROM, with a really thin harddrive, medium CPU power and good battery life... and really really thin.... BUT A HUGE HIGH RES SCREEN. I don't understand why no company makes one. Now I'm ranting...
the Open Source process is highly decentralized. This has many advantages ... But it also has several disadvantages. One of them is the chaos of multiple distributions. Another is terrible UI design.
Your first point, "the chaos of multiple distributions", is only chaos if you choose to see it that way. Go to linuxiso.org for example. There are the 15 most downloaded distros right on the front page. Forget about the rest for now. Maybe someday you can take a look at them. If 15 is too many, then the top choices are Red Hat, Mandrake, and SuSE. Each one seems to have a particular strength. So where is the chaos? The Internet could be seen as chaos, too, if you chose to look at it that way. 3 billion web pages, who has time!
About terrible UI design, can you elaborate? The top 3 distros look really great! I'm sure many of the other distros also look great. All are being polished more with each revision. About applications, many of the most popular applications have nice UI design as well and look polished (ie. the OpenOffice suite, Gimp 2.0).
I agree that the waterfall model is terrible when it comes to making a new system from scratch (if for no other reason than the sheer cost), but sometimes there's little alternative. An iterative model is suitable for general-use systems, but for specialized/legacy systems (or new functions that interface with said systems) where the customer dictates everything that the system will contain,what it will do, and how much time you're allotted for doing it, "We'll get to that feature eventually" doesn't fly.
I work for an organization that primarily sustains legacy government systems, and we use the waterfall model extensively. Amusingly enough, the quality of the user interfaces is subpar at best, and the user documentation severely lacking in that it gives no direction for general use of the software. In other words, I agree that completely specifying a UI before development doesn't necessarily (or even typically) produce a good product.
On the other hand, I'm not convinced that the release-fast/relase-often iterative approach is all that great for developing usable UIs either. UI releases need a certain amount of stability and consistency for users to feel comfortable in adopting them. A certain amount of maturity in the design is needed for this.
(The opinions expressed here are - of course - solely my own opinion, and I don't really give a damn as to what the opinions of my employer are [/end stupid disclaimer clause])