This brings up some interesting ideas about improving a CLI by improving the record keeping making it more deterministic, and enabling undo. Thinking about these 3 features together would essentially give a computer system a version control or tool assisted speed run kind of feel. Every command changes the state, and the system can be rolled back, and experimented with. I really like where this line of thinking could…
CLIs are reified UIs (2017)
121–126 of 126 posts
Re: CLIs are reified UIs (2017)
#122Earlier quoted context omitted.
This probably won't work with Unix shell, but some CLIs (JunOS comes to mind) have a context help that's shown when you press "?". But note it's not "? ", you don't need to press enter; merely inputting a single "?" character shows possible things you can append to the command line at that point.
That's not a CLI, that's a TUI. Eg, Dwarf Fortress does this.
Re: CLIs are reified UIs (2017)
#123Earlier quoted context omitted.
That's not a CLI, that's a TUI. Eg, Dwarf Fortress does this.
How it’s not a CLI? There is a command line, you type in commands.
"Responds to individual keypresses" vs "responds to complete lines" is pretty much the defining feature of TUI vs CLI.
> you type in commands.
KEY_SLASH+MOD_SHIFT is a UI event, not a command.
Re: CLIs are reified UIs (2017)
#124Earlier quoted context omitted.
How it’s not a CLI? There is a command line, you type in commands.
> But note it's not "? ", you don't need to press enter "Responds to individual keypresses" vs "responds to complete lines" is pretty much the defining feature of TUI vs CLI. > you type in commands. KEY_SLASH+MOD_SHIFT is a UI event, not a command.
What I’m describing is definitely a CLI. You type in commands, such as “show version”. It’s just a bit smarter about command completion and context help.
Re: CLIs are reified UIs (2017)
#125I have an experimental GUI that uses a simple language to reify interactions as described here. It works great.
Re: CLIs are reified UIs (2017)
#126I have an experimental GUI that uses a simple language to reify interactions as described here. It works great.
I would love to see it.
Docs: https://xerblin.readthedocs.io/en/latest/
Project: https://sr.ht/~sforman/Xerblin/
Repo (browse or clone): https://git.sr.ht/~sforman/Xerblin
I am in the process of adding more information to the docs. The code should run on a recent version of Python 3. The underlying language is Joy and the package for that is on PyPI so it should (fingers crossed!) download and install automatically if you run setup.py (I think). I'd appreciate any feedback you can give me. Ciao!