I will probably write a "More Rich Command Shells" to cover things I missed here that are important in some way (like Apple's MPW).
The next thing I want to write though is about building something that has a command shell UI today and thinking about how to do so in a flexible way that works with multiple output devices.
I'm often thinking about how to present/"unify" these:
- command (statements validated by some token),
- repl (expression, less side-effect driven than the previous one),
- unary/immediate mode (each input event is interpretable right away, direct mapping between input and action),
- n-ary/non-immediate mode (some parsing occurs, gathering a few tokens into a higher level construct)
- non keyboard based UI/UX (some sofware like Maya have proper separation, most mouse events have direct translation into object methods)
The next thing I want to write though is about building something that has a command shell UI today and thinking about how to do so in a flexible way that works with multiple output devices.