News for hackers. Stuff that matters.
Re:The limitations of terminals as an interface by blahedo on Wednesday December 02, 2009 @09:35PM (#973543)
His comments about cognitive load are valid, and a real concern---a good interface needs to let you focus on the core stuff and not make you remember everything about everything. There are two big weaknesses, though, at slightly different levels of interface.

At the input level, he seems to forget that keyboards (with somewhere between 50 and 100 keys that I can strike exactly and digitally) are fundamentally a better input interface for expert operations than the mouse/trackpad/pointer (with a rasterised but basically more analog feel that makes me "look where I'm going"). GUIs are great but there are relatively few that have the level of keyboard control that you can get with a terminal-based app.

The second is that text apps let me give commands with arguments much more straightforwardly; there is a language I speak, where GUI-based stuff is more like grunting and pointing. Clicking a mouse on a button or menu item is like calling an argumentless function(). Maybe you highlight something first and it's more like an argumentless selection.method(). Being able to type your command out, if it's at all complex, is just simply more powerful, and so text-based interfaces aren't going away any time soon.

Re:The limitations of terminals as an interface by ilaksh on Wednesday December 02, 2009 @09:51PM (#973570)
"At the input level, he seems to forget that keyboards (with somewhere between 50 and 100 keys that I can strike exactly and digitally)"

A GUI does not preclude the use of the keyboard. Keyboards are terrific for entering text and many other things.

" are fundamentally a better input interface for expert operations than the mouse/trackpad/pointer (with a rasterised but basically more analog feel that makes me "look where I'm going")."

This is fundamentally incorrect. See the millions of Photoshop, Visual Studio, Notepad++, GEdit, Eclipse, Microsoft Office, Autodesk, Blender, Visio, Labview, Mathematica, Quickbooks, SAP, Oracle and other users of proprietary application-specific software. Do those users consider themselves to be experts? Do the accountants working at your company consider themselves to be experts? Do you really believe they would be more productive if they had to work in a terminal all day?

"GUIs are great but there are relatively few that have the level of keyboard control that you can get with a terminal-based app."

You suppose that this level of keyboard control is required without providing any basis.

"The second is that text apps let me give commands with arguments much more straightforwardly; there is a language I speak, where GUI-based stuff is more like grunting and pointing. Clicking a mouse on a button or menu item is like calling an argumentless function()."

The way this works in interactive GUI applications is that they provide input forms and status indications to communicate with the user.

"Being able to type your command out, if it's at all complex, is just simply more powerful, and so text-based interfaces aren't going away any time soon."

Textual command systems and scripting languages are frequently integrated into GUIs. Another natural progression though is for frequently used commands to be represented by interactive widgets and dialogs. The fact that interactive graphical controls for many commands are missing often is simply the case because they have not yet been implemented.

I think that there is definitely some work to go in integrating textual language-based communication with visual interactive systems and exactly what form that will take I cannot say. But I think its important not to throw out the visual, two dimensional, interactive and even multi-user collaborative capabilities we have now but rather to integrate them with finer-grained language-oriented features of textual languages.

Re:The limitations of terminals as an interface by lanaer on Wednesday December 02, 2009 @11:53PM (#973745)
" are fundamentally a better input interface for expert operations than the mouse/trackpad/pointer (with a rasterised but basically more analog feel that makes me "look where I'm going")."

This is fundamentally incorrect. See the millions of Photoshop, Visual Studio, Notepad++, GEdit, Eclipse, Microsoft Office, Autodesk, Blender, Visio, Labview, Mathematica, Quickbooks, SAP, Oracle and other users of proprietary application-specific software. Do those users consider themselves to be experts? Do the accountants working at your company consider themselves to be experts? Do you really believe they would be more productive if they had to work in a terminal all day?

-------------

Um, isn’t that particular quote you have there about keyboards vs. mice, rather than command-line vs. GUI? (Next paragraph he talks a bit about one advantage of command-line, but it is a different point than this one).

Expert photoshop users rely quite heavily on the keyboard (keyboard shortcuts specifically), for many operations. The mouse is also used heavily, of course. The keyboard just can’t select portions of an image very effectively, or help you point at a pixel you want different, etc. Whenever I see a Photoshop expert do something to the image, though, they’ve used the keyboard, where beginner users (like me) just use the mouse.

For most of the others, I expect expert X users are similar to expert Photoshop users. Then there are the rest, which are very text-oriented and therefore mostly keyboard-driven by default.

On to the actual GUI-vs-command-line argument.

You say “The way this works in interactive GUI applications is that they provide input forms and status indications to communicate with the user.” His argument was that this is less straightforward than just typing the arguments next to the command. I do not think you have refuted his point.

The simple fact is that both interfaces have their places. I do a lot of work in both, and I think it will pretty much always be that way (for me).

I do not think text-oriented command interfaces will go away while we still read & write, though hopefully they will indeed become friendlier with graphical interfaces.

Re:The limitations of terminals as an interface by ams6110 on Wednesday December 02, 2009 @10:00PM (#973577)
Exactly how I feel. With text-mode interfaces I have the feeling of telling the application what I want it to do in verbal terms, which I find easier to remember than which button or menu selection does what I want.

The author states: The disadvantage I feel most keenly when using a terminal is the cognitive load. I have to keep more in my head when using a terminal/command-line-based interface. Again I find the opposite to be the case. When I use Visual Studio I feel overwhelmed by the GUI. Panels and scroll bars everywhere, buttons, menus, etc. Contrast to Emacs, where I have, very simply, one large area for editing text. I can focus on what I'm doing.

It's sort of a Feng Shui thing: the busy GUI is the cluttered room that drains your positive energy and causes constant low-level stress. The text interface is the well-organized room that has everything you need but it's out of the way until you actually use it.

Re:The limitations of terminals as an interface by jcapote on Wednesday December 02, 2009 @10:06PM (#973581)
I agree with you as well. However, this should be taken into account (wish I could find a reference for this):

"A study done by Bruce Tognazinni when we was at Apple (a company that has had a good track record of designing for the mouse) showed that using the keyboard felt faster but was slower while using the mouse felt slower but was actually faster."

Re:The limitations of terminals as an interface by blahedo on Thursday December 03, 2009 @06:35AM (#974155)
It definitely depends on what you're doing and how your interface is set up. If you're editing text in a non-monospace font at a non-super-high font size, and you want to insert between (say) two lowercase L characters, you need some fairly precision mousework, and that takes time.

And it will almost certainly always be easier to do actually complex operations via text (especially if you might be repeating them or slightly modifying them). Just yesterday I was generating a PDF packet with pdftk, and had a command line of the form "pdftk file1.pdf file2.pdf blank.pdf file3.pdf cat output outfile.pdf" that I kept having to re-run (because I'd modified file2.pdf) or tweak (because I added file4.pdf). It's possible that the first pdftk would have been quicker in a GUI---though I'm not convinced---but in the aggregate there's no way a series of GUI ops would have been faster. And I'm not even sure how I'd accomplish something like "mv *.jpg jpg_subdir/" in something like Finder without a lot of manual finding and clicking and dragging and making mistakes.

Re:The limitations of terminals as an interface by warwick on Wednesday December 02, 2009 @11:03PM (#973668)
Re:The limitations of terminals as an interface by ilaksh on Wednesday December 02, 2009 @10:28PM (#973619)
The Visual Studio GUI probably is suboptimal. You may be distracted from the editing window sometimes by the other controls. One thing you can do is disable or hide many of the Visual Studio controls.

However, the cognitive load of this distraction is lower than that of having to remember keyboard commands.

Once you have spent a certain amount of time in EMacs, (a very long time) most of those keyboard interactions will become subconscious. Its a long time though. Also, the most frequently used keyboard commands are available in the GUI interface for people that choose to learn them. And environments like Visual Studio are often fully customizable, enabling users to add their own keyboard shortcuts, macros, etc.

One feature in most GUI environments that you may not have discovered is the 'Tool Tip'. By hovering your mouse cursor over various toolbar buttons you can cause a short textual description to appear.

Re:The limitations of terminals as an interface by lanaer on Wednesday December 02, 2009 @11:33PM (#973715)
> However, the cognitive load of this distraction is lower than that of having to remember keyboard commands.

I do not find this to be the case. But then, there are various keyboard commands, both in Vim and on the command line, that I do not really have to call to mind before using. I just type them when needed.

It’s really weird how that works, actually, how with many things (I’ve noticed this with GUI interfaces, too) the mind will learn it to the point where you don’t need the conscious part of you to be aware of it anymore.

So I think this is really about what we’re most used to, what our mind has adapted to. I feel very clumsy if I’m editing in something other than Vim, because that’s what I’ve adapted to.

For a time, I had gotten used to typing correct apostrophes and quotes ( ‘ ” “ ), such that I could no longer automatically type a ' or ". I had to think about those primes if those were what I wanted, although the quotes are certainly harder to type.

So what am I saying here? I guess I’m saying that we can’t rely on our own experience too heavily — whichever interface we find we have to think more to use may be far more natural for another, and all of that may be entirely irrelevant from an objective standpoint.

Re:The limitations of terminals as an interface by ilaksh on Thursday December 03, 2009 @04:14AM (#974008)
The point is that the windows/toolbars/icons/tooltips/buttons/mouse/etc. GUI is an interface you can learn and apply everywhere with minimal inspection required to get up and started using an unfamiliar GUI, whereas textual interfaces take much more investment in time to learn and effort to inspect.
Re:The limitations of terminals as an interface by yycom on Wednesday December 02, 2009 @10:02PM (#973579)
Trite as it is, both text and GUIs have strengths and weaknesses. I don't understand why we can't have both. I'm pissed that I'm forced to use the mouse in Firefox (losing focus bug for many years) and Mac OS (why can't I tab to the button I want to press in a dialog), and I have to dig around the manual to learn the arcana of vim.

IMO the best interface is one where I can point and grunt to do arbitrary things, and while doing so the interface teaches me its own language with prompts and contextual help.

Re:The limitations of terminals as an interface by blasdel on Wednesday December 02, 2009 @11:43PM (#973732)
Hit ^F7, or System Preferences > Keyboard & Mouse > Keyboard Shortcuts > Full Keyboard Access > All controls

You know how the default action in a dialog is a solid blue aqua button, and hitting enter presses it? When this preference is turned on, there's an additional blue tab-selection halo that fires its button when you hit spacebar, and it always defaults to the cancel/don't button.

Re:The limitations of terminals as an interface by azakus on Thursday December 03, 2009 @02:24AM (#973897)
There is Vimperator, a plugin that applies vim keybindings.