This is not ‘no UI’ — it’s ‘text-based UI’. Human written language is a set of technologies that have been under active, heavy development for four thousand years — compared to GUIs, which were under active and heavy development at Xerox PARC for about five years and have barely changed since. I agree that text-based UIs are the future — the competent ones among us never switched away from them in the first place, because they have features and nuances that GUIs would not be able to compete with even had they been truly under active development for the forty years of their existence.

However, this doesn’t mean that traditional UI concerns are irrelevant to text-based UIs, or that there are no special UI concerns to consider. It’s very easy to screw up a text-based UI — compare the MS-DOS command shell with a modern UNIX shell like zsh, and the vast gulfs of difference are obvious; even so, MS-DOS is by far not the least competent text-based UI in existence.

Conversational interfaces, by catering almost exclusively to new users and eschewing efficiency, nuance, and a rich feature set in favor of a shallow learning curve, are almost universally unusable for genuinely complex real-world tasks and gain their popularity from the novelty element of a computer behaving like a person. A well-designed conversational interface would eventually, in the hands of a habitual user who has become comfortable with it, resemble a traditional command-line interface: it would efficiently execute unambiguous and richly expressive queries while making use of shortened mnemonic forms of those queries. However, the novelty of a conversational interface to a new user depends upon a cynical assumption about that user’s willingness and ability to learn new skills: the conversational interface must accommodate a user who knows nothing and has made no effort to learn, and to interpret ambiguous requests as their simplest possible evaluation — to complain about the ambiguity or request it to be resolved would be to suggest the user learn a programming language and to interpret any resolution other than the simplest would be to suggest that the system is either unreliable (like a human) or sensitive to subtle details (like a programming language). Assuming users are stupid and unwilling to learn how to perform simple tasks is part of good UI design in GUIs, but it works against you even moreso in text-based interfaces; conversational interfaces that do not take advantages of UI advances in command line interface design can never become any more than toys.

Written by

Resident hypertext crank. Author of Big and Small Computing: Trajectories for the Future of Software.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store