| I've been using Xonsh as my main shell for a few years now, and I'm really pleased with the switch. There are some downsides you need to overcome: * Slower to start. Takes a second or two before I can start typing when I open a new tab. * Less stable. Upgrading will occasionally break something, or spit out warnings you gotta find a way to silence. * Lack of compatibility. Tools that change you shell profiles to shim some executables (like rvm or pyenv) will not work. I typically source some files manually, or resort to bash if I need to. * Tab completion is not straightforward. But IMO I get ample compensation: * I can write much better and cleaner scripts using Python's syntax and standard lib. Being able to use `argparse` is a blessing, compared to how you read arguments and flags in bash. * I'm actually able to remember the syntax for looping and conditional. * I'm more self-sufficient in the terminal for small things like arithmetic operations, generating a UUID, testing regexes, etc. * Having typed/structured data in the shell, vs everything being plain text is also quite useful when you don't want to turn some easy task into some complex text processing pipeline. |