Chad Perrin: SOB

25 July 2008

Is a GUI its own reward?

Filed under: Geek — apotheon @ 03:55

The first comment on my latest article, Use tcpdump for traffic analysis, has this to say:

You’re missing the boat when you make a case for “tcpdump VERSUS Wireshark”, et al. I use command line tcpdump packet captures on a daily basis, and 98% of the time I dump the output to a file, only to then load it up in Wireshark to do the real packet analyzing. tcpdump AND Wireshark go together hand-in-hand; tcpdump is an easy way to copy what is traversing an interface, and Wireshark is an easy way to view that traffic in a graphical format. (FYI – the other 2% of the time I’m dumping the output to a screen, just to see if traffic is passing through…)

The notion that having a GUI is a good thing in and of itself seems to be a pervasive one. Nobody seems to be able to provide any useful explanation for why he or she values the GUI so highly other than facile ramblings like “A GUI is easier to use.” Of course, in my experience a GUI gets in the way at least as often as it makes anything “easier”. Certain application types are certainly suited to use via a graphical user interface (browsers and image editors come to mind), while others do not (such as text editing, as proved by the clear superiority of Vim over GUI editors).

Basically, people seem to think that having a GUI is good because GUIs are necessarily, inherently good. I’ve never really been able to buy into the notion that having a GUI should be a primary goal for choosing software. If I want a GUI, it’ll be because the GUI serves a purpose.

Am I missing some assumed argument for the benefits of a GUI, or do people really just think the GUI is its own reward?

13 Comments

  1. I think people really do just thinkg the GUI is its own reward. I used to be in that crowd myself.

    What sold me on the command line are utilities like PuTTY, SSH in general, nmap, wget and other tools that just have no way of being as good if they had a gui frontend (or even a need for one, although that’d be an exception as it’s all configuration screens before you login).

    Comment by Joseph A Nagy Jr — 25 July 2008 @ 04:20

  2. GUIs used to be the shiny new software toy of the industry — the raison d’être for the shiny new hardware toy: the mouse. A generation of computer users has now grown up used to that interface — without questioning its efficiency. But many in the know understand how much more precise text commands can be, so we may eventually see a shift — unless other graphical interfaces (like that in the iPhone) make themselves more usable over time.

    Comment by Sterling Camden — 25 July 2008 @ 04:41

  3. The iPhone’s interface is extremely nifty. It would be nice to see it make it to more mainstream systems. And it shouldn’t be a huge resource hog. If you can get such smooth touch screen use on a phone, on a big rig (even a laptop) with more juice it should have even better control. Touch sensitive screens for monitors have also been in use a lot longer.

    Comment by Joseph A Nagy Jr — 25 July 2008 @ 05:14

  4. […] Chad Perrin: SOB » Is a GUI its own reward? More like its own punishment (tags: gui ui design) […]

    Pingback by links for 2008-07-26 -- Chip’s Quips — 25 July 2008 @ 08:34

  5. a graphical interface, well-done, provides a coherent representation of the most commonly used features of the tool. it is easier to search that for what you want than a man page. for casual users it is less investment to get what they want. also it is a more natural environment for getting graphical representations of data, as your poster seemed to want.

    the difference between using a GUI and using a CLI is like the difference between recognizing a word from its spelling and being asked to spell it.

    Comment by sosiouxme — 26 July 2008 @ 09:13

  6. having used both environments heavily, I will have to disagree with you.

    1) Using a man page is so insanely simple and resource friendly as to make a gui help system seem ridiculously outmoded. 2) Most cli tools aren’t terribly complex to begin with and it’s so easy to combine multiple commands into one-liners so as to save time and effort. Take for example the compression utility tar and bzip2/gzip/zip

    With a simple one liner (one I used to use very often) I could compress any number of files over disparate sections of the file-system into one uber-compressed (depending on type of files, of course) file. Using a GUI tool such a task would have been overly-complex and time consuming. There’s no way I could add all the files without having to copy/paste the files into a centralized location.

    That’s just one of many of examples of where the CLI environment is superior over any GUI you stick on top of the tool in question.

    In my experience, the difference between using a GUI and using a CLI is the difference between night and day. One appears productive and the other is actually productive and efficient.

    And don’t even get me started on cron vs. Windows task scheduler.

    Comment by Joseph A Nagy Jr — 26 July 2008 @ 12:12

  7. sosiouxme:

    a graphical interface, well-done, provides a coherent representation of the most commonly used features of the tool.

    This is true. I don’t exactly see how a description of good GUI design makes GUIs better than CLIs, though. That just explains how some GUIs are better than others.

    it is easier to search that for what you want than a man page.

    That depends on how well the GUI is designed and how well written the manpage is. There are quite a few atrociously written manpages out there — just as there are quite a few atrociously designed GUIs out there.

    for casual users it is less investment to get what they want.

    I don’t think that works as a categorical statement. GUIs actively get in the way sometimes — even for “casual users”. For instance, navigating through Digg’s interface is an exercise in frustration when encountered for the first time. Discoverability is quite poor there.

    Meanwhile, there are CLI utilities with excellent discoverability. Sure, you might have to know that --help gives you information on how to use the svn command before that discoverability becomes available to you, but the same could be said of knowing how to use a mouse. Familiarity with CLI tools might give you insight into how discoverability works for most CLI tools, just as familiarity with GUI applications might give you insight into how discoverability works for most GUI apps.

    also it is a more natural environment for getting graphical representations of data, as your poster seemed to want.

    I have to ask — have you used Wireshark? The only “graphical representation” of data that it provides is basically color-coded lines of text with a scrollbar on one side. Even if it provided graphs, or other more graphical representations of data, though, there’s nothing to say you couldn’t have a console-based application displaying them, other than the fact that most developers default to GUI applications for displaying such things.

    the difference between using a GUI and using a CLI is like the difference between recognizing a word from its spelling and being asked to spell it.

    Actually, I’d say the difference might be more like between:

    1. the ability to read and point

    2. the ability to read and write

    All of that having been said — I of course know that there are times a GUI application makes better sense than a CLI or other TUI application. Web browsers, for instance, lend themselves to a GUI treatment — I have yet to meet a TUI browser I liked. The notion that a GUI is inherently superior, however, is sheer poppycock, and from what I’ve seen Wireshark provides nothing for its GUIness that a TUI lacks other than the GUIness itself. In fact, in my experience, most software works better with a CLI — and of the remainder, captive TUIs tend to be better options than GUIs about half the time, at least.

    Joseph:

    Using a man page is so insanely simple and resource friendly as to make a gui help system seem ridiculously outmoded.

    In principle, I agree. Sadly, many man pages are very poorly written — making them difficult to use. For instance, while man man on FreeBSD gives me relatively easy to understand documentation, the same command on Debian GNU/Linux leaves something to be desired in terms of clarity.

    The problem, though, is not with manpages themselves — but rather, with the way many of them are written. Thus, I agree in principle, though in practice my agreement varies from one manpage to the next.

    Help documentation for GUI apps tends to be as badly written as many of the more poorly written manpages, though, and worse than that it tends to be a lot more limited in terms of the information it provides to the user — thus combining the failings of many manpages with failings more common GUI help documentation systems.

    And don’t even get me started on cron vs. Windows task scheduler.

    That’s an excellent example of where the CLI is just a better interface than the GUI.

    Comment by apotheon — 26 July 2008 @ 10:15

  8. Yes, there are a lot of man pages out there that might as well not exist at all for as much help it provides. As for the differences in man pages between distro’s, didn’t even realize there was a difference. Suck.

    I am constantly in awe at how powerful crond really and truly is. The first time I actually got crond and cron, the next time I used Windows Task Scheduler I just found myself frustrated with everything that WTS lacked, how hard it was to access and to use. I still find myself wishing for crond and cron on Windows. I should probably google for that. That would be 8 different kinds of win held together with win cement.

    Comment by Joseph A Nagy Jr — 27 July 2008 @ 05:56

  9. Yes, there are a lot of man pages out there that might as well not exist at all for as much help it provides.

    Even worse than a bad manpage, though, is a manpage that basically says nothing but “go see the info page”.

    As for the differences in man pages between distro’s, didn’t even realize there was a difference.

    There are differences from one Unix-like OS to another. I find that the manpages on FreeBSD tend to be among the best I’ve seen, but there are so many manpages for Debian that it sometimes has manpages that don’t exist at all on FreeBSD (usually just manpages for specific configuration files).

    Comment by apotheon — 27 July 2008 @ 11:50

  10. The vast majority of non-technical users (and, I suspect, many techies who didn’t cut their teeth on CLI-based systems) are thoroughly indoctrinated in the Church of the GUI. Even though typing ls -l is worlds faster then launching Windows Explorer, most folks couldn’t make sense of the file listing that results. But they intuitively grok the visual metaphor of a tree with files and folders.

    I’m probably the same way now, despite having a fair amount of experience with old DOS and Un*x. I’ve used Windows for so long that I have probably rewired my brain to think in terms of visual computing–it even dominates my software development. OTOH, object-oriented programming does, I think, lend itself well to graphical IDEs.

    Of course, none of this is to suggest that GUIs for their own sake are inherently better. Just that a lot of people are, I think, incapable of using non-visual tools without a considerable amount of retraining.

    That said, I really do like vim and still use it regularly . . . even if it’s the Windows version!

    Comment by Brian Martinez — 27 July 2008 @ 05:26

  11. I’m not sure you’re entirely correct, Brian.

    I cut my teeth on Windows 95 starting back in 1997 and the vast majority of my experience is in Windows. I’ve used several different linux distro’s (Debian, Gentoo, RedHat mainly) and even then I probably have less then 5 man-years under Linux.

    The retraining isn’t considerable, it just requires a willing change on the part of the user to think of things in a different manner. The change to CLI from GUI isn’t about which is better, but about whether or not the end user wants to make the change. My next few days off I’m going to be learning how to compile from source — via MinGW — on Windows as well as installing GhostScript. Both of which are going to require a lot of command line usage on my part.

    Anyway, to summarize, I think the people are capable of making the change without retraining as long as they are wanting to make the change for whatever reason they deem valid.

    Comment by Joseph A Nagy Jr — 27 July 2008 @ 05:54

  12. I think I’ll aim squarely between the two of you:

    Switching from long GUI usage to a CLI mindset does require retraining. It just doesn’t require a whole lot of it to get the hang of it. The major adjustment is not the retraining, though; it’s the deprogramming. Long GUI usage seems to indoctrinate the user, instill biases, which must be overcome for the retraining to work. That’s the real challenge — overcoming biases. The retraining is quick and easy, once the biases are swept away.

    Brian’s reference to “the Church of the GUI” is pretty well spot-on. The limiting factor, in making the switch from GUI-only environments to facility with the CLI, is one’s GUI-oriented belief system, acquired through long indoctrination. Part of that belief system is the belief that the GUI is inherently “easier” to use than the CLI. As long as someone accepts that without questioning it, and will not open his or her mind to the possibility that it’s an incorrect assumption, it will prove to be a self-fulfilling prophecy — because one cannot effectively learn something that one rejects as untrue on what amounts to religious grounds.

    Comment by apotheon — 28 July 2008 @ 12:31

  13. GUI is the greatest turnaround in the history of computers. It gives the look and feel the system deserves. It is user friendly. It is definetely its own reward. It deserves the same. Right now I cannot imagine computing without GUI. It is so user friendly. GUI has given rise to many many products including desktop and web products. Now the world of computers cannot live without GUI. It is a prime necessity. WEB 2.0 is the latest example of a species of GUI, there are many though.

    It deserves the pat on its back !

    Comment by A.S.Pardeshi — 31 July 2008 @ 12:21

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

All original content Copyright Chad Perrin: Distributed under the terms of the Open Works License