Hacker News new | ask | show | jobs
by obvio171 3753 days ago
It's about time we let go of the symbols hardcoded onto our keyboards and start finding better abstractions for our thoughts.

Touch devices have already started the move to a virtualized keyboard, but so far they only parrot the static layout of a QWERTY keyboard and add a few tabs for emojis.

Predictive typing adds a few higher-level, dynamic keys to your virtual keyboard as a top row.

But if you make every key dynamic and predictive, you have a self-programming macro generator guessing your next keystroke and combining frequent sequences into a new single function.

And if you have that, why do you need a 2D keyboard with the confusing N-to-1 mapping of functions to fingers?

The keyboard has to rest on a surface, you need to make non-discrete movement in space to find what you want, and the whole thing leads to enormous bodily stress.

It is time to wash the printed letters off our keyboards, tear out anything that is not the homerow, glue those buttons to our 8 homerow fingers, and live a full, untethered, virtual, predictive typing life =)

I want to tap on my thighs while zooming through predictive VR code interfaces, not go back to ASCII.

1 comments

That would be APL! J is similar in using 'Tools for Thought' per Ken Iverson's paper, but it uses ASCII to APL's symbols as abstractions for larger concepts similar to the way math symbols stand for more.
I think a concatenative language with an immutable append-only log (instead of a stack, like Forth) as its implicit data structure would be the best fit for this sort of keyboard.

You don't need to type commands and then run them if the commands themselves are the keys.

The advantage over concatenative languages like Forth is that if you assume a graphical virtual keyboard from the start, you can also use a GUI to give you instant feedback on the state of the log instead of guessing by keeping the stack in your head.

All in all, this is circling back to keyboard terminals and session logs like we do in our shells today.

The difference is that, instead of looking at graphics and thinking of a table with papers shuffling around (thank you so much for that, Xerox PARC </s>), you set yourself free from ASCII paint on the keyboard and ASCII paint on the screen, keep the 1D terminal metaphor, and help users figure out what's possible through predictive typing (of which bash completion is an ugly toothless old cousin) instead of statically patronizing them with a limited set of options on a window.

The web has been moving in that direction. Twitter/FB news feeds are a command prompt with a log where you see yours and other people's commands (only "echo", unfortunately). WeChat, FB Messenger and Slack are all in on the "chat everywhere" UI concept.

What screwed with the CLI was not the metaphor. We've been chatting with our computers on the command line and it's great. The limitations were 1) in command & syntax discoverability and 2) in the richness of content that could be represented.

We fixed the latter with rich text popping up in our logs (Twitter was text-only before it started embedding stuff), now we need to fix the former with virtual predictive keyboards.