While removing weird stuff from daily bash annoyances is interesting, I'm not necessarily looking to replace that with brand new but also pretty random weird stuff. Adding new rules isn't the same as adding structure. The documentation is also frequently strange in a way that makes it hard to digest. From <a href="https://elv.sh/learn/first-commands.html#external-commands" rel="nofollow">https://elv.sh/learn/first-commands.html#external-commands</a><p>> While Elvish provides a lot of useful functionalities as builtin commands, it can’t do everything. This is where external commands come in, which are separate programs installed on your machine. Many useful programs come in the form of external commands, and there is no limit on what they can do. Here are just a few examples: Git provides the git command to manage code repositories<p>At first I thought, wait, is this a shell or not, do I have to write code or something to get access to normal external commands? But no, this is more like going to a car dealership and having the salesman say "Hey thanks for coming by, a car is a mechanical device consisting of metal parts and rubber parts for the purpose of taking you where you need to go! Now that we're on the same page about that, money is a thing made of paper for the purposes of .."<p>Docs are hard, once or twice is fine, but lots of parts are like this and I gave up reading. Not sure if it's AI generated, but if the project is doing that then it should stop, and if it's not doing that it should consider starting to
I've been using fish for many years now though I keep trying all these new shells.<p>Ultimately I've found that for my interactive shell I just want something widely supported and with easy syntax for `if` and `for` loops for short multi-line commands. For anything longer than that I just reach for real Python using either the `sh` or `plumbum` package.<p>I don't need the extra features very often, so I just run things in full Python where I'm already comfortable.<p>I've tried oils/ysh, elvish, xonsh, nushell, and while they are _fine_ I don't want to learn a different language that's not quite Python and not quite shell.
After getting frustrated with how unusual and convoluted BASH syntax tends to be, especially with involved scripts, I've tried almost all of the alternative shells: Elvish, Fish, Oil, Xonsh (Python!), Emacs's eshell, and even the Haskell-based shell repls like Turtle and Shelly. The only one I really stuck with was Nushell. It's friendly, pretty, intuitive, easy to read, heavy on pipes, and super powerful for data analysis. Plus it's modern replacement for a lot of tools, like `ls`, `jq`, `curl`, and so on. Writing a little command-line program is a joy in Nushell.
I went down this route based on HN recommendations, with some people calling it stable well documented.<p>There's TODOs all over the documentation! There's no background task tools for scripting, and in interactive use background tasks are barely supported - an issue about background tasks has people going roughly "nobody needs to do tasks in parallel, that was only important when people were working on mainframes". The shell hooks have (undocumented) weird restrictions. Lazy iteration of lists is only supported by using functions with callbacks. Stable = development appears stopped.<p>This is half baked and dead. For my new computer I really <i>really</i> wanted a lightweight new shell with orthogonal syntax thought out from the ground up and not glued together over 4 decades, and this seemed like the closest option! But this isn't it.
Related. Others?<p><i>Elvish, expressive programming language and a versatile interactive shell</i> - <a href="https://news.ycombinator.com/item?id=40316010">https://news.ycombinator.com/item?id=40316010</a> - May 2024 (114 comments)<p><i>Elvish Scripting Case Studies</i> - <a href="https://news.ycombinator.com/item?id=39549902">https://news.ycombinator.com/item?id=39549902</a> - Feb 2024 (1 comment)<p><i>Elvish is a friendly interactive shell and an expressive programming language</i> - <a href="https://news.ycombinator.com/item?id=24422491">https://news.ycombinator.com/item?id=24422491</a> - Sept 2020 (49 comments)<p><i>Elvish: a shell with some unique semantics</i> - <a href="https://news.ycombinator.com/item?id=17987258">https://news.ycombinator.com/item?id=17987258</a> - Sept 2018 (1 comment)<p><i>Elvish 0.11 released</i> - <a href="https://news.ycombinator.com/item?id=16174559">https://news.ycombinator.com/item?id=16174559</a> - Jan 2018 (1 comment)<p><i>Elvish: friendly and expressive shell for Linux, macOS and BSDs</i> - <a href="https://news.ycombinator.com/item?id=14698187">https://news.ycombinator.com/item?id=14698187</a> - July 2017 (86 comments)<p><i>Elvish – An experimental Unix shell in Go</i> - <a href="https://news.ycombinator.com/item?id=8090534">https://news.ycombinator.com/item?id=8090534</a> - July 2014 (75 comments)
I've been eyeing a "better shell" for a while, but I've just decided that a couple zsh plugins and I'm probably happiest. As the meme says "Change my mind".<p>I've been using fish for the last year or more, and I like some of the "batteries included", particularly the predicting of the command you want to run. But fish is too much like bash in syntax, meaning that I just think of it like bash until I have to type "(foo)" instead of "$(foo)", or "end" instead of "fi". The zsh plugins for doing command predicting and fancy prompt seems to get me all the fish benefits with none of the rough spots. And, frankly, the changes fish does doesn't seem to have any benefit (what is the benefit of "end" over "fi").<p>Even xonsh (I'm a huge Python fan) doesn't really have enough pull for me to stick in it. Oils, nu, elvish, they all have some benefits for scripting, but I can't see myself switching to them for interactive use.<p>It's kind of feeling like zsh is "good enough" with no real downsides. Maybe this is mostly that I've been using sh/ksh/bash/zsh for 40 years, some of these other shells might be easier to switch to if you lack the muscle memory?
Ever since I 'discovered' Nushell I've noticed a lot of new shells appearing on HN.<p>The thing I like about Nushell is it does away with some of the things that I found hard with bash, and made data formats a first class citizen (something I enjoyed about powershell).<p>I think if you like Lisp elvish would be ideal but for me the lack (seeming, I've not done a deep dive on the docs) of built-in data parsing is a no.
I just use rc shell from Plan9 (ported to Linux[1]) nowadays, it is more simple than bash and whatever other shell there is out there.<p>You want functions? For loops? Lists? They got them.<p>[1] <a href="https://github.com/rakitzis/rc">https://github.com/rakitzis/rc</a>
Looks nice. Obviously way better than Bash, but there are a few options that are way better than Bash, so I feel like it should spend some time convincing me why I should use this over e.g. Nushell.<p>Anyone have any experience of both?