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

I believe these config heavy tools happen because they are very old, and changing the default behavior breaks things and makes people mad. So they just add a new config option to enable some convenience feature, and then another and another... Soon new people come and want to use the tool and they're told they have to add a config file turning on a half century of features that seem obvious (cough font-lock-mode)

In web development and app development, user interfaces change constantly, so why don't they fall prey to this as much? I think one thing is many of the tools we're talking about like shells and command line tools are actually APIs as well. Scripts break if you change the interface. If a web interface changes, maybe a scraping script fails, but otherwise nbd.

This is probably the biggest failing of the model of your shell being both a user interface and a programming language you write long-lived and critical scripts in. As a user of the shell you want syntax highlighting and nice features like paging etc, but as a script writer you want the behavior to never change.

In hindsight, maybe the way to do it is similar to apt-get vs apt get, where the former is for scripts and the latter is intended to be a ui that makes no backwards compatibility guarantees.



> In web development and app development, user interfaces change constantly, so why don't they fall prey to this as much?

Because they're happy to just break things and let the user deal with it. Which is (one of the reasons) why I prefer the CLI tools:)

Though I also agree that there's an element of mixing UI/API.


> where the former is for scripts and the latter is intended to be a ui that makes no backwards compatibility guarantees.

Also known as plumbing vs porcelain commands.




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

Search: