Skip to content

Instantly share code, notes, and snippets.

@dillonforrest
Last active August 29, 2015 14:20
Show Gist options
  • Save dillonforrest/b37b91076899b0a48904 to your computer and use it in GitHub Desktop.
Save dillonforrest/b37b91076899b0a48904 to your computer and use it in GitHub Desktop.
are command line tools and email-first interfaces generally more useful interfaces?

A thought experiment: CLIs and email the most useful interfaces?

Rationale behind this thought experiment

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?

The CLI

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.

The email interface

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.

Summary

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. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment