4 ms·
An interesting thesis to be sure, but his pictionary example highlights where it breaks down. Using a graphical UI is not like drawing a picture of what you wan
by seldo 15y ago
An interesting thesis to be sure, but his pictionary example highlights where it breaks down. Using a graphical UI is not like drawing a picture of what you want; it's manipulating a pseudo-physical interface using a mouse (for desktops) or your actual fingers (mobile devices and tablets).
In the real world, if you were sitting next to a stereo, would you prefer to instruct the person sitting next to you to load a song and hit play, or would you prefer to just do it yourself? That's the difference between a command line and a GUI: the difference between describing an action and performing it directly.
As for discoverability: saying you need to "know a language" to know that your song is in a folder, and that folders are nested, and that they reside on drives, ignores the fact that you need to know one for a command line too: you need to know the command "play" exists; you need to know that song names should be in double-quotes. You need to know the keyword "random" (rather than "shuffle"), and whether or not it understands commas.
In a GUI you can spot an icon with a musical note on it, and that's your first clue. Then you can poke around and see a round button with a triangle on it, a 40-year-old visual convention. The inherent discoverability of a visual interface is its primary advantage.
I clearly remember 15 years ago, sitting at a freshly-installed Linux command prompt, and being utterly frustrated. I wanted to explore the system, but didn't know the words. How do you discover "ls"? You can't even use "man" (if you knew about that, which I didn't) because you need to know the command in advance.
- wccrawford 15y agoYour radio analogy holds for people who are new to something, but for experts, it's exactly backwards. Using the CLI is often much quicker and easier than the GUI. Unless you meant that it's easier to ask someone to play a tape for you, if you've never done it for yourself before... And then I guess it holds both ways.
- seldo 15y agoIt's certainly easier for experts, but that was not his point. His thesis is that the command-line is really easier for everyone, and I just don't think that holds water.
- dhimes 15y agoNot to mention that a poorly designed GUI can also be frustrating. I couldn't get this working on my ipad when I tried: http://news.ycombinator.com/item?id=2809451 http://news.ycombinator.com/item?id=2809451 Nothing was discoverable.
- nraynaud 15y agoStudies where conducted (at Apple I think), experts made more mistakes about vi current edit state than beginners who where constantly checking it visually. Other studies checked experts on GUI stuff, and they where making more mistake with shortcuts and took longer to correct them than by using the mouse all the way. But there was a big problem: when asked they never recognized it and had to be shown the actual numbers to undertand it. Looks like a confirmation bias all the way down.
- tresta 15y agoTo find out about man -- apropos manual and to find out about ls -- apropos "list directory" This doesn't change the fact that your average shell is not configured for beginners. There should be a banner offering a tutorial or something on first startup. Also, apropos should by default make a AND search instead of OR when given several arguments. And maybe something like the friendly interactive shell should be made the default -- http://fishshell.com/ http://fishshell.com/
- seldo 15y agoYes, but how do I find out about "apropos"? I've been using Linux daily for 16 years now and this is -- really! -- the first time I've heard about this command.
- wccrawford 15y agoDitto that. I came to Linux from a DOS background, where I was pretty proficient. My first attempt went down in flames and I didn't come back for years. Now that I've learned it enough to consider myself 'good' (but not 'expert'), I prefer it. That took a LONG time. Longer than it took for DOS, actually.
- tresta 15y agoLike I said.. the shell should offer a tutorial by default on first login. And 'help' should probably be a built-in (like it is in fish!) that explains how to navigate the help files, and give a brief introduction to the shell. The non-obviousness of these commands is not an inherent flaw of the CLI, it's an implementation error.
- rocktronica 15y agoFair enough, but I think you'd appreciate the point more if you were imagining Zork instead of Linux.
- LiveTheDream 15y agoDiscoverability of GUI components is definitely a big advantage of graphical programs. A bit of NLP magic could help. Most CLIs have this at an extremely basic level -- invoke the command with invalid arguments and it will print out a short "help" blurb. Some tools (e.g. git, sbt) take it a step further and will suggest alternatives based on similar commands. 'git sattus' will ask if you mean 'git status', for example. WolframAlpha has a particularly interesting interface where you basically type natural language and it tries to parse it into a formal language. It then shows you the formal input interpretation (in addition to the output). This lets you immediately see if the program interpreted your command correctly, because a person can understand the formal specification of the command very easily. If you, the person, detect a misunderstanding it is then very simple to update your input so it's parsed correctly the next time. For example, look at these queries. Note the formal input interpretation of the first, and the "closest interpretation" of the second: http://www.wolframalpha.com/input/?i=is+10+percent+of+the+population+of+united+states+%3E+25+million%3F http://www.wolframalpha.com/input/?i=is+10+percent+of+the+po... http://www.wolframalpha.com/input/?i=combinations+of+1%2C+2%2C+3 http://www.wolframalpha.com/input/?i=combinations+of+1%2C+2%...
- pluies 15y agoStrangely enough, WolframAlpha seems to understand your first query but gives the wrong answer nonetheless. "is 10 percent of the population of united states > 25 million?" => WolframAlpha says "false". But the population it uses is 309 million, so 10% of it is 30.9 million, which is actually greater than 25 million. Apparently it's a syntax problem: http://www.wolframalpha.com/input/?i=is+population+of+united+states+%3E+25+million%3F http://www.wolframalpha.com/input/?i=is+population+of+united... False. But surely 309 million is greater than 25 million, right? Wait, 25 million, but it doesn't have any unit. So let's add "people". http://www.wolframalpha.com/input/?i=is+population+of+united+states+%3E+25+million+people%3F http://www.wolframalpha.com/input/?i=is+population+of+united... True. Ah-ah! So let's get back to those 10 percent... http://www.wolframalpha.com/input/?i=is+10+percent+of+the+population+of+united+states+%3E+25+million+people%3F http://www.wolframalpha.com/input/?i=is+10+percent+of+the+po... i.e. your example plus "people". Still says false. http://www.wolframalpha.com/input/?i=is+10+percent+population+of+united+states+%3E+25+million+people%3F http://www.wolframalpha.com/input/?i=is+10+percent+populatio... Finally, it works. But it highlights the fact that your syntax has to be very specific to be understood by Wolfram. Which makes the whole thing very error-prone and not discoverable. (Which is a shame because I love CLIs too!)
- andrewflnr 15y agoThe author had already described command line tools in terms of language learning when he mentioned the "language" of graphical tools. His point was "yeah, you have to learn a language to use command-line tools, but you have to learn a different one to use graphical tools." I like your point about describing versus doing. It seems to capture not only the difference in paradigm, but why you would want to use either one for a given task.