The GUI is the most common UI by far. However, GUIs are expensive to create and iterate and frequently frustrating for the end user. These shortcomings could be addressed with better engineers and better product sense, but many companies can't afford or can't retain quality engineers, designers, et al. Does the GUI have too much marketshare? Are there other interfaces which are more useful?
Reasons why CLI is a great interface:
- All unix philosophy benefits, especially composibility, which implies network effects since CLIs' collective usefulness is an exponential or factorial function of the number of CLI tools available. You can pipe, grep, tail, curl any of your CLI outputs with any other CLI. (~50% of the benefit)
- Text-only medium as a REPL forces simplicity. No huge canvas to add useless UI widgets. The naked text forces everybody to think about only utility. (~50% of the benefit)
- Unadorned text is most responsive layout, ie great responsiveness for all screen sizes. (~1% of the benefit)
Reasons why CLI is a horrible interface:
- It's ugly. Ew. Tons of branding problems and switching costs associated with ugliness.
- Not good without a keyboard, ie sucks on mobile and tablets. Not good for a broad audience.
- Requires people be at least moderately technical. People have to know how to use their terminal to realize any of the network effects benefit. People have to learn how to use man pages. Massive switching cost.
Reasons why email is a great interface:
- Popping up in somebody's inbox and reasserting your value is better for engagement than asking people to go out of their way to log into a CRUD app. (~50% of the benefit)
- Can still leverage all static markup to make things pretty. (~25% of the benefit)
- Cheaper to iterate email than it is to iterate a standard UI. (~25% of the benefit)
Reasons why email is a horrible service:
- Slow feedback loop. Therefore, email is appropriate for GET and occasional POST, PUT, and DELETE. An email interface is NOT appopriate for frequent POST, PUT, and DELETE.
Obviously neither CLIs nor email interfaces will ever fully replace the GUI. However, I think there are clearly times when the GUI is not the best solution, but the GUI is still implemented as it's the default solution.
Opening the floor for discussion. :)