5 ms·
IBM CUA I really wish 5+ decades ago someone would have established a common user access standard for TUI, like IBM did for desktop (GUI) apps. TUI would be m
by tiffanyh 3y ago
IBM CUA
I really wish 5+ decades ago someone would have established a common user access standard for TUI, like IBM did for desktop (GUI) apps.
TUI would be much more pleasant today if all TUI used the same menu system & keys for common actions (e.g. FILE | EDIT | VIEW and CTRL C for copy / CTRL V paste).
https://en.m.wikipedia.org/wiki/IBM_Common_User_Access https://en.m.wikipedia.org/wiki/IBM_Common_User_Access
EDIT:
To explain further, just look at how Emacs and Vim use different commands to 'exit'.
Emacs uses "C-x C-c", whereas Vim uses ":q!"
Exiting an app, like copy and paste, is a very common task. Yet there is no standard in how to perform that task in TUI today.
With GUI apps, we have that standard (e.g. FILE -> EXIT or on the keyboard "Alt + F4"). This standard came via IBMs CUA standard.
- badsectoracula 3y agoAFAIK CUA wasn't for GUI apps (i think there was even some DOS-based "demo" that used text mode), some text-based DOS programs used it (the Shift+Ins, etc shortcuts you'd find in Turbo Vision-based programs used CUA). Also what we often call "CUA" nowadays is actually Microsoft's modifications, even if it was based on IBM's (which AFAIK doesn't have things like Ctrl+V for paste but instead the Shift+Ins i mentioned above).
- actionfromafar 3y agoand buffered input
- reactordev 3y agoWhat? ANSI VT100 standard predates IBM's CUA. In fact, so does the VT220 standard. What's missing? https://en.wikipedia.org/wiki/ANSI_X3.64 https://en.wikipedia.org/wiki/ANSI_X3.64
- tiffanyh 3y agoThat wasn't for Menu layout and common actions (e.g. FILE | EDIT | VIEW) ANSI VT100 was for what system interrupt happens when you press "ESC".
- reactordev 3y agoThe concept of FILE | EDIT | VIEW didn't arrive until GUI's. Maybe ncurses enterprise apps. Probably where IBM came up with it. In terminals, the ANSI standard for keycodes, blocks, drawing, buffers, and cursor positions was pretty well defined. GUIs took over and only recently has the TUI seen some love (outside of text-based games of course).
- badsectoracula 3y agoThe standard you refer at is at a lower level in the "stack": it is mainly about how a terminal would handle drawing stuff on screen or how user input will be communicated back to the server. The CUA standard is at a higher level in the "stack": it is about the user interface commands, shortcut keys, etc a program will provide as to have a user interface that users will already have some idea how to work with based on their existing knowledge of having worked with other programs that follow CUA. Things like using Shift+Ins to paste text for example, pressing F1 would show help, F5 would refresh the currently viewed contents (if that makes sense), F10 would open the menu, Enter activate a dialog box's default action, Escape cancels of the dialog box, etc. These are not mutually exclusive - or even related really. You can have a program that uses the VT100 to implement a CUA interface.
- reactordev 3y agoMy point is that CUA didn't come about until after the migration to GUI's. Afterwards, no one used terminals like we do today, outside of sys-admins. So I'm aware that it's lower in the stack but my point is that the ANSI standards paved the way for any/all of this TUI goodness that the OP wants a standard for (like CUA).
- p_l 3y agoCUA originated on terminals, specifically it was made to unify different approaches used across block terminals, character terminals, DOS apps, and early PC GUI apps. It's also explicitly a Human Interface Guideline, whereas ANSI terminal standards are just interoperability instructions on how to drive a character terminal and declare nothing about how to actually use them for application UI.
- mrighele 3y agoVT100 is about HOW to write on the screen, CUA is about WHAT to write, it is on a level above (you could apply CUA while writing an app for VT100).
- a2code 3y agoWhich common tasks and keybindings? Can you list at least some examples?
- deleted 3y ago[deleted]