I want to see more of these. But let’s first establish some definitions.
Whenever we can adapt the same syntactical features of a mechanism to varying context, we introduce modality.
VIM, for instance, is a modal text editor. In the editing/insert mode, we (mostly) type verbatim. In the normal mode, we type keystrokes to execute different behaviors: navigate/search, manipulate/transform text, define/launch macros/aliases/mappings, interact with external mechanisms, and perform most non-editing operations. In the visual mode we select text. In the execute mode, we limit ourselves to the VIM command-prompt.
VIM being a ‘meta’ editor, we can also redefine most of these behaviors, introduce additional modes and overload the syntax (keystrokes) to carry out radically different functions based on the active mode.
The Penti keyboard is a modal chorded keyboard. The five triggers enable maximally thirty two combinations, although effectively less. This clearly doesn’t cover the expanse of an entire keyboard. It therefore appeals to modes: alpha, digits/operators, punctuation, functional control, alternative characters, plus the control sequences.
Furthermore, the alternative characters can be redefined. This makes Penti loosely meta.
I’ve now mentioned two categories of mechanisms: modal and meta.
- Modal: Limited syntax can be overloaded in accordance to active mode.
- Meta: Syntax can be redefined (to appeal to this narrower definition).
Ideally, I would prefer that mechanisms feature both characteristics. Why? Because our interactions with those mechanisms yield to:
Greater efficiency. A greater modality factor means less syntax required per mode and less mechanical operations to carry out the same behavior.
Greater intuition/logic. Unless the modal interface is haphazardly designed, the syntax-to-behavior mappings applicable to each mode will usually follow some intuitive structure.
In addition, the structure often facilitates mnemonic/visual queues, these more natural for the learning process of our visually inclined brain. And with the meta characteristic, we are free to redefine the syntax to incorporate further logic and ease of learning.
These factors, consequently, further reinforce #1, the efficiency factor.
That’s not to say that a uni/few-modal mechanism lacks these elements. But in general, the lesser the modality factor, the broader range of syntax is necessary to carry out the same range of behavior, which inevitably compromises certain intuition and leans towards abstraction/esoteric definitions.
If I had to choose exclusively between the two properties, I would lean towards modal, hence the title of this writing. Considering we usually spend a significant enough period within a single mode, I prefer operational compactness, in hopes that the statically defined behavior was intuitively enough engineered.
This last point deserves further exploration.
We indeed spend much of our time operating within a single mode, rather than switching between modes in micro time-increments. Some examples of modes:
- Web page navigation
- Typing prose
- Executing system commands within a limited context
- Consuming multimedia content (music/video).
- ‘Small talk’
- Compact written communication
Each of the above modes demands fairly limited syntax (language) to perform. Only the syntax is not necessarily compact or optimized; the mechanism not necessary mode-aware.
Why not re-engineering many of our mechanisms to leverage mode-aware syntax? Some ideas:
Spoken communication. Within strictly limited context, cater to a restricted/compact language (or specially defined subset of the primary language).
I don’t allude to the narrower colloquial language already in habitual use. The compact variety I mention would necessarily be insufficient to express even the practical range of our primary language. Yet it would gain not only in syntactical compactness, but decreased entropy (useful in noisy environments).
To think of it, certain sign languages have this element in mind.
(Interestingly, in contrast to what I propose, I see myself a very stubborn adapter of a restricted spoken language. I like the unlimited freedom a full palate enables. It goes to say, intellectual aspirations can misalign with our pragmatic nature.)
Written communication. Unlike the spoken, we already possess a more natural tendency to compress the written. Now, I’ve nothing but contempt for emoticons. To me that communication style approaches dumbfounded laziness.
Rather, what I have in mind are compact scripts or versions of standard language syntactical features. Some bits of different systems I already incorporate throughout my terse writing.
It would excite me to see these broader across the spectrum.
Examples: shorthand systems, Speedwords, or even certain constructed languages designed with compactness in mind.
As a matter of fact, I somewhat use self-defined ideograms in handwriting script. Note, in contrast to complete ideogram-based alphabets (ie Chinese/Japanese scripts) designed to express the entire language range, my ideograms are tremendously simplified to accommodate the limited context (mode) they address.
Compact computational interfaces, in line with chorded keyboards, but even further mode-aware for restricted context and compacter syntax.
For browsing web or pure text content, I usually appeal to but a handful of features: page up/down, mark section, navigate between marks, back/forth between buffers.
This is but one example of a highly context-limited mode.
I’ve consequently taken a very non-elaborate approach in configuring related keyboard shortcuts in the same top-right region of my ultra-light/portable Bluetooth keyboard to ease a mobile form of reading/navigation.
I’ve configured similar ‘one-hand ergonomic’ shortcuts for all applications that facilitate such browsing behavior: web, RSS feeds, email, VIM.
It’s not terribly difficult to design interfaces with this modal structure in mind.
Here I present some existing, as far as trivial cases of modality:
Music notation. Compact communication, applicable strictly to music composition. It’s modal for the way signs and symbols indicate context shifts. And it’s a restricted syntax since we could technically describe the full range of western music entirely in human language, but imagine the verbosity.
Mathematics. All formal and logic notation considered, it lends itself well to compactness, context-limitation, and even redefinition, considering the meta properties. In formal mathematical logic, we can introduce reusable definitions, contractions, and technically redefine the entire syntax, not too different from meta programming languages (below).
Programming languages: these, by nature of being programmable, better facilitate modes than the spoken, less flexible language.
Now some programmable languages, especially those exclusively characterized as meta are even better suited for the role.
Lisp is an obvious contender. Since mostly all language features lend to programmable mutation, one can easily simplify/redefine syntax to suit a narrower context.
Perl also appeals to compactness within narrower context, although the esoteric factor doesn’t make it particularly modal-friendly.
Overloaded words/constructs. This is narrow case of modality, but within spoken language, those constructs that transmit diverse meaning based on context can be considered a modal subset.
Mnemonics. I’m thinking of mnemonics as used in memorization: various peg systems, memory palaces/Loki systems and the such. These visual techniques are extremely overloadable; a handful of mnemonic anchors can serve in myriads of contexts. See the Mentat wiki as one possible source to learn more.
Multimedia keys. A very trivial case: any source of multimedia content typically involves a very common and restricted set of features - play/pause/navigation.
It’s no wonder that specially defined controls tend to appear on standard keyboards as well as compact interfaces (mobile players, remotes). It would make a lot of sense for these to assume a separate mode on a chorded keyboard.
Lastly, I classify a sample of mechanisms on the modality scale:
|Spoken languages||NA||Any featuring overloadable words or ideograms|
|Constructed languages||Speedwords, Shorthand||Lojban|
|Written notations||Mathematics, music notation||Sign language|
|Applications||VIM, Tmux (terminal multiplexor)||MS Power Point, most SaaS (cloud software)|
Questions, comments? Connect.