The animations serve a valuable purpose, though, especially for new users. They show what's happening. Lots of old UIs (like those running in VT100 emulators) had instant wipes from one view to another, but made it impossible to tell what had happened, or why. Even when I wish animation was faster (like with Spaces, sometimes), I rarely wish it didn't exist at all. I often have people watching me, and with animations…
Learning from Terminals to Design the Future of User Interfaces
271–280 of 379 posts
Re: Learning from Terminals to Design the Future of User Interfaces
#272Earlier quoted context omitted.
I’m accustomed to typing “s” for StackOverflow, “g” for GitHub, “gm” for Gmail, and probably several others I don’t even realize. This sort of “smart” / reachable interface seems like an improvement over having to type entire words over and over. Is there a terminal with similar ability?
Fish's abbr feature does this. They're aliases that expand in place. For example I have gph abbr'd to "git push origin HEAD", and I can continue editing the command after expansion.
Like if I put `ll !$` it would show, say, `ls -al /home/user/downloads` on a new line.
I'd love tab style completion that offered explicit history as well as standard completions. So if I `find` and then press the completion key-combo I get a list of the last 10 unique find commands (and I can choose one and edit before running).
Re: Learning from Terminals to Design the Future of User Interfaces
#273Earlier quoted context omitted.
Maybe because, the cli mode means, you need to remember the commands? In GUI mode, though inefficient, you know exactly where to access help and a few basic params (like dropdown menu on top, usually save under file, cut and copy under edit) that smoothens the learning curve. They have some solid ground from which to start exploring. Whereas under console mode, there is no unifying paradigm. So each tool has a differ…
Just so no one accidentally deletes an email on Gmail, 'e' is archive and '#' is delete.
Re: Learning from Terminals to Design the Future of User Interfaces
#274Earlier quoted context omitted.
Most successful interactions with Siri/Alexa/Cortana/GoogleNow also fall under the same paradigm. They have some finite number of templates/recipes that they can respond to, and just enough "NLP" to attempt a fuzzy matching between what you ask for, and the triggers to the recipes. The key point is that communication is fundamentally serial, in both voice and basic text consoles, whereas GUIs allow parallel communica…
It would be interesting to make an Alexa-style device, which instead of natural language used a set of composable voice commands, like Bash and the unix utilities but pronouncable.
And you could of course go nuts with ifttt and create your own syntax
Re: Learning from Terminals to Design the Future of User Interfaces
#275Earlier quoted context omitted.
I dunno. Do you think that's important? Why?
Buggy mobile client (andriod) and dumpster tier performance are two areas they have been dropping the ball on since release, and requires innovation in some sense of the word. Those are both very important. Innovation is generally important and I'm half curious as to why you ask.
Making your program meet what really should be a minimum acceptable standard is considered innovation now? Multimedia chat clients that performed well and weren't crippled by bugs existed in the 90s.
> Those are both very important. Innovation is generally important and I'm half curious as to why you ask.
Has Slack's attraction ever been that it's an innovative product? My understanding is that it's all about convenience. It's like IRC+bouncer with some shiny things and without the hassle.
Re: Learning from Terminals to Design the Future of User Interfaces
#276Earlier quoted context omitted.
Zsh can also do this.
But it needs plugins, fish has it builtin. Nothing to configure
Re: Learning from Terminals to Design the Future of User Interfaces
#277Earlier quoted context omitted.
Problem is it doesn't scale well for people. Imagine if everything you did in slack was via CLI - there are dozens, hundreds of commands to learn? Imagine if every app had dozens of commands you had to learn and memorize. Sure you could do it and be blazing fast, but that's a really steep learning curve a lot of users wouldn't adopt.
Look at the VSCODE command bar. You start to type what you want to do, and the search function is incredible, helping you find any command you want. Why couldn't something simple like that be applied to the command line interface for a shell maybe? Heck, with `zsh` I have a lot of autocomplete commands available, including several sub-commands and sub-sub commands. For example, when I type `git remote `, a listing sh…
http://tenex.opost.com/hbook.html
User-oriented Design Philosophy
A piece of system design "philosophy" had emerged at BBN and among some of the ARPA research sites that was to have a large impact on the overall feel of TENEX and, ultimately, TOPS-20. At the time, we called this "human engineering" -- we wanted the system to be easy to learn and easy to use, and we wanted the system to take care of as many grungy details as possible so that the programmer or user did not have to deal with them. Beyond that, we were willing to spend real machine cycles and real (or at least virtual) memory to make this happen.
This philosophy led initially to the human interface features of the EXEC, including "escape recognition", the question-mark help facility, optional subcommands, and "noise" words. Few people now argue against the need to provide effective human interfaces, but at that time there were many detractors who felt that it was a waste of cycles to do such things as command recognition. These kinds of things, they said, would "slow the system down" and prevent "useful work" from getting done. Other contemporary systems used short, often one-letter, commands and command arguments, provided no on-line help, and did not give any response to the user other than the "answer" (if any) to the command that had been entered.
[...]
Escape Recognition, Noise Words, Help
One of the most favored features among TOPS-20 users, and one most identified with TOPS-20 itself, is "escape recognition". With this, the user can often get the system to, in effect, type most of a command or symbolic name. The feature is more easily used than described; nonetheless, a brief description follows to aid in understanding the development of it.
A Brief Description of Recognition and Help
Typing the escape key says to the system, "if you know what I mean from what I've typed up to this point, type whatever comes next just as if I had typed it". What is displayed on the screen or typescript looks just as if the user typed it, but of course, the system types it much faster. For example, if the user types DIR and escape, the system will continue the line to make it read DIRECTORY.
[...]
Question-mark Help
Finally, if the user still isn't sure what input comes next in a command, he types question-mark, and the system will provide a list of choices that are legal at that point. The list includes specific keywords (e.g. FILE, DIRECTORY) and generic descriptions (e.g. "input file") Most importantly, the question-mark request does not destroy the previous command input. After the list of alternatives is displayed, the partial command is redisplayed, and input continues from the point just before where the user typed question mark.
As a result of this feature:
Users never have to go grab a manual and search around trying to find the name of a forgotten reserved word (command or parameter). This eliminates the "I know a word, can you guess it" aspect of many computer interfaces. The user can often figure out from the choice of parameters what an unfamiliar command or option will do. This further eliminates laborious searching of manuals.
Because the context of the current command is not lost when help is requested, the user can go step-by-step through a command, figuring out each field in turn. In systems where getting help is a command itself, the user may have to write down a long unfamiliar command on a piece of paper in order to be able to enter it completely. As menu-oriented interfaces have become more widely used, the advantage of having all choices visible to the user has become obvious. The question-mark help feature can, in retrospect, be seen as a "menu on demand" kind of approach, and it was one that worked even on terminals too slow to support full menu-based interfaces.
Origin of Recognition
The Berkeley Timesharing system for the SDS-940 had an earlier form of recognition. It didn't use escape however. On that system, recognition was automatic; whenever the user had typed enough to unambigiously identify a command or symbolic name, the system would spring to life and type the rest of it. This made for the minimum keystrokes in the ideal case, but had one major, and ultimately fatal, problem: if the user typed too much in one field, i.e. more than the amount necessary for the system to recognize that field, the input would go into the next field where it wasn't intended. For example, the system would recognize COP as sufficient for COPY and supply the "Y". But if you typed the whole verb, you would get:
* COPY Y
|
|- typed by the computer
Then, you would at least have to erase the extra "Y". If you didn't notice what happened and continued to type the remainder of the command, what you had intended as: * COPY OLDFIL NEWFIL
would come out as * COPY Y OLDFIL NEWFIL
This would at least produce an error, and in pathological cases could do major damage. [In the foregoing example, note that the old file name winds up in the new file parameter field.][...]
Re: Learning from Terminals to Design the Future of User Interfaces
#278Earlier quoted context omitted.
I've been wondering this for years. It seems like the most obvious way to greatly improve CLIs, yet no one seems to talk about it...
Gosh TOPS-20 had this back in the early 1980s (and this is why bash has readline...)
Re: Learning from Terminals to Design the Future of User Interfaces
#279This nicely describes the road Intuit has gone down with QuickBooks Online. Slow user interface, and lack of productivity. I wish Intuit would take half the money they spend on Marketing and use it to develop their Desktop offerings of QuickBooks.
Re: Learning from Terminals to Design the Future of User Interfaces
#280I highly disagree that the animations are superfluous for the vast majority of users. Yes, they can be superfluous, but that's not by their nature of existing. History shows us that consumers value good UX, of which animation is a key component. The iPhone wasn't the first smartphone, but it was the fist one to take UX as seriously as the hardware. As for the examples: - Slack: Yes, it takes forever to load and I hat…
The video the author links from Minority Report of an "incredible and desirable" UI, has animations seemingly for this exact reason. One is basically the same as Spaces. https://www.youtube.com/watch?v=PJqbivkm0Ms
I think UIs that give intuitive feedback are the best UIs, even if they are a tiny bit "slower". I'm happy to memorize a bunch of VIM commands because I write code everyday and it makes me much more productive, but I don't want to have to do this for every application. Especially once we start physically interacting with them.