|
|
|
|
|
by ahpook
2254 days ago
|
|
Huh, I came here to submit this (I'm the author) and it was already in - neat. Would love to hear anybody's hot takes on the piece, there's some matters of taste in this (it's design, after all) but I think most of it is pretty well grounded in my experience living at the command line since the 90s... |
|
I have also been living on the command line since the 90s, and I mainly write command-line systems (in C, but sometimes in bash).
The biggest takeaway for me was "enable progressive discovery." I wrote an essay years ago called "The Mythical Man-Finger" that was all about CLIs and how modern GUIs are often more cumbersome (I was arguing that for many applications, language is a superior interface than "pointing at things").
The biggest objection to my essay was that CLIs make it hard for you to just jump and screw around, and I had to concede that this is mainly right. You won't know how to make things look like chrome by manipulating alpha channels in Photoshop the first time you open it, but . . . you know, this big button probably means rotate. ;)
But it may also be that "optimizing the first fifteen minutes" in this way results in a program that's actually harder and slower to use as you get more familiar with it.
It seems to me that what you're doing is trying "optimize the first fifteen minutes" of the UX with CLIs -- a thing CLIs often do very poorly. It's great stuff.
For me personally: Why am I so addicted to switches and arguments rather than commands? I think my only reason is because I see a lot of other CL programs working that way.
I guess I haven't decided what I think about "bat" (I feel like there's a landmine in there somewhere that makes it so you should be super careful about going upscale in this particular case). But I take the general point. Why are we coding like it's 1975?
Great stuff.