2 ms·
I... kind of like it? Not the fact that using such a GUI would be almost impossible, like the humorous example of an "engineer oriented UI" in the Silicon Valle
by KronisLV 4y ago
I... kind of like it? Not the fact that using such a GUI would be almost impossible, like the humorous example of an "engineer oriented UI" in the Silicon Valley series https://www.reddit.com/r/SiliconValleyHBO/comments/4nvvnl/pied_pipers_easytouse_tools/ https://www.reddit.com/r/SiliconValleyHBO/comments/4nvvnl/pi... which might be confusing for most people.
But rather the fact that all of the complexity the software has is laid bare, so that nobody could mistakenly assume that it's just a small utility that does just one thing. But rather, that it's a system with a large surface area and plenty of things that it attempts to do. Somehow the example also has better discoverability of what's available to use, than reading manpages or help documentation ever would. So I guess, why not? Hide 80% of the GUI under context sensitive menus and options and you'll actually have something usable.
For an example of a good GUI in this space, see KeyStore Explorer: https://keystore-explorer.org/ https://keystore-explorer.org/
Somehow, if you look at the screenshots, it actually feels more discoverable for the average user than using a CLI tool might be: https://keystore-explorer.org/screenshots.html https://keystore-explorer.org/screenshots.html (especially if you talk about the Java CLI tools in the space)
The problems with GUIs are largely the fact that they don't really map nicely to CLI commands and usually cannot be automated themselves - the ideal software would have a GUI that's optionally available, but would offer you the underlying CLI commands when you're about to do something (implying that the UI would be separate from the logic, being optional). The best example that I can think of this is Zenmap, a GUI for nmap: https://nmap.org/zenmap/ https://nmap.org/zenmap/
So in the GUI you might pick:
Target: some_ip_address
Profile: Intense scan plus UDP (dropdown)
And get the following output:
nmap -sS -sU -T4 -A -v some_ip_address
Whether you execute the command through the UI or add it to some script, that's up to you.
Some other software that comes to mind:
- Kdenlive: shows you what the encoder command for rendering videos will be
- SourceTree (or other Git GUIs): shows you what commands you're attempting to execute
- MySQL Workbench/pgAdmin: shows you what SQL will be executed
I think that's the perfect approach to having your cake and eating it too.