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.
One point that particularly struck me: according to Gruber, 'Unix nerds who care about usability are switching to Mac OS X in droves'!"
This has certainly been my experience. My latest journal entry covers it quite nicely I think, but many of the geek folks I know including hard core UNIX users and scientists who have long been Windows users are shifting to OS X. After all, yes, UNIX is powerful and 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.
Visit Jonesblog and say hello.
"Unix nerds" who are switching to OSX are not Unix Nerds.. they're Unix Wannabe's that like aqua..
chicks dig console...
The road between democracy and tyranny is paved with secrecy in the name of security.
Um Please replace the IE development in my post to UI. Sorry I was trying to get First post.
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
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 until someone comes up with a better widget that does what I need faster/cheaper/better.
Pointy flashy clicky things just distract from getting real work done.
Beep beep.
The type of easy that regular users can find everything in a snap or the kind of easy with big shiny icons that n00bs still have problems with?
First people have to know what they want in order to get it. We can't solve stupidity and/or ignorance can we?
----
Go canucks, habs, and sens!
Sound familiar? It's the same argument against any kind of Open Source, only this time it's UI design that's somehow impossible to do without a big corporation (or "cathedral" if you will). Someone better tell the KDE people.
I don't think that ESR ever said UI design was really easy to do or a last-minute add-on, just that it needs to be done, not overlooked.
It's not just usability. Making things that go beyond raw utilitarian funcionality is just generally difficult. Look at cars. Making a basic econobox is pretty simple, but making a real driving machine is more difficult and usually costs more. Slapping together an Ikea bookshelf isn't too terribly difficult, but hand crafting an Arts and Crafts style bookcase requires considerably more effort and skill. Yet, somehow when things move into the software realm, our expectations change. Unfortunately, it's difficult to get BMW handling with a Kia budget. Even harder for free.
The Glass is Too Big: My Take on Things
...is the most difficult to discharge superbly.
--Robert Fripp
...Rob
The American Dream isn't an SUV and a house in the suburbs; it's Don't Tread On Me.
First, I admire Daring Fireball in all of it's pedantic glory. Maybe he is just trolling for April 1st.
OSS software is not always easy to use - there are plenty of OSS developers and users who understand this constant plight. This article doesn't seem to recognize that. Gruber always paints with a broad brush and it is hard not to be offended by what he is saying and implying in this article.
Good user interfaces result from long, hard work, by talented developers and designers.
Check this Gruber - Gnome, KDE, Easy Software (CUPS), Freedesktop, Mozilla, Ximian, Trolltech, Activestate, IBM, Sun, Redhat, SuSE, Novell, Mandrake, Debian, Open Office, Apple, and on and on, ALL have talented developers and designers on board. Some are paid, many are not. All of them write, package, repackage, extend, design, evolve, sell services around or just use OSS software. Even if the print setup on Alan Cox computer was too difficult for anyone, it was written by a talented developer and probably looked over by a talented designer somewhere later. It just didn't work this time around. So we move on. We re-examine it. I promise you we didn't need Alan Cox to tell us it needs improvement. Alan Cox is not OSS. Alan Cox problems do not reflect everyone's problems. Certainly not my co-worker who's CUPS install does autodiscover. It even connected to my amazing Apple Powerbook's shared printers running off... CUPS.
There are plenty of failures in OSS usablity. They are being fixed fast (release). The fast (release) is complimented by the fast (performance) of Linux. I use OS X everyday, don't tell me it is more responsive than Linux and it's OSS on equal hardware. You don't have enough proof to refute mine, I don't have enough proof to disprove yours. OSS is also more than just cheap software, it's cheap software that runs on cheap hardware (more on this below). And it will be good. I think it's good right now. Novell and IBM thinks it's so good right now they are rolling it out, company wide.
Talented programmers who work long full-time hours crafting software need to be paid. That means selling software. Remember the old open source magic formula - that one could make money giving away software by selling services and support? That hasn't happened - in terms of producing well-designed end user software - and it's no wonder why....
For example, look at how much Mac OS X has improved in the last three years alone. Even if desktop Linux is improving - and I do think it is - it's improving at a much slower pace than Mac OS X....
Mac OS X printing implementation was built on much of the same software as Alan Cox Fedora install. This is the panacea of the OSS business model - quality free (libre) disparate software, glued together by intelligent programmers. Further I don't understand Gruber's point of view - Apple is making money off OSS and the developers are getting paid. The support and services might be in the form of support software which may not be what the kind of support he was thinking of... but it's still services and support.
This isn't to say desktop Linux isn't growing in use. It is, and will continue to. But it's growing at the bottom end of the market - cheap $400 computers from Wal-Mart. That's a market where software usability is not a key feature.
I'm sorry but Gruber is wrong. It is a key feature in that market - according to Linux developers. Maybe not Apple developers and maybe not Microsoft developers. However, to many, many, many OSS developers, usability importance doesn't scale with price. That's a disgusting, exclusive statement by Gruber.
Posted here tooThis one is funny.
Eric S. Raymond -- the renowned Linux/Open Source evangelist/essayist -- couldn't figure out how to connect to a shared printer. So he wrote an essay describing the problem (the UI for printer configuration on his Linux system is horrible) and proposing a solution (open source developers should do a better job with UI design). Raymond wrote:
(Side note: parallel port? What year is it in the Raymond household?)
Raymond's description and criticism of the usability problems he encountered trying to achieve this are accurate and apt. The gist of it is that what seemed like the obvious way to go about the task was in fact completely wrong, and worse, there was no indication from the system that he wasn't on the right track.
This setup alone is sort of funny -- Linux Advocate Struggles to Configure Printer -- ha-ha. Even funnier considering past statements from Raymond regarding Linux-vs.-Windows usability; e.g. the forward for the book "Everyday Linux", wherein he wrote:
I mean, come on, it's funny that the guy who wrote that couldn't connect to a shared printer.
But it's when Raymond begins proposing "solutions" to the problem -- where "the problem" is the larger issue of open source software usability in general, not just the specific case of CUPS printer configuration -- that things get hilarious.
In his follow-up article, Raymond summarizes his proposal thusly:
Sounds good, on the surface. And indeed, most of the follow-up article is devoted to the congratulatory email Raymond received in response to part one:
I agree that this is an interesti
Me lost me cookie at the disco.
I run both Linux and OSX, but I'm mostly entirely on OSX now. I like having someone else worry about my security updates for me. I'm willing to pay for someone else to do maintance and assure that my OS is completely compatible with my hardware.
The fact that its really pretty doesn't hurt either.
Raymond was right. The software is there, but the hints and the documentation are totally left out! The CUPS guys (and others) just need to tie the loose ends because --obviously he did finally get it to work-- there were simply no run-time links/ hints/ discovery to do the job.
Gruber's idea of UI driving the software design is totally another level (more like Thomas' idea of why FOSS UIs tend to suck). And although Raymond is shooting for Aunt Tillie (which he WON'T get without this level of design), he can at least get all his semi-technical brothers and sisters into the game and we can all think about A.T. for another iteration.
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. The GUI and GUI-RELATED code has been 90% of the work.
What's GUI-RELATED you ask? Well, consider a simple file copy utility that runs from the command line. When you run it, you give it the arguments on the command line and off it goes. If you want to use the same arguments twice you make a shell script or an alias - the file copy utility DOES NOT WORRY about persistent arguments.
OK, now we make a GUI file copy utility. Oh, you'd like to use the same arguments again. OK, that's reasonable, let's make a place to store those. Oops, now we need a way to manage them (create, edit, delete - what about concurrent access?). Hey, wait, this is Mac OS - you know, the path to a volume can change when it gets unmounted and remounted. Are you doing the right thing to specify the VOLUME the user wanted and not just a dead path? Oh, what about when the path no longer exists - should we fail, create it silently, pop up a dialog saying it's missing and let the user create it...
John Gruber is dead on the money - you can't just wrap a GUI around a CLI and expect things to be easy to use. There's a whole big layer of foundation code under the GUI that needs to be created to make things work the right way.
I have to say I'm absolutely in love with my PowerBook G4. The UI is very minimal and simple, but it has all the options that I would want to use.
For the hard core CLI stuff (such as tcpdump, etc) I can always open up a terminal, and for the part of me that goes "ooooh" at shiny objects, I can make the terminal windows transparent.
I'm particularly impressed at the ease of configuration of network devices and connections in OS X vs. WinXP.
Any way, add me to the list of UNIX geeks that is going to OS X. I'm not replacing my OpenBSD boxen, but I am trying to replace my work-issued WinXP laptop and my wife is totally willing to switch out her Win98SE box for a Mac (which is great, because she was dead-set against Linux for her desktop OS).
Oh, did I mention that it's 10 times easier to create a presentation in Keynote than in PowerPoint, and Keynote looks better to boot! For example, I created a 36 slide presentation immediately after installing Keynote, with barely a hitch and never cracking open the user manual. It took me 1 hour yesterday to modify two build slides in PowerPoint.
Someone is WRONG on the Internet!
I know that I will be modded down but I have to say it.
Max OS X is like Enlightenment on steroids.
It is totally unusable, just has lots of fast eye candy.
To do anything remotely useful you need to know a milion secret key combos. Mac users are one damn secret handshake society.
Now mod me down and keep bathing in the warm glow of Steve's reality distortion field.
(I do have a Mac)
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
The reason why Linux, and many of the Open Source solutions that grew up around Linux are so damn difficult is the whole "not invented here" syndrome. Because this is Free Software, as in Free Speech, every developer thinks it's both within her right to develop willy nilly, and because the system's "currency" is "props," obviously my interface is better than anybody else's - everything else sucks.
This is why Sun's Java Desktop System (which I've been using this week) is so far the easiest Linux desktop I have seen so far. There's one driving motivation behind it - whatever Sun wants. There's little "but I prefer chromed widgets" from one developer. Nope. Sun says "make this easy to use," and it gets done.
I mean, who gives a damn about GNOME vs. KDE? What Linux needs are developers who follow a singular mission (or, rather, several singular missions, but not a mission for every developer!). I'm sure there were a lot of blacks in America who hated riding in the back of the bus, but until the Civil Rights Movement, there wasn't a cohesive strategy for every indivdual to work towards...
There exists no way of exchanging information without making judgments. --Bene Gesserit Axiom
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.
After sitting in class today and watching another student do various tasks on his mac laptop, I've once again been tempted to try one out. And I figure even if I end up not liking OSX and all that goodness, I can still install my sweet sweet debian on a PPC, so why not?
- I love animals. I try to eat at least one a day.
Ok, so we're talking about a group of people who are:
1) Unix Geeks
that
2) decided to roll back their "Discordian" t-shirt long enough to find their (gratis) copy of PC magazine wot mentions the unix workalike underpinnings of OS X. (we're talking -UNIX- geek here people)
3) don't like the available Linux gui options.
4) are willing to pay twice as much (at least) than they would for an x86 Unix workalike
5) have trouble with gui usability...
This person doesn't exist. Unix geek = someone who enlists in the vi/emacs Blood War. People who bitch about GUI usability = people who bitch about "right clicking".
I'm almost serious. Who are these people...?
-dameron
Why make things easy when it is just so much more fun to create something that the user has to read pages of configuration instructions then go to a support forum where they can get laughed at and degraded for asking such a simple n00b question?
Software isn't meant to be productive. It's meant to help people get a laugh at the expense of others.
I could go the other way and say that I would rather click to change focus.
In all honesty though, why hasn't any UI had a check box under the mouse settings which says "Click here to have focus follow mouse." This way, we wouldn't be having these debates. Both uses have their pros and cons...
Don't waste time... procrastinate now!
You know, I'm going to have to counter this. I don't personally own a Mac (though I am considering a PowerBook once they become available with G5s), but I have several friends who do. The OS X interface is absolutely top-notch in both regards - it's easy to use and there are shortcuts all over the place that make it useful.
Honestly, it's just a Unix with a solid UI sitting on top of it - which is exactly why so many geeks like myself drool over it. There's not really anything that I do on any of my Linux boxes that I couldn't get done with Mac, quite possibly easier.
People focus on the eye candy in OS X, but there's really a lot more to it. The default UI is great out of the box, but when you throw in the fact that there are tons of excellent 3rd party add-ons that make an already efficient interface that much easier to use, I can't really find much to complain about myself.
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)
That's okay, I just read it as "Interface Engineering".
-- Alastair
I'd kill all of you for focus-follows-mouse in OSX.
No need. From an xterm, enter
defaults write com.apple.x11 wm_ffm true
exit X and restart it. Lo, you have focus follows mouse for any X application. There's a similar setting for terminal, and probably other native applications.
Errr, well, I realize this is /. and all, and that Microsoft is therefore the Evil Empire, but actually the TweakUI add-on for Windows has a checkbox that says exactly that, and has for several years now.
Tweak UI for XP
TweakUI for 2k and prior versions
ABSURDITY, n.: A statement or belief manifestly inconsistent with one's own opinion.
Focus-follows-mouse is an option on the Amiga at least.
On a related note, AmigaOS also has as an option the ability to click windows to front with a doubleclick, which is by far my favourite method for doing so. That way you can move a mouse over a window without giving focus, then click if you want focus without bringing it to the front, but still easily be able to bring it to the front with just a doubleclick. I don't know if that's available on any other OS?
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.
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.
Bashing Eric Raymond because he advocates usability for AT and at the same time bashes Windows developers for catering to dumb users is detrimental to everyone : to GNU/Linux developers trying to improve usability, and to 'dumb users''s pride. Raymond is full of contradictions, the very contradictions of the open source world : let's advocate for the people, even if we just don't think that they deserve it, because they're just dorks.
Indeed, the CUPS episode is ironical, because it is blatant evidence that Linux usability is still to be worked, and worked hard.
And, last but not least, the migration of nerdy nerds to the MacOS world, which explains in some way the growing tensions between those two communities (and Darwin doesn't help that much, no)(on a second side note, it is interesting to see that GNU/Linux defenders don't seem that involved anymore in the very principles of free software when they see a nice GUI... hence the opportunity of sticking to OSS and bashing RMS for being a zealot...).
But come on, guy, why did you make yourself so weak on some other points ? Don't you know that the geeky population will bash you because you overcame the limits of reason ?
Free software doesn't cater to a market, for the moment. It caters to individuals. There is no such thing as Wal-Mart low-end PCs bought for using GNU/Linux. Why ? Because retailers don't ship Linux (not that much, at least... yes, I read /., too). I bought a high-end Acer laptop, and installed GNU/Linux on it. Which computer you buy has nothing to do with the fact that you want to install GNU/Linux on it.
As you stated with your link to mpt's article, free software usability tends to suck. That doesn't mean it sucks. I could even say that the overall impression is that free software usability sucks, because every software is made by programers that don't earn money with it (or at least, 90% of them). Just go on download.com, and rebuild your Windows desktop with freeware, you are going to understand. Nonetheless, some software are designed with great usability. Rox-Filer is a great fm, XFCE makes up perfectly for the rest of the desktop. GMplayer rocks, so as Rhythmbox (I know, iTunes like), so as sOffice (very comparable with Mircosoft Office), so as gpdf, so as k3b, so as pigeon, so as so as... There are a few softwares that rock, and a bunch of them that suck. Diluating wine in water makes the taste of the former disappear ; but it's still there if you are skilled enough to filter it.
What is really frustrating is that every criticism towards the feres software community ends up in a uncontrolled rant, which is then automatically self-invalidated. Too bad... There were good points in that article, though, more than in Eric Raymond's for sure...
Regards, jdif
Let's overcome our weakness.
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.
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
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 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!
At home, it's the G5. At work, it's the G4. In between, it's the PowerBook.
People can make fun of me all they want, but I really think the nicer look and feel in MacOS X makes me a lot happier and more productive. When you stare at a screen all day, it really should be the best-looking screen money can buy.
And, of course, it's just super nice to be compatible with the rest of the business world, with Office, without feeling you've totally sold out to MS. In terms of visual attractiveness, there's just no contest between MacOS X Office and the rather drab Office XP.
It's too bad discriminating Unix-lovers isn't a bigger market. My Apple stock investment, which I made because I thought a lot of people would join me in the Mac world, pushing up demand, has actually been saved by the iPod.
D
The UI code is usually very long, cumbersome, and complex. In most of the projects that I've been a part of, most of the software's bugs were in the UI section. The software had to process many important things, but the STUPID UI kept it from doing its job.
But even worse is this: "Ease of use" really depends on what the user wants to do with the system. The problem is making a UI that is easy to use, but not so "easy" to use that it is demeaning to the user. Microsoft UIs are perfect examples of what I mean. Their software is set up for babies to use, with talking paperclips and whatnot, because it has to be "easy" to use. And in a constant effort to improve ease of use, they may make it easier for 1st time novice users, while making things longer, more cumbersome, and hence more difficult to use for normal users.
So how do you know if something is easy to use? When the customer uses it and you get feedback? Well, the problem is that 101% of the time, the customer thinks he knows what he wants, but he doesn't know what he wants. And herein lies the problem. You actually need experts in the field, not just those who are experts in modeling and programming the system, but also those who are experts in the psychology behind the system. In other words, the history of this type of system, why things were developed the way they were in this field, how users use the device, what goes through the user's head--what he expects to be the logical way to operate the device, rather than what actually is the logical way. And then you run into the problem that to each person, the logical way might be different, so applications end up having 100 different ways to do the same thing. IN OTHER WORDS, YOU NEED TO FIGURE OUT FOR THE USER WHAT HE WANTS.
But look at a car. If you know how to drive, you can operate any car in the world. Look at machinery, like lathes. If you are a machinist, chances are that you'll quickly figure out how to operate any lathe. If you've ever used a touchtone telephone, you'll figure out how to operate just about any well designed cellular phone within two minutes. Why is that? Because they follow certain principles? That may be part of it. The bigger part is that the designers of these systems understand not just what they do or how they operate; they understand the psychology behind these systems.
Everybody today is expected to know how to operate a computer. But when there are classes (expensive classes) on how to operate Microsoft Word, that's a big, big, big problem, and it is very deep. Deeper than any words I can formulate can explain. No talking paperclip, no amount of eye candy, no pretty (pretty ugly) menus that become a floating window when you accidently click the mouse in the wrong way, no idiotic icons that nobody can understand, will ever solve the problem. And the BIGGEST problem is this: Since computer applications can NEVER become like a car, they can never operate exactly the same way so that once you know one, you know them all. In other words, all cars on Earth fulfill the same purpose--to get you from point A to point B. But each computer program is designed to fulfill a different purpose, and sometimes, the purposes of two applications can be so different that their UIs will not have ANY similarity whatsoever. So how do you make it intuitive? How do you prevent it from becoming stupid but still difficult to use? And what if certain things cannot, by their nature, become "easy"?
Yes, UIs are extremely difficult to get right. Even Apple's UI, which I strongly feel is the best in the world right now, isn't quite right yet. I believe that with time, this situation will change. Obviously, user interfaces will continue to evolve. But more importantly, as more people are exposed to computers, they will feel more comfortable to experiment and learn. I remember in high school (back in the '9
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
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.
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
People don't buy Macs because of Darwin or khtml, they buy it because of Aqua, Quartz, Microsoft Office and Photoshop.
KHTML is a particularly interesting example, because it's the receipient of a large amount of donated code from Apple.
They used it for Safari, but they gave back many of the improvements they made.
- Scott
Scott Stevenson
Tree House Ideas
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)
You also have the option of UFS..
Q: How portable is the cocoa framework?
A: oh yeah, its not at all..
GNUstep?
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.
Make sure your data is in portable formats? If your current vendor changes directions, you'll be in the same boat, right? I mean, how certain are you about anything, after all?
Anyways, I'm not saying OS X is for everyone, I just don't see why your points should stop someone from using it. How is HFS+ really limiting your "Free as in Freedom"?
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)
Well, you actually also at least have UFS - or others if you care to format them yourself (like an msdos_fs).
Q: How many desktop UI's do you have available to you?
A: One. Aqua
Infinite, it comes with X11.
Q: How "customizable" is your interface (aqua).
A: pretty limited.
In what regard? Are you talking skins or what exactly? To what end do you wish to configure the system? If you start rooting around in pref files or (god help you) app bundles you can really do some damage (so to speak!!).
I've not actually done any of that as I like how it works, and have no desire to add a chicken-themed skin to the edges of my windows. And one of my favorite window managers used to be GWM long ago because of amazing flexibility!!
Q: How portable is the cocoa framework?
A: oh yeah, its not at all..
I had thought GnuStep was pretty close but cannot say - I have been doing some Cocoa programming and I like it a lot but do realize it may be very limited in scope (though iTunes seems to have done pretty well).
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.
Hey, how many of those vendors are going right where I want to be? Exactly One, lucky for me.
Why not back at least one horse with money that is doing the things you want done? I think buying OSX, then donating to the FSF and EFF and perhaps a project or two you really like is the means of moving OS movement best.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
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
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.
Since no one ever mods beyond the first hundred articles, I'm talking to myself here, but...
Of course OSS guys are bad at GUIs. They should be. GUIs are the last refuge of the incompetent.
Printing should not need GUI configuration. Why on earth should it? The devices are mostly connected by USB or network these days, and even the parallel port ones can mostly be easily probed. The print dialogs in the apps take care of pretty much everything else. The printing user should be able to just turn on the computer and use the printer. But no...
Check out the printer interface on the Mac sometime. No, no: not OS X. The 128K Mac. It's basically what I just said. The printers were either smart enough that they could handle whatever the Mac threw at them, or they didn't work at all. As a result, the Mac was a dream for printing---until PC commodity HW got so high-volume = cheap it couldn't be ignored. But even now, the big miracle isn't the clever GUI design for Mac print config: it's the fact that there's so little config, not much GUI is needed.
Heck, look at what the X Window System is doing. Graphical configuration? No. The core X developers are trying as hard as they can to DDC monitors, PCI-id vid cards, and autoprobe mice. Good GUIs are hard, and no one wants to configure this stuff. Just make the SW do the right thing without pressing buttons. Note that Knoppix/X pretty much manages this. On random cruddy commodity PC HW.
Move to a Mac if you like. I have better things to do with my life than navigate menu trees. I have code to write, and games to play, and e-mail to send. I have a life. I don't want a GUI.
I am migrating from Red Hat (7 years) to Debian (20 days) and I understand Eric Raymond's pain at figuring out CUPS.
My experience is that solving configuration problems is easy for programs with a complete but brief man page.
A good man page gives you the syntax, names of configuration files and pointers to associated program man pages.
I have been trying to think of solutions to the general documentation and configuration problem with Linux in these two ways:
A: Make a configuration framework that is customized by a local search and indexing engine: Use a startup framework like the RUTE user guide and annotate the text with local machine links created by a little indexing engine.User guides could be written around different perspectives (like Red Hat or Debian), and in different languages. The indexing engine would populate the guide based on what software was installed on the specific local machine.
B: A simpler approach is to come up with a way to write "shadow" man pages, independently contributed alternate man pages that correct and extend what the original authors created to accompany their original program.
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
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".
...he's on the mark regarding many issues facing Linux today.
The major factor in why commercial products tend to have better (not always) UI's is that the UI is there only differentiator. I mean, how many different ways are there to burn a CD? Create a 3D mesh? Handle e-mail? Configure a networked printer?
Now, with the varied and sometimes overwhelming number of hardware configurations out there the base functionality code makes up a greater percentage of an actual 'finished closed source' product that he gives credit for; however, as he was saying the UI is absolutely critical.
How many people have been turned away from the FANTASTIC application that is Emacs simply by starting it up and looking at it (then running away quickly to fire up KEdit to maintain their blissful ignorance)?
UI design and implementation IS the hardest and (usually) most boring portion of project development. Good UI developers are indeed worth their weight in gold, just as good technical writers are. Unfortunately, gold costs money...
Loading...
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 tried getting my network printer up and running with a friend's MacOS X box and it was nowhere near as easy as some Slashdotters make it seem. I had to know the location of the printer on my LAN (MacOS X did not search my LAN for acceptable printers, nor did it discover that this Brother HL1270N is the only printer on the LAN--two items ESR says would improve the GNOME druid he tried in Fedora Core 1) and I also had to know the make and model of the printer. Nothing was auto-discovered, nothing was automatically configured for me.
Conversely, adding the same printer to my GNU/Linux box was about as easy. No automatic configuration there either, but the GNOME druid guided me through the prompts ESR complained about. Yes, much of what ESR had to say was apropos--this process could be made far better along the lines he discussed, but I did not find MacOS X to be anywhere nearly as easy as even this topic's lead-in would suggest.
Adding my Epson inkjet color printer was a different situation. This job was easy when I connected the printer to the GNU/Linux box via the parallel port. My Fedora Core 1 box saw it, configured it on start up (I believe Kudzu did this and it appears to work), and I was left with a printer I could use right out of the box. So I don't completely understand where the "(Side note: parallel port? What year is it in the Raymond household?)" quip came from--some of the printers on LinuxPrinting.org state that autodetection works with the parallel port, not USB.
It was my experiences with printing under Fedora Core 1 that led me to recommend this distribution to friends (even making duplicate copies of my install discs to give them). So I'm left thinking that we're fortunate to have free software so the community can improve the software that needs improvement and we don't have to wait for someone or some organization to do it for us. I'd happily pay for improved free software if I couldn't do the job myself.
Digital Citizen
I have yet to see any evidence that this is possible for J. Random Aqua App without buying additional 3rd-party software, and believe me, I've been looking on and off for the last month and a half.
My Mac laptop sees less use than either of my Linux desktops (at home and at work) for precisely this reason -- I've been using focus-follows-mouse for so long that it's very painful for me to go back to click-to-focus. The only general purpose solution I've seen for this is Virtual Desktop Pro, and I haven't gotten around to buying it because part of me has a hard time paying US$40 for two things (virtual desktops and focus-follows-mouse) that I've had on Linux for free for nigh unto ten years...
"My life's work has been to prompt others... and be forgotten." --Cyrano de Bergerac
And you are going to be damn happy. I just bought a powerbook 12". I had been using an Dell Inspiron 5000 for four years along with various Linux workstations. OS X is absolutely unbelievable.
I love my powerbook. And now, when I look at how much it really cost me to make my workstation, I am chagrined to find I am almost at the cost of equivalent PowerMacs.
Oh, and my powerbook was the same as an equivalently featured Dell. The Apple hardware isn't as expensive as it used to be. You might be surprised to find your laptop not costing as much as you would expect.
"Doubt your doubts and believe your beliefs." -- Switchfoot, Ode to Chin
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!
He's got the "UI is spooky" meme stuck in his cranium. It's distorting his view. This view holds that while coding device drivers or application logic is easy because its math, UI is spooky because it's human, and that requires a cognitive psychology doctorate and an MFA to do right. This is, of course, bullshit, so it's not surprising that he is mislead into drawing erroneous conclusions and basing his critical reply to
ESR on those errors.
In fact, UI is not hard anymore (since we don't have to use the Xt object model, the most overengineered piece of object-oriented crap that ever came out of an ivory tower). Instead we have simple UIs and simple object -event models like KDE's components and QT's slots to hide the complexity (most of the time), and vastly more examples of consistent and market-persistent UI designs since back in the day, making UI design and implementation so dead simple the bulk of the time that any barely or even not quite competent coder is without excuse.
No, ESR hit the nail on the head this time. (Even a broken clock is right twice a day?) The upshot is that CUPS is one of the least well-integrated systems on the modern Linux workstation desktop, and it's a real burden on the viability of further popularizing the platform. But fixing it would not be hard. What is hard, and what ESR is addressing, is the more important problem of fixing the underlying cause, which is endemic: Development-centricity so all-consuming that the most gracious and diligent contributors to the public good will overlook the most elementary aspects of the public use of their software.
-I like my women like I like my tea: green-
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.
Seriously, if you're coding PHP why do you need anything more advanced than syntax highlighting?
I admit, the closed-source UIs are very pretty, but they're easily outweighed by things like NFS, greater stability, etc.
Furthermore, I find that all of the bells and whistles of windows just serve to distract me from what I'm doing. When it comes to the really hard-core work, I usually go with just a straight fluxbox session.
Now, I'm not just trying to bust your chops here. I used to swear by visual studio...I used nothing but VS for all of my C++ dev for five years. I finally just threw myself into linux because I knew it would be better...it was rough at first, make no mistake.
However, once I didn't have autocompletion of my methods, and pretty charts that show all of my members, I found myself actually REMEMBERING everything instead of just relying on the program to do it for me, which actually has made me more efficient in the long run.
Installing linux was really difficult, too, especially since I picked one of the more hard-core distros (Gentoo)...but now I really know my OS inside and out. It took forever to get the damn thing working, but I'll still be upgrading this install long after I've had to wipe my windoze partition for the next XP clone.
But there is another kind of evil that we must fear most... and that is the indifference of good men.
People seem to think the above was my original work when in fact it is a re-post of the article -- that was totally not my intention. I thought, wrongly, that it didn't need disclaiming. Sorry John. It just goes to show that people really don't RTFA ;)
Me lost me cookie at the disco.
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
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.
Sort of Like Einstein lost at the train station. You can be so intellegent about networking, ports, protocols etc.
But they have the hardest time understanding simple concepts. That unfortunately reveals itself in the UI of many applications built on Unix/Linux. Of course a green screen doesnt help much.
At least Linux is a movement to shift the Unix world in the right direction, and to its credit Linux is getting better all the time.
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
I'm a programmer and I hate GUIs for writing stuff.
Moving in a document is hell with a mouse. Sure it works but doesn't compare with vi and emacs. Text search requires most of the times an extra window (dialog) which may/will screw up the focus, requiring one or more ALT-TABs. Should I go on with substitutes?
Mozilla has done some decent work in the keyboard driven GUI control but it's still not mainstream.
If I'd have the choice of a decent ASCII based language that is incorporated in an office suite I'd switch straight away.
And no, runoff and TeX are no alternatives because non technical users neither use them nor their derived formats. Maybe I'm looking for the Holy Grail.
Reluctantly using MS Office and a bit less reluctantly Openoffice.
I hadn't the slightest objection to his spending his time planning massacres for the bourgeoisie... (P.G. Wodehouse)
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.
Yes. You need to throw the battery away and buy a new one. :P
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!
It's true. Both at Caltech and now at the conference I'm attending I'm seeing massive numbers of powerbooks (including my own :-). These are hard-core unix geek bastions, and OS X is really gaining popularity.
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!
whydo i feel like tossing a set of mandrake cds or a suse box at both raymond and everyone else haveing problems setting up a box? mandrake for works fine, and people keep telling me that the YAST tool that suse have one of the best linux config tools out there.
:(
then there is the fact that the most sold brands of printers around is doing it the microsoft way, sealed solution on top of or paralell to defined standards.
allso, linux dont have the simple system of rightclick and select share that windows have when it comes to printers. some say it a good thing, other say its a bad thing.
the last time i tryed to set up a printer in linux was for a friend of mine trying to get a lexmark hooked to the usb to print (the distro wasone of the latest red hat ones). no dice as lexmark use theyre own language to talk to the printer
the funny thing is that printers are harder to set up in linux then webservers for some reason, its not just hook it up and install the driver. no you have 3-4 printer systems to juggle, all supporting some printers but not all printers it seems (alltho cups comes close). and if you have the latest and greatest (or so the marketing department of said printer maker says) your out of luck for they only ship windows and maybe mac drivers.
then there is the fact that to share a printer across the network in linux you more or less have to use a microsoft protocol via samba, thats a whole beast on its own.
basicly printers in linux be it local or across a network si a mess, not only on the gui level but on the hardware, network and driver level to!
comment first, facts later. http://chem.tufts.edu/AnswersInScience/RelativityofWrong.htm
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 mean, who the hell has a laser printer connected to a parallel port and wants to share it over a network?
A lot more people than you think. Families have computer networks, and they sure do not want to buy a printer for each family member.
You buy cheap ink jet printers. Some prefer quality laser printers. One does not want to buy another laser just to avoid the hassle and one does expect things to just work. I have an old laser printer which connects via the parallel port that works just fine and I do not want to change it just for the heck of it, but I do expect it to become available on a network.
Remember the year 2000? They promised us flying cars. They delivered the PT Cruiser...
Re: One point that particularly struck me: according to Gruber, 'Unix nerds who care about usability are switching to Mac OS X in droves'
BS. I personally know three former apple users who have moved straight from Apple to x86 Linux. Two to XandrOS and one to Debian. KDE with karamba is plenty 'pretty'. Plus, their new mini-ITX cases are silent, small and of a more pleasing 'modern design'.
My personal experience leads me to believe this is not the case...
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.
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.
There is a reason. They don't want to spend time on it, because they think the time is better spent elsewhere. Since at least some of the Gnome developers are doing this for free and graciously allowing me to use or modify the code for free I don't see that I have much to complain about.
Finally, if all you want to run is Metacity, G-P and gedit, I really don't understand why you are installing X at all. Everything you want to do can be done much faster with virtual consoles and your command line text editor of choice. Heck, both vim and emacs are better editors than gedit anyway.
You can only drink 30 or 40 glasses of beer a day, no matter how rich you are.
-- Colonel Adolphus Busch
This is not to say that all Microsoft's products are great or even acceptable, but you can be reasonably sure that Microsoft is going to try to get the most bang for the buck out of whatever resources/time they do devote towards development.
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.
Yeah, just shut up. Read the HIG.
That was the most fucking braindead rant I have ever read. Ever.
As for things not fitting, don't be a fucking moron and put more than you can fit on your toolbar. It's very easy to figure out how to fix it, and I have trouble believing anyone has trouble using that interface.
You're just fucking bitching for the sake of bitching now.
I live in a giant bucket.
A great GUI exercise is making the GUI first.
This here is a perfect set-up for OSS software designers, it costs next to nothing, is easy, only takes time and can be heaps of fun if done right.
Make your own fun, test with friends and family, don't go looking for Aunt Tilly if you don't like her.
And you'd be surprised how much this method is used for making really really expensive software.
The programming language: scissors, glue, paper, crayons. Have fun.
Every screen should have its own "window" (page) and you don't start drawing cute buttons, you just describe the functions.
When you've done that, you start drawing widgets, trying not to invent anything new, just the ones that are readily available and try to use them just as God/random particles intended them to be used.
When you get that logic, when you can't imagine a feature or occurrence fall outside your paper trail, you're about ready to start coding.
See, it's not about the user being stupid or "choice is bad" philosophy - that is NOT the OS X mantra. It's simply about things not being thought through. Most programmers don't even have a clue what happens when people other than themselves use their products. This paper trail forces you to walk the path.
If there was one point in the article well made, it was the hopeless obsession with Aunt Tilly or Joe Six-pack you all seem to have.
I'm neither and find Linux usability for the most part lacking in the most important areas, those areas you don't want to be bothered with whether you're a programmer, a nuclear physicist or even if you are the one and only mythical Joe Six-pack.
I think, therefore I am...I think.
I've got to say it. You're new here aren't you?
/. is directly indicated. I know its supposed to be funny, but yesterday what I really found funny was someone with a user id over 700000 posting this quip to a response written by someone with a user id around 70000. No, that person isn't exactly "New here".
You know, every post here has the user id included in it. The relative newness of users on
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])