5 ms·
I'm really surprised they went with zsh rather than fish. I guess they want to preserve the ability for existing `source` scripts to work.
by SomeOldThrow 7y ago
I'm really surprised they went with zsh rather than fish. I guess they want to preserve the ability for existing `source` scripts to work.
- tptacek 7y agoWhy would they use fish? Fish is nice and all, but zsh is a much more mainstream shell.
- SomeOldThrow 7y agoSince when is mainstream better? Why did they choose zsh? They don't justify that either. It's just odd to pick one post-bash shell but not the other when they have very similar feature sets—autocomplete, persistent global variables, attention to end-user quality. EDIT: apparently zsh doesn't have persistent or global variables, my bad.
- GavinMcG 7y agoMainstream is often better in terms of unofficial support/learning resources, and by definition better in terms of familiarity/market share. For something like a shell, forcing a niche choice needs justification when it's not clearly better than the alternatives.
- SomeOldThrow 7y agoFish is clearly better than the alternatives.
- nikeee 7y agoWell, fish is not compatible to bash. Users would suddenly face bash-one-liners that they find on StackOverflow to stop working.
- latexr 7y agoMost Terminal users might not even notice the shell changed from Bash to ZSH. Those same users would notice it, had they changed it to Fish.
- SomeOldThrow 7y ago> Most Terminal users might not even notice the shell changed from Bash to ZSH. If that's an argument in favor of ZSH, I think I've missed the point.
- latexr 7y agoIt’s an argument in favour of ZSH over Fish. It will cause less disruption, while providing better features than the current default.
- SomeOldThrow 7y ago> while providing better features than the current default. Barely—it doesn't address any fundamental issues with bash, it's basically a coat of paint. It does make sense that tech companies are only into disruption if they can profit from it.
- Sean1708 7y agoThe point is that apple don't want to update bash because they don't want to ship software that uses GPLv3 but they also don't want to keep shipping a decade old version of bash as the default shell, they aren't doing this because they want to improve on bash or anything like that.
- spartanatreyu 7y agoThere's already a lot of community support available for zsh. Plenty of developers are using oh-my-zsh either for just the plugin support or for the very popular iterm+powerlevel9k+agnoster theming.
- yborg 7y agofish is friendly.
- celeritascelery 7y agoAnd interactive.
- bangonkeyboard 7y agofish was written by an Apple engineer.
- nhooyr 7y agoIt's really annoying to have to learn new language when zsh is so similar to bash.
- SomeOldThrow 7y agoIt's really annoying to learn bash, so I don't see how that works in zsh's favor.
- eropple 7y agoTo be honest I'm hesitant to respond to you because of the level of spittle-flecking you're doing in this thread but I would guess that, by virtue of bash being the standard Mac shell and zsh being a close-enough-but-better replacement, the necessary learning has already happened and overwhelmingly more Mac terminal users will be at least functional with it immediately.
- daveidol 7y agoNot the OP, but I agree with both of you actually. It's easier in many ways to run a POSIX-compliant shell with a more "familiar" scripting language to bash users (especially when it comes to running existing scripts or one-liners you find online).... buuuut at the same time I think it's pretty clear that fish's scripting language is much more modern and "better" in many ways.
- eropple 7y agoI don't write shell scripts for nontrivial things and it's rare that I see a good reason to, so I'm not sure that moves the needle much. It's 2019, we have other scripting tools, etc.
- daveidol 7y agoHmm, I see your point, but on the other hand: is that really a good reason to continue the status quo of shell scripting if there are improvements to be made? Being practical about it: if you install fish you can also install bash, and then running a bash script is as simple as `bash script.sh`, so you can have your cake and eat it too. Although, in this particular instance, if Apple is going to cease shipping bash at all, I can see why this would be annoying out of the box.
- maximente 7y agoas far as i know !! does not work on fish, which means it's dead in the water (had to) as far as i'm concerned.
- daveidol 7y agoDiscussion on the topic: https://github.com/fish-shell/fish-shell/issues/288 https://github.com/fish-shell/fish-shell/issues/288 And, a omf plugin if you want: https://github.com/oh-my-fish/plugin-bang-bang https://github.com/oh-my-fish/plugin-bang-bang
- hestefisk 7y agoExactly, compatibility. fish has a somewhat different syntax to bash.
- m45t3r 7y agoI think it is mainly because `fish` is incompatible with everything. Most `bash` scripts runs fine in `zsh` (`zsh` has even a `bash` compatibility mode, not necessary generally because rarely `zsh` and `bash` diverges), no `bash` script runs fine in `fish`.
- leadingthenet 7y agoMany of my `bash` scripts run just fine in `fish`, especially since v3 released.
- deleted 7y ago[deleted]
- jtms 7y agoI really like fish and had a pretty good run using it, but I have found myself on zsh for quite a few years - it’s just less friction to go with the herd on this particular part of my toolbox
- mhd 7y agoAs MacOS is a certified Unix, like the workstations of days gone by, they should've gone all out enterprise and switched to ksh. Heck, the new Mac Pro is even priced like a SGI/AIdX box.