Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Out of curiosity, can you provide an example (or examples) of what you consider to be a well-designed CLI?


I would like to suggest mitmproxy as a well-designed CLI. It is a dream to work with and takes a little bit of effort to learn how to navigate but afterwards you fly around effortlessly.


There's no perfect example, but if all CLI apps had as much thought put into them as there is in Midnight Commander, then I think we'd be somewhere fairly good :)


I confess, I've never used Midnight Commander, so I thought I'd be a good guinea pig. I just installed it on my Mac and I don't find it at all intuitive. Two specific issues I had is that we're limited to displaying everything as text (e.g. what is ".[^]>" meant to represent? if it were a graphic, perhaps it'd be easier to understand), and also there's limited space in my terminal so commands are abbreviated (what does 'RenMov' mean? I can't 'mouseover' it to find out more information either–there's no way to interact with the app that might not also issue a command). Overall, it's left me with a vague anxiety I might accidentally delete a file.

This isn't meant to be a criticism of Midnight Commander anymore than it is a criticism of myself as a user. I have no doubt it's invaluable in certain situations. But I do think GUI apps offer clear advantages, and they're to be embraced.

Perhaps better would be the idea that all GUI apps should have lightweight CLI counterparts, to enable easier scripting/integration with a UNIX workflow, and be done with. OS-level scripting support is halfway there (e.g. AppleScript) but it could be better.


I agree with you that mc is far from perfect.

That being said, its goal is not to be 100% usable out of the box without reading any documentation. Rather, the goal is to offer a tool that, after a few hours of learning, can be used extremely productively and efficiently for the rest of your life. I have yet to see a single GUI file explorer that offers something that mc couldn't (and for that matter, I have yet to see a single GUI file explorer that offers a level of functionality anywhere near mc - for many features in mc, a GUI driven interaction would be detrimental to the tool).

Also, one thing to keep in mind when talking about interfaces is that "intuitive" is a very tricky word that doesn't necessarily mean what we'd like to think it means: http://www.asktog.com/papers/raskinintuit.html

---

To answer your specific point pertaining to mc:

> there's no way to interact with the app that might not also issue a command). Overall, it's left me with a vague anxiety I might accidentally delete a file.

You can press F1 for context sensitive help (you can also click on any interactive element in mc, if you really want to use your mouse!). And of course, every destructive action asks for user confirmation before being committed.

Thoughts like "what does 'RenMov' mean?" are totally normal (and also occur with GUIs for sure) - but knowing the answer takes you 30 seconds, and then you're set for life. Again, when you're considering the fact that this is a tool you're likely to use for thousands of hours over your life if you commit to it, it makes it a worthy investment. Sure, the OSX Finder doesn't take a few hours to understand - but the huge amount of time lost doing things in Finder.app (or explorer.exe or dolphin or nautilus or ...) that can be done in mc much faster pale in comparison to that learning curve.


A Curses GUI is still a GUI. Midnight Commander is a GUI interface to the file system that I only install when my mother has to shell into my server (it is definitely a good GUI, though.)


> A Curses GUI is still a GUI.

No, a curses-based UI is a text-based UI, not a graphical UI; it is distinct both from GUIs and from CLIs. It does share some characteristics with GUIs, sure.


I'm confused GuiA. You have spent considerable time and energy promoting your view that well designed CLI apps are "insanely superior", but you can't cite an example? And the closest thing you cite, MC, is a text-based GUI?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: