Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This article really feels like bikeshedding to me. I'm always going to use whatever shell comes default with the OS I'm on (which almost always means Bash), simply because changing the shell is an unnecessary block of time that could instead be used writing software. I need a really good reason to switch, something the equivalent of pipes, and if the #1 reason you can give is "Powerful context based tab completion", I'm confident in dismissing zsh as a cosmetic improvement on bash that I don't need to waste my time on.


Personally, I spend so much time in the shell that it's definitely worth spending some effort to increase my ability to use it productively. I switched from tcsh to bash about a year ago after decades of using tcsh. Switching to bash was a mistake; I probably should have switched to zsh instead. Bash is broken as an interactive shell in more ways than I can enumerate; it is a constant source of annoyance and frustration. I have no great love for tcsh, but it is far better as an interactive shell, despite the fact that it truly sucks for programming.

Re what comes with the OS: I haven't logged into a Unix/Linux box in a decade that hasn't had zsh on it.


How much software can you write in three seconds?


How many computers do you use? Having to switch between zsh and bash mentally when you from your dev box to a server can be jarring. For some people it's worth it, for others it isn't.


just stick an exec zsh at the end of your bashrc, wrapper in an if statement if it's not available on all machines on your environment.

do people have the same attitude to screen/tmux or vim/emacs (vs nano)?


I don't think untog was talking about the overhead of executing zsh upon starting a new session so much as the mental overhead of the mode change from zsh specific features to those of another shell.


zsh's tab completion is definitely not cosmetic. It can do very useful things like completing scp destination paths over remote hosts.


This has been done by bash_completion for years.


Just like bash.


This is the same logic that keeps me from jailbreaking my iPhone - it's possible and fairly straightforward, but eventually some condition (likely an important iOS point release) causes the situation to revert.

f.lux for iOS is tempting me to re-visit this, as it's crucial to me getting a few more Z's at night.


Meanwhile I've been enjoying a jailbroken iPhone for over three years now. How many important iOS updates have there been anyway? All I can recall were the SMS exploit and the PDF exploit for which there was a fix available on Cydia sooner than Apple provided an iOS update.




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: