"I have discovered that there are two types of command interfaces in the world of computing: good interfaces and user interfaces"
About this Quote
Bernstein’s line lands like a one-liner, but it’s really a miniature manifesto about power in software. By splitting “command interfaces” into “good interfaces” and “user interfaces,” he’s not praising usability; he’s accusing it. The joke hinges on a deliberate category error: “user interface” should be a subset of “good interface,” yet he treats it as the opposing camp. That inversion is the point. It signals a worldview where the drive to accommodate “users” often means sanding down the precision and composability that make tools genuinely strong.
The intent is less elitism than provocation: a warning that design optimized for approachability can quietly tax everyone’s time and agency. In command-line culture, “good” often means orthogonal primitives, predictable behavior, and the ability to script, pipe, and automate. A “user interface,” in Bernstein’s cynical framing, is what happens when software starts performing friendliness instead of delivering control: hidden state, inconsistent options, opaque errors, and “helpful” abstractions that block the very users they claim to serve once anything goes off the happy path.
Context matters. Bernstein comes out of a tradition (Unix, security-minded engineering, mathematically inclined rigor) that prizes minimal, verifiable surfaces and distrusts magic. The punchline also smuggles in a political claim about who software is for: competent operators, not consumers. It’s witty because it’s unfair; it’s memorable because it names a real grievance. Every time a tool forces you through menus instead of letting you express intent directly, you can hear the barb: this wasn’t built to be good, it was built to look usable.
The intent is less elitism than provocation: a warning that design optimized for approachability can quietly tax everyone’s time and agency. In command-line culture, “good” often means orthogonal primitives, predictable behavior, and the ability to script, pipe, and automate. A “user interface,” in Bernstein’s cynical framing, is what happens when software starts performing friendliness instead of delivering control: hidden state, inconsistent options, opaque errors, and “helpful” abstractions that block the very users they claim to serve once anything goes off the happy path.
Context matters. Bernstein comes out of a tradition (Unix, security-minded engineering, mathematically inclined rigor) that prizes minimal, verifiable surfaces and distrusts magic. The punchline also smuggles in a political claim about who software is for: competent operators, not consumers. It’s witty because it’s unfair; it’s memorable because it names a real grievance. Every time a tool forces you through menus instead of letting you express intent directly, you can hear the barb: this wasn’t built to be good, it was built to look usable.
Quote Details
| Topic | Coding & Programming |
|---|
More Quotes by Daniel
Add to List





