Hacker News new | past | comments | ask | show | jobs | submit login

Can we please have a 'New Version', 'Old Version' comparison, side by side.

If this is an improvement, why are you telling me instead of showing me?

Personally, the problem is command line tools, not argument parsing. Why would anyone create a command line tool instead of a GUI that only lets you enter the correct set of arguments that go together, grouped into a coherent UI?

The end result should be a json. We all know how to parse json in Swift and every other language in existence.




If you write your program well enough (which is not hard), GUI or CLI doesn't matter, you've written a modular tool that can be interfaced with any way you want. And sometimes CLI is a better way to interface (CLIs can be chained together using standard mechanisms much more easily than GUIs).

And why should everything be JSON? It's not the best format ever for all the things (there isn't one).


CLI tools exist for composibility.

How many lines non-ignored lines are in my git worktree?

   git ls-files -coz --exclude-standard | xargs -0 cat 2>/dev/null -- | wc -l --
How would you ever create a GUI with that much flexibility?


Any ETL tool can do tasks like this. It probably has a terrible user interface, but they're enterprise tools and enterprise tools tend to be terrible, regardless of the style or task.

You're right that most GUIs don't tend to be composable -- but that's a function of how they're written, not an inherent limitation of GUIs. There's nothing fundamental about the VT100-style interface that makes it optimal for composition. And GUIs potentially offer some huge benefits, like not having to guess at what's flowing through the pipelines, or having a less painful way to deal with quoting/escaping, or offering an alternative to cryptic flags for configuring operations.

Screen editors used to get the same scorn. You probably haven't heard the term "screen editor" in a few decades because every editor today is a screen editor. Once they acquired most of the flexibility of line editors, it turned out that nobody actually preferred line editors.

People want composability, and you can do that in a screen editor better than a line editor -- and a GUI better than a terminal. You just have to have designers who care about it.


How would I add functionality to add a button that runs that exact command you just typed?

By adding an 'add button' with a text field where you type your bash script.

All I have to do to make a GUI superior to your terminal is to add some GUI to an existing terminal that people find useful...


curl, kubectl, jq, ag, grep, git, psql are all tools that are far more useful as a CLI to me. That’s just the few I could come up with top of mind but there are many more.


Personally, I prefer command-line tools over GUIs in many cases. Also, JSON doesn't help me at all if I'm working with other userland tools that expect something else. Piping is very important for CLI tools, so you have to talk the same language as the rest of the userland population.




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

Search: