when LUI does it better than GUI.Presentation Transcript
GUI is limited.LUI is powerful and is coming. @eig 1stComKUCamp 2009 28/6/2009
GUI - Graphical User Interface
GUI is great! 2+ dimension perception
GUI is great! Specify position
…But it is far from perfect
GUI == point-and-click IU
LUI – linguistic USER Interface
When LUI is (much far) better
#1 Lots of choices to command
MS WORD PHOTOSHOP start up menu
GUI10+ objects (commands) – not easily point LUI Uncountable objects (commands) - directly recognize and type
#2 Define higher-level command
“Hey Firefox? Select this page, translate it to Spanish, encrypt it with my mom’s public key, email it to her, hit send, and oh yeah save this chain of commands as a new command so I can use it later. Let’s call the new command ‘garblify’.” http://jonoscript.wordpress.com/2008/07/26/why-verbs
Proof of power of LUI BASHAlthough it has extremely high learning curve (for user).
GOOD LUI JonoDiCarlo said… http://jonoscript.wordpress.com/2008/07/21/language-based-interfaces-part-1-the-problem/ easy to learn. efficient. expressive. abstract away details that user doesn’t care about.
ease of learning very close to the human language Clues available commands What to type next. What will do if executed. Suggest other commands might be looking for arguments what ranges are valid what they mean. Propose commands appropriate to my working context or to the type of data I have selected.
efficiency Allow the user to start with the noun or to start with the verb. Let me autocomplete a partial word with a keystroke. Recognize words even if they’re super-abbreviated. Remember what suggestions I’ve chosen in the past and pop them up next time I give the same input. Let me partially enter something, see the suggestions, choose one as mostly-right, and edit that one some more before executing it. Guess, from my context and my selection, what I want, and fill most of it in for me, while letting me easily override it if it’s wrong.
expressiveness Handle commands with multiple arguments, including optional arguments, that can take various data types. If I have data selected, let me use that selection as an input for any of the multiple arguments — or for none of them. Let me chain commands together, with the output of one going to the input of the next, like Unix pipes. If my input could mean more than one thing, give me a sensible way to resolve the ambiguity. Let me compose a complex command out of small parts, in the flexible way that natural language does. Let me save a complex command that I’ve created and give it a simple name so I can re-use it in the future. Give me an easy way to create my own commands — and to share them with others.
abstract away details that user doesn’t care about.
Ubiquity Firefox awesome bar Quicksilver Google Desktop gnome-do