Hacker News new | ask | show | jobs
by samdg 1027 days ago
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.