Zsh is a good shell, probably one of the best posix shells out there,
and I still use it when a posix shell is needed.
However, I got tired of the endless footguns that posix shell scripting imposes,
easy to make errors around quoting, word splitting, and escaping,
the sort of thing that makes https://www.shellcheck.net/[shellcheck] necessary.
I played around with fish for a few days,
but it had many of the same fundamental design choices, mainly, being 'stringly typed',
that made posix shells such a displeasure to work with.
== A Nu shell
While googling around for alternative shells, I stumbled across https://www.nushell.sh/[nushell],
a shell that claimed to work around structured data instead of just strings.
This was *exactly* what I was looking for, and I installed it immediately.
I decided to work with it for around a month,
give myself enough time to really use it,
see not only how it felt with ordinary usage,
but to give myself time and opportunity to construct a few pipelines and scripts in it.
All that said, the month is up, and ive been collecting examples,
thoughts, and some criticisms along the way.
== Piping structured data
// show some examples of grouping, sorting, etc without endless invocations of `cut`.
== Parsing non-nu tools
// show parsing initcall_debug logs, and how it then lets one do analysis on it
== Defining custom commands
// show the basic syntax for custom commands
=== Built in arg parsing?
// show syntax for custom args, and how it leads to auto completion and help generation.
== Error messages
== Whats not there yet
// explain some limitations, tools that assume the existence of a posix shell (esp files one is instructed to source)
// also explain the limitations where nushell scripts cannot pass structured data, but are treated as external commands, therefore their usefullness in a pipeline is limited.