4 ms·
Fish is definitely good, but not great enough to justify a switch from Bash. I maintain tens of thousands of lines of Bash scripts and was considering switching
by kolev 11y ago
Fish is definitely good, but not great enough to justify a switch from Bash. I maintain tens of thousands of lines of Bash scripts and was considering switching to Fish once, but decided it wasn't worth it.
When you compare the *nix shells to PowerShell, they feel prehistoric. We all use grep, sed, awk, and the likes, but don't you get tired of having to deal with unstructured data and gross limitations of the shell like basic data structures. Yes, the purpose of the shell is to be quick and dirty, but it doesn't take that much to add some programming sanity and some standards for structured data! There's a port of PowerShell to Mono, Pash [0], but it's so heavy in terms of requirements and has somewhat unclear future. Of course, there's also Xonsh [1] and Xiki [2], but they are pretty new.
[0] https://pash-project.github.io/ https://pash-project.github.io/
[1] http://xonsh.org/ http://xonsh.org/
[2] http://xiki.org/ http://xiki.org/
P.S. One of my favorite Fish feature is Event Handling [3].
[3] http://fishshell.com/docs/current/#event http://fishshell.com/docs/current/#event
- mixmastamyk 11y agoUsing fish doesn't mean you have to stop using existing bash scripts.
- kolev 11y agoI understand that, but my point was that Fish is yet another big missed opportunity.
- mixmastamyk 11y agoI'm still not certain what you are missing from it? It's not perfect but good enough for an interactive shell at this point. Good to stick to .sh for deployed simple scripts on 'nix though. Fish won't become PowerShell, that's for sure. I like the idea of PowerShell, but it's a bit too ugly in person. I'm happy enough with cmd, cmder, and Python for scripting.
- joshkraemer 11y agoFish (like zsh) may leave a lot to be desired, but it is an enormous improvement over bash. I have been using fish for several years, and especially its autocompletion is indispensable to me. (However, I use it as an interactive shell only; TCL is my scripting language of choice.)
- ufo 11y agoPowershell focuses a lot on being a good language to write scripts on. Hence the data structures, verbose names, etc. On the other hand, Fish is mostly focused on being a powerful interactive shell. Its all about having good auto completion (fueled by parsing manpages), history search, etc. I do believe that its very hard to have a shell language thats good at these two domains at the same time and that we are better off having separate languages for each. Trying to solve both these problems at once is what made bash into the mess it is now in the first place.
- pbowyer 11y agoIs there a simple, sane introduction to PowerShell? I've read through a dozen PowerShell scripts in the last week and find them incomprehensible compared to Bash scripts. I know I learned Bash 15 years ago, but it's not just familiarity that's causing the confusion
- useerup 11y agohttp://www.microsoftvirtualacademy.com/training-courses/getting-started-with-powershell-3-0-jump-start http://www.microsoftvirtualacademy.com/training-courses/gett...
- zaphar 11y agoI've tried to use and get comfortable with Powershell but it's insistence on types and overly heavy syntax just get in the way for my primary use case for shell scripting. (e.g. quick and dirty hacks) I don't in fact get tired of unstructured data and the limitations of the shell like basic data structures because nine times out of 10 the data I have to work with in a shell is exactly that. Unstructured and basic. Not because of the shell but because the source of that data provides it that way. Powershell with it's intense focus on fancy datastructures makes something like sed '/foo/d' unecessarily hard and that's exactly the sort of thing I use my shell for. If I want something more powerful for working with structured data I'll use Python or Julia.