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'!"
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'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.