> digg | del.icio.us <

 Menu
Home
About
Contact
Links

Site Map

 Top 5 Pages…
Darrin's Dining Guide
Home
Links
Darrin's Weblog

The Out Campaign: Scarlet Letter of Atheism

Darrin Chandler's Weblog

GUIs Should Never Be Compulsory. Never. by Darrin Chandler [25 Nov 2008 09:00 MST]

A friend of mine, Jeff Duntemann, wrote this interesting bit at the end of his blog post today:

I have a gripe about Ubuntu that I might as well air at this point. The folders in which you unpack Eclipse plug-ins are owned by root, and unless you're running as root you can't unpack files into those folders. Fair enough. I had hoped that Ubuntu and Gnome would have evolved sufficiently since I last did this sort of thing to just pop up a sudo dialog when the user (and we're all users on this bus; Ubuntu does not really have a root account in the strict sense of the word) attempts to do something that violates permissions. But no; it throws up a fairly useless message and glares at you. To get the job done you have to bring up a terminal or the graphical command line dialog and run "gksudo nautilus" to run Nautilus as root. Installer systems like apt-get don't throw tantrums like that on you; when they need permission to install files in folders owned by root they just ask for your password. Nautilus needs to do that.

After all, I'm the Visual Developer Magazine guy, and I have a fetish: Command lines should never be compulsory. Never. It's 2008. We're supposedly all OS grown-ups now. Fundamental things like file management should be 100% point-and-click.

Ordinarily I wouldn't have given it a second thought, but Jeff has been using computers at a deep technical level for a looong time and should know better. He's not just a computer user, he's also a programmer and an author, so a lot of what he does involves typing.

So what does that have to do with anything? It's simple: captive GUI interfaces are usually a limiting factor in getting things done compared with command-line interfaces. The places where GUIs shine (or at least are supposed to shine) are in inherently graphical apps, and in providing a low barrier of entry to a novice or occasional user of an app. For pretty much everything else there is a better way, and it's not new. The functionality covered by Nautilus already exists at the command line in a simpler, more powerful, and more expressive form. Functionality still missing from Nautilus is already working and complete at the command line. So called “File Manager” functions are so intrinsic to computer use that anyone who uses computers at all should be intimately familiar with them. In fact, there is probably no better example of something that justifies climbing a learning curve because the payoff is so high for such a large segment of users. If you can only type 10 words per minute you can probably still be more effective at the command line.

So many people have been using Windows or Mac for so long that they've bought into the concepts MS and Apple have been selling, even though they were never true. At least with OS X, Apple provides enough UNIX-like functionality that people who aren't Linux geeks are discovering the power of the command line. On the other hand, Linux distros are so bent on beating Windows that they are ready to sacrifice the UNIX's greatest advantages in the name of usability.

Some years ago I was working in a Windows shop and a fellow developer came to me with a personal programming problem: she was changing phone numbers and had the choice of several, and wanted to know if any of the numbers would spell something easy to remember. She was a good developer but she couldn't think of a way to implement it that would be worth the time. I wouldn't have done any better, except that I had shell access on a Linux machine. With the word list available in /usr/share/dict/words and some shell and Perl glue I had her program done in minutes.

Where I work now we don't have any Windows machines. I have a big iMac on my desk, and our servers are Linux and OpenBSD. My desktop is full of xterms, I use Vim (NOT gvim) as my “IDE”, and my life as a developer has never been sweeter. Apart from the IT and development staff, operating system experience is less of a factor than job function skill, so we have people here who had only Windows experience who have been thrust into the world of Mac & Linux. It's very interesting to see the effects. At first there's surprise that the local guru can make something happen so quick (this happens with Windows sometimes, too). Then there's a dawning sense of wonder that they, too, can possess that power (this pretty much never happens with Windows). One Windows guy is so impressed with UNIX's power that he bought a laptop with Linux preinstalled for his next personal computer.

The basic truth here is that you can get an awful lot done very easily at the command line, and if you can do that then you can put those commands into a file and have a script. If you learn a little more you can extend your script with control flow and other goodies. And this is all available to ordinary users, not just programmers. The huge number of small, single-purpose utility programs available on any UNIX system make it easy to accomplish an astounding variety of tasks by combining them with pipes. It's like the “mashup” idea that Web 2.0 people think they invented, but on steroids.

Anyone getting into Linux, BSD, or Mac OS X should read The UNIX Philosophy by Mike Gancarz. It's a short book, and even more wonderful that so much can be packed into so few words. Most people will never give up their GUI, and I wouldn't encourage them to do so. But I encourage everyone to learn the power of the UNIX command line. If you give it a real shot then it will change the way you use computers for the better.

All Entries

Tidbits from the past…

 

Hosting by Intrepid

Google
Web Stilyagin.com