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'!"
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.
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.
This 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.
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
function before style was the mantra back in teh days of small memory, small hard drive or no hard drive, and slow CPU.
now with mass marketing of Computers...form MUST come first, and not be an after thought.
I am the Alpha and the Omega-3
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.
There are a lot of Unix geeks who realize that GUI use is a good thing in many situations.
/proc/sys/* settings, recompile esound or even the kernel, but I still do my day to day computing in a GUI environment if only for the pop-up "you've got 2 new messages" in the bottom-right from Thunderbird.
Think, for example, mail reading and web browsing. Perhaps photo viewing or editing, faxing, page layout, management of multiple login sessions visually, etc.
I know (and have known for many years) how to use screen, mutt, vim, and change my
I *like* seeing my 12 pixel tall xmms title bar showing what song is playing, my GUI web browser (Firefox) and using Eterm for accessing remote sites.
I'd love to be able to simply call up new SSH tunnels as menu options in a terminal window or initiate remote file transfers without launching a new session or reauthenticating, and some of these are generic UI issues and some relate to using GUIs for efficiency and esthetics.
I hate to break it to you, but my GUI renders fonts nicer than the text screen and makes multitasking simpler as well. I rarely if ever use a mouse; I'm addicted to alt-tab, my custom key bindings in Enlightenment and other 'tricks', but I'm definately a GUI user.
- Michael T. Babcock (Yes, I blog)
Amen -- Every Mac person I know will blab on about "The Power of Unix" and "Unix-based" and so on. But not a single one ever opens the terminal.
Well anyone can put shapes or text in a .ppt, but what about transitions, builds, grouping, etc? NONE of that is intuitive in PowerPoint, while it's extremely intuitive in Keynote.
Think of it this way, I've been a UNIX geek all my life, doing security and network administration, I haven't taken a business computing course since tech school many moons ago (aaah, dBase IV, Lotus 123, and Word for MacOS! [side note, prior to buying a PB G4 a few weeks ago, I hadn't used a Mac in about 4 years]).
Plop down both Keynote and PowerPoint side by side and attempt to create the same presentation in both. To me at least, it was immediately apparent in Keynote and infintely frustrating in PowerPoint. That's with exactly the same amount of training in both (i.e. zero). YMMV.
Someone is WRONG on the Internet!
Q: How many arch's can you run OSX on?
A: One (PPC)
This is something I think people overlook a lot.
If there was no MS, we would have been even WORSE off. Apple would control the OS... AND the hardware.
Linux advocates always talk about the need for quality and usability and a usable GUI but fall much much much shorter than commercial software products.
A usable GUI is worth much more than an incredibly powerful set of internal features in a software product.
Users use software to do things and not to read man pages, setup config files, compile source code packages...
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.
Look at this post of mine from almost two years ago. I think it's still just as timely today. I've had my Mac for 17 months now and I have no desire to go to back to Lintel, or even Linux/PPC.
BTW, I'm the Unix nerd/scientific programming type. Just go to any scientific conference these days and see all the powerbooks. It's a beautiful thing.
taken! (by Davidleeroth) Thanks Bingo Foo!
I was recently in an interview for a PHP development position at a local company (for which, I'm happy to say, I got the job). One of the questions they asked was this:
"Windows or Linux?"
I thought about it for a bit, and said, "I know what you want to hear..." [Linux]
*pause*
"...but I'd have to say Windows, mostly because I like the interface of Homesite, and I've had some issues getting things working correctly in Linux in the past."
I said that I wanted to like Linux, but right now, Windows (and Homesite) let me do things faster.
It's better to vote for what you want and not get it than to vote for what you don't want and get it.
- E. Debs
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
Giggle. It's amusing that you think I'm a "light" computer user. I'm a UNIX sysadmin by trade, I code for fun, and I'm currently running GNOME 2.6 (from Debian) with ... 19 windows open across 5 desktops on 2 monitors. My home network is 7 servers (mixture of Solaris and Linux). If you asked anybody in my office whether I was a
"light" computer user they'd laugh in your face.
When I say that I spend most of my time writing e-mail and documents, I'm not saying that's all that I do. I'm saying that boosts to productivity need to address those two tasks first and foremost, because everything else is teasing at the edges. I think my situation is true for near everybody in this office (several 100 people) both techs and suits alike.
You've got some issues there and they all have some validity, but they are all quite minor for me (and probably most other people). Then again I was a Mac person before going to Windows (and later Linux) so some of that I'm used to.
Can anyone reply to this and explain the maximize thing? I don't have time to go search for it.
Comment forecast: Bits of genius surrounded by a sea of mediocrity.
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
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.
And then there are some Mac lusers like this. Completely ignorant about a lot of what goes on (but at least they're not spreading viruses or formatting disks for no reason). But they tend to be more arrogant than PC lusers.
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.
If you're always playing catch-up, you can't advance as fast as the people that are in the lead. At best, you can keep copying them as fast as they can come out with stuff. At worst, you're always lagging behind the stuff that they release because you can't implement is as quickly as them.
To some extent, you're correct. Linux had a lot of ground to make up, and it copied a lot of interfaces as fast as it could. It's hit a plateau, though. Now is the time for OSS developers of desktop environments to either start coming up with good, easy to use, innovative things, or start admitting that they can't do it, and that we'll be using copied interfaces until the end of time.
Oh, and I found Linux far more usable before the days of GNOME and KDE. When I stopped using Linux, my GNOME system was pretty bare bones. I didn't click on things to make them go, I still did 90% of my work on the command line. Now I'm using OS X, and it's a big shift. I CAN use the command line, but it's a big difference having a system that's designed around making things visible and accessable. OS X isn't just better because the icons are nicer and it's more clicky, it's better because there's a real feeling of being interested in your interface experience.
Linux has the potential to be cumulatively better than any computer operating system because it has potential input from far more skilled people.
Too many cooks can spoil the soup. Enough said.
...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 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
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
and some aspects like it's packages are refreshingly good
Ahem...If spewing files willy nilly across the filesystem with no regard for what was already there can be called good. Or even a package.
The Mac OS X "package manager" is hideous. Give me RPMs and yum, or debs and apt, any day.
Yes, I know of what I speak...I've packaged quite a lot of stuff for Mac OS X, and will do a lot more packaging for Mac OS X in the future. There is are very good reasons why darwinports and fink exist and have chosen to use something other than Mac OS X pkg files for their distributions.
So...Pretty? Yes. Well-designed? Definitely not. Complete? Not by a mile.
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-
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.
Let me name my #1 complaint about OS X.
When they started shipping keys with a full keyboard instead of that silly old 'mac keyboard' I thought it was a good thing.
Then I finally got one(A G4 tower running OS X(10.1 and 10.2)) and try and use those extra, extended keyboard, keys... like home and end.. and find that in 99% of text boxes, they do NOTHING.
That is, in mozilla's address bar, in safari's, in most OS config dialogues, you cannot go to the beginning or end of the box by using home or end!
Why did they pay the extra cost to get those keys on there again?
As much as I would like FreeBSD/Linux (ok - flame bait there and following, being mindless zeolots will not get open source far & the *BSD's tend to be do what you want, Linux tends to be Stallman zombies).
Anyays, to my point - OSX rocks not just cause it's pretty, I've never even done aynthing with it beyond setting a root password and starting apache to show of *nix to people in a class, but darwin+$LATEST_CODENAME_HERE is something that can be interfaced with - fuck needing to pay for an api, last I checked apple had realeased free development tools for all their stuff (named after some sorta candy I think). Anyways, liquered up yes, but there is a huge stepping stone already in place.
AC
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.
so you have working flash in mozilla right? and photoshop without mac-on-linux? what about shadows, transparency, and vector scaling all real time? can you stream wmv, rm, and mov all from your web browser flawlessly? do you have video/voice conferencing in gaim? i NEVER understood the "linux on powerbook" zealots. for god sakes. install X11.app, X11 sdk, xcode, and darwinports/fink and you practically have the entire *nix environmen give or take a little ALONG with all the wonderful commercial software for os x.
- tristan
Um, you're not much of a developer, I hope? Or, if you are, do you do most of your work in perpetually late mainframe projects? What you're proposing sounds frighteningly much like writing a specification for the software system at the start, then developing it. This is known as the waterfall model, and there is a lot of consensus that it, well, sucks. Not to put too fine of a point on it.
main(O){10<putchar(4^--O?77-(15&5128 >>4*O):10)&&main(2+O);}
I'll bet money I could get my Mom to figure setting up a printer via CUPS (not the import/export), just sitting her in front of a RH9 box. Oh, she's never used Linux. Eventually she'd notice the printer on the tool bar. She could then start the GUI printer config tool when it asked her if she wanted to do that. Click the Add button. Figure out the IP number and printer model. Put those into the dialog. It's over.
Sharing a printer the way ESR did is very, very odd. I haven't seen a printer directly connected to a machine and then shared in a long, long time. Especially on a Linux network.
Everybody I know who does it that way, sets up Samba, and then uses CUPS to configure the printer to connect to a network share. When you are attempting to set something far off the beaten path, don't be shocked. Just like RedHat doesn't have instructions on how to setup and configure a Mitsumi CD-ROM (it sounds like it could be the one you describe, but the way, I believe that the 2.6 kernel dropped support for all of the old CD-ROM's, if they haven't, Linus is all for it unless someone else starts actively maintaining it. He's said it directly on the LKML, I'll find a reference if you'd like).
I use kickstart to build desktop machines for my work. I have scripted everything down to the last bit when it comes to setup. CUPS was wonderful, becuase you use printtool (or redhat-config-printer), or whatever they call it now. Export the config after setting it up by hand once. Import it everywhere else. It's a whole lot easier then using sed/diff/patch/wget to pull the config files and custom edit them for each machine. Trust me, CUPS is a wonderful tool. I've never even seen the instructions. I just followed the GUI and figured out everything. Then had to track down the import command line. I might have used the man page for that.
Then setup a shell script that clears the current config, downloads the new config, and imports the old config.
wget http://machine/script ; . script
It's the only way to install software....
Cups is orders of magnitude easier, you just have to stay well within what it is designed to do. Sure you can tweak out the Registry to reorder the resolver libraries on a Windows box, but don't expect a GUI panel on the control panel to do it for you. Eric was doing something very odd, in a very old school way, don't be shocked if someone isn't there holding your hand every step of the way. It used to be common to setup a printer that way. It stopped being common at least 3-5 years ago when Linksys and NetGear started releasing sub $100 print servers.
Kirby
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)
I've wanted to be involved in Linux but it's closed to creative idea types.
I disagree. The problem is that many creative people are used to the corporate way of "this is how it should be, do it". With OSS, you have to work with the programmers, not against them.
When a programmer says "no way", ask why. Either you convince him that it's really a good idea, or you change your design to fit the technical constraints. In the corporate world, an impossible webdesign ends up with the entire design used as a background image (been there, done that). In OSS, that would just result in the designer being replaced. Remember, that with OSS, the programmer is the boss, because he is the one who writes the code - or doesn't write it, if he doesn't like your ideas. Unlike the corporate world, where the boss is the one who tells the programmer to do what the designer says, even if it's impossible.
Oh, and remember... Programmers are users too. Advanced users, who can very well recognize an interface that is so dumbed down that it's useless for anyone above beginner level. That's one of the reason some of us ran away from Microsoft. Their interface may be easy for beginners, but when you get past the mouse state, it's terrible.
I think the poor quality of Apple's package manager is deliberate. Apple don't /like/ install software: they think that you should be able to run new software straight from the CD, and installation should be a matter of dragging the application from it's CD or disk image straight to wherever you want it to be installed. Installation programs break the spatial paradigm that is the heart of Mac OS, and Apple's documentation says this.
.pkg format is intended for those (RARE!) times when there's no other choice than to install files in multiple places. The reason you rarely need to do this is because of Apple's use of NeXT-style bundles. Sheesh, even M$ gets this right. You can run Word v.X straight off the Office X CD if you want.
Now, this is useless for command line tools, but Mac OS X is emphatically not a command line OS at heart. The
This also has the *HUGE* advantage that there's no such thing as 'uninstalling'. Because everything associated with an application goes in the bundle, deleting the app is all you need: no auxiliary files are left lying around to mystify you later on.
Then again, what do I know? RPM and apt messed up their package databases so often for me on Linux that these days I always install from source there: it often only takes one broken package, and it's always a complete ARSE to repair. Hah, I've just finished reinstalling fink after it decided to make approximately half of its X11 applications depend on its own X11 port and the other half depend on the system installed X11. According to the fink mailing list this was obviously my own fault. Though they wouldn't tell me any specifics on how this could possibly happen, just that it was nothing to do with them. Wonderful. Having both system-x11 and xfree86 installed simultaneously makes for an amazingly non-broken system. And no, you can't uninstall either. Give me application bundles any day.
(Not that fink is designed for being uninstalled at all. Not that it could resist the sheer unadulterated power of rm -rf. Man, that was satisfying.)
Mac OS X has a command-line interface and X11 in addition to Aqua. Mac OS X is scriptable. It can be used in console (single-user mode). How "productive" or "cool" you want to be is up to you.
Try COMMAND-W if you want a window to "just vanish." Works for me.
The mouse button argument is just juvenile. It's been scorched so many times, I won't belabor it again. Use a two-button mouse or trackpad, CTRL-Click, get another machine and/or S.T.F.U.
Your comment about "closing a window doesn't close an application like it does in the rest of the computer world" brings to mind my mother's admonition to me whenever I stuck my foot in my mouth: If you'd thought about that, you wouldn't have said it. Windows puts the lie to it completely and immediately. 'Nuff said on that.
Now...
Apple's user interface philosophy has always been based on putting as few impediments between the user and a productive computing experience as possible. That means that if a user has a reasonable expectation of something happening, the interface should allow that thing to happen. Drag text to the desktop and create a document? It should work. Universal copy and paste? It should work. Drag install and uninstall? It should work. Little things like having the second cursor disappear when you type are so elegant and right that you don't notice them until they're pointed out to you.
Making things easy is hard. Engineers are notorious for assuming that obscure, arcane interface components are self-evident to anyone. What is "child's play" to the engineer is Greek to the layperson. I'm a musician, and other trained musicians understand what I mean by "I-VI-II-V," but it's not important (or accessible) to most of the people who hear it. They just know that it sounds good. Same with user interface. Apple gets that. Testers at Apple have an almost adversarial relationship with the engineers when it comes to interface; if the user doesn't "get it," it usually can't go into the produuct.
The user is not the "lowest common denominator" there; the user is the person who pays the bills and calls the tune. And the user doesn't want to configure. The user doesn't want to tweak--as a rule. The user doesn't bust a nut bragging about what a bitch it was getting the latest distro to compile and run. The user wants to use the machine. In Mac OS X, Aqua allows them to do that. If you think CLI is "productive," hold down COMMAND-S when you boot and knock yourself out. But don't try to convince me that the interface ought to be brought up to your level of intelligence or proficiency or "coolness"; manufacturers would have to add a DUH! key.
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.
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
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...
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.
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.
OK, I don't have much experience with C++, but my development speed in Eclipse is waaayyy faster than with syntax-highlighting vim or whatever. Package layout on the left and method layout on the right is something that I can't imagine doing without. Ctrl-click to jump to a class saves tons of time, as does Ctrl-space to finish syntax for me (Eclipse is really good at guessing what syntax I want even if I don't start the syntax for it, by only giving me type-compliant options). Also, CVS or VSS (my work makes me use it) integration saves lots of time. Just a few points.
"Now gluttony and exploitation serves eight!" - TV's Frank
IDE's are wonderful. But so long as they insist that I type less efficiently (by, for example, requiring that I keep losing my home-row position of my fingers by always moving my hand to the arrow keys and the mouse), then their help isn't worth their hindrance. I do use IDE's for debugging, but not for composing. The day a good IDE supports a better editing keyboard mapping, I'll consider using it.
As you say, typing isn't the point of programming. But this is all the more reason to make it go by faster - so you can spend time thinking instead of doing manual labor.
Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.