I've been using fish
for past year I think, and according to my memories of using zsh
on MacOS things we're fine and everything worked out of box, this changes with fish
(a little, not much) as for example definition of environment variables is different so you cannot execute shell scripts without shebang.
And actually in 2024 we have flood of shells of which only oil
seems to care about POSIX-compilance and be aware how much things dropping POSIX will break (considering the early days of linux which have been using dash? as shell and most of the scripts were written for this)
My thing is, I do not care about POSIX compilance that much when I'm automating shit for myself and script is going to trash after one-time execution - in this case nushell
seems like "would use" category, makes scripting more plesant and do not feel like wood, I mean it definitely feels like modern scripting language we're you just writing less lines to express your idea or porcesss.
From the other thing, when I write scripts that are going publicly in the repository (and are for example part of the build process) I will always keep posix compilance and do introduce additional dependencies on some fancy package that was released last week. That's kinda my problem with all of these "modern shells" I understand once you drop whole backwards compatibility the thing that come out is cool but fuck me... nobody will care about it when it cannot run with sh.
I was thinking about using nushell
as default shell, however I do not think it's a good idea after longer consideration and I think usage of oil
or zsh
is a way to use a login shell as they can be login shell at the first place, in terms of default shell I wonder about my usage of the shell at the most times because I was scripting mostly with python, like the simplest option out there to take and change the data and I just wonder if usage of nushell
have any sense where script can be done in fact in Python, ofc. there is a benefit in skipping all of the mess with package management for functionalitites that are not delivered within language itself and nu seems to deliver functionalities for databases and network.
nushell
was meant to be fun to use, not compilant with POSIX and I think the vaule was delivered for a toy, maybe it's not suckless kind of thing but fun one - for my egoistic purposes should be okay.
Related: