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

I want to love fd - I'm a big believer in the idea that CLIs don't have to be scary, intimidating things (see normals using Slack with /commands and keyboard shortcuts), and find has a gigantic hairball of a UI.

The thing is, though, I know find well enough to not notice the terrible UI that much, and I know I can rely on it being everywhere. With fd that isn't true.

So it's hard for me to justify making the move.

Same thing happens with things like the fish and oil shells - I have little doubt their UX is better than Bash's, but Bash is pretty ubiquitous.

Emacs has this problem too, as an Emacs user. The UX is completely alien by current standards, but if you update the defaults you'll break a lot of people's existing configs.

How do you get around backwards compatibility / universality UX roadblocks like this?



It just doesn't happen that often anymore that I need to ssh into a system.

And my own systems have automatically synced dotfiles, making it mostly a non issue. (I'm using Syncthing for that)

When writing scripts I usually fallback to traditional shells/commands for compatibilty. Unless I'm really sure I will be the only user.


I was more thinking of scripts, yeah, like you describe.

Where I get hung up is, if I need to keep the traditional syntaxes in my head for scripting, why bother storing another one in my head for interactive use?

...that said, I do use ag and rg for other interactive tools, like cross-project search in Emacs.


I know what you mean. I use fd and rg on my machine, but for scripts, Dockerfiles etc I tend to use find and grep, just because this is the „lingua franca“ of Unix/Linux.


Same, and I'm the author of ripgrep! Unless the script is one that I wrote for myself in ~/bin, I use grep and find and standard tooling in shell scripts.

The only exception is if there is a specific need for something ripgrep does. Usually it's for speed, but speed isn't always needed.


I think the solution that NixOS uses would work for Emacs too. Just define a single variable that declares which default values to use (in NixOS, it's system.stateVersion).

Then packages (including internal packages) can update their defaults based on the version declared there. Basically a protocol version field but for your Emacs configuration.

Distros probably need a different strategy for improving core utils, though.


Fish is awesome, if you hate Bash arcane syntax, like me. It improves my script productivity by 100%.

One rule of thumb though: use it only for personal use, and stick with it to see if it lives long enough. If you're working with the team, just use Bash.


Old grep is still muscle memory for me, and that’s what I use in scripts.

But the newer grep’s are so much faster! I scoffed initially but after a couple of uses I was hooked. I try to install these new tools in my personal ~/bin on systems I spend much time using.




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

Search: