I use fish for simple command pipelines as well. But traditional shells are not as good when I need to do anything "structured", because they treats almost any value as a string and don't have anonymous functions. The first problem means that you have to parse a string again and again to do anything useful, the second means that when both pipe and xargs fails you are doomed.
Nu solves both of the big problems that matters when you want to do rather complex but ad-hoc processing of data. And with a rather principled design, nu is very easy to learn (fish is already way better than something POSIX like bash though).
Personally another important reason is that I have a Windows machine at work and nushell is much easier than pwsh.
Btw fish is also going to be a "tool in rust" soon :)
A git server don't need to know email to work, and it is not required to have a git server. Email in this workflow is an alternative to a PR: contributor submit a set of commits to the maintainer (or anyone interested). Then the maintainer is free to apply or merge the commits. After that the code can be pushed to any servers.
Honestly I'm surprised that so many people don't know how git can be used without those repository hosting sites. That's one way to use it, not the only way. And it's not even the way it was originally designed for.
Git and Email are not mutually exclusive. In order to collaborate with git, you need and only need a way to send your commits to others. Commits can be formatted as plain-text files and sent through emails. That is how git has been used by its author from literally the first release of it.
The first release of WSL(2) 1.0 (this versioning alone is worth another post here, but let's not talk about it) have its CLI --help message machine translated in some languages.
That's already evil enough, but the real problem is that they've blindly fed the whole message into the translator, so every line and word is translated, including the command's flag names.
So if you're Chinese, Japanese or French, you will have to guess what's the corresponding flag names in English in order to get anything working.
And as I've said it's machine translated so every word is. darn. inaccurate. How am I supposed to know that "--分布" is actually "--distribution"? It's "发行版" in Chinese and "ディストリビューション" in Japanese.
At last I had to switch my system language to English to set a WSL instance up. From then on I never use any display language other than English for Microsoft products. Sometimes "translated" is worse than raw text in its original language.
PS: for the original post, my stance is "please don't make your software interface different for different languages". It's the exact opposite of the author has claimed: it breaks the already formed connection by making people's commands different.
It's the CLI equivalence of scrambling every button to make sure they are placed differently in different languages in GUI. I hope this sounds stupid enough so that no one will try it.
A not-so-stupid way that I can think of is to add a "translation" subcommand to the app that given any supported flags in any language it converts them to the user's language. Which is still not so useful and is not any better than a properly translated documentation, anyway.
There is a pre built distribution, you need to configure binary cache to get it. Refer to the "Substitute for nonguix" section: https://gitlab.com/nonguix/nonguix
Guile and Guix is way better documented than Nix. The language have more features, so you don't have to use a hack to load packages, can actually know what is accepted in a function instead of blindly copying what others do, and it comes with a formatter.
Note that skim performs worse than fzf. There's a new matcher in Rust called nucleo which is faster, but it currently doesn't have a cli and can only be used inside Helix editor (hx)
nu is probably the best shell for ad-hoc data processing, handling all my daily needs in one expression.
fd and rg have another thing in common, that they're both 50% shorter than their traditional alternatives /s
Compared to btrfs it's claimed to be faster and having working RAID support.
Its unique feature is using a fast device as cache to speed up access to slower, larger disks, I think.
I've tried Joplin, Logseq, and Obsidian. The best one was Obsidian but it's not FOSS and is getting bloated over time.
I'm settling on zk now. This small command line utility solves almost all of the note managing needs for me.
Double links and tags make me forget about these "infinite free board" functionalities in OneNote: turns out they tend to be used inefficiently. Graphical sketches can be embedded in markdown or linked to a drawn picture.
The best thing about zk is that its notes consist of plain text and no extra tracking data is required outside of the file (unlike any others above), which means it's absolutely free to pair it with / move on to other tools when needed, or working temporarily without the support of it.
Datalog. Basically relational, but have much simpler syntax and semantics,and is able to convey more complicated queries in a composable manner. Mainly used in Clojure-based databases where actual programs instead of strings are used.
It kinda fills a niche.
I use fish for simple command pipelines as well. But traditional shells are not as good when I need to do anything "structured", because they treats almost any value as a string and don't have anonymous functions. The first problem means that you have to parse a string again and again to do anything useful, the second means that when both pipe and
xargs
fails you are doomed.Nu solves both of the big problems that matters when you want to do rather complex but ad-hoc processing of data. And with a rather principled design, nu is very easy to learn (fish is already way better than something POSIX like bash though).
Personally another important reason is that I have a Windows machine at work and nushell is much easier than pwsh.
Btw fish is also going to be a "tool in rust" soon :)