Fish Shell Design Principles
fishshell.com
fishshell.com
I understand the desire to avoid using the special chars but the alternative (using the cursor keys) is just too cumbersome. It turns out that when you use the shell for everything, efficiency is the thing that matters the most.
Not complaining - I'm not the target audience - I just find it an interesting observation about usability.
Now that Unicode support is becoming more common, perhaps some bold shells will bravely adopt new special characters.
https://github.com/justinmayer/tacklebox
https://github.com/justinmayer/tackle/blob/master/plugins/sd...
Some may feel that these kinds of functions should be built-in, and if so, that's probably where the philosophical divide lies. For me and many others, avoiding esoteric syntax makes it easy to compose small snippets that accomplish precisely what we want, without having to remember unintuitive special characters or deal with their often-idiosyncratic behavior. (^_^)
On the other hand I love how much fish does for me. I really take a huge amount for granted and noticably miss it when I have to use a different shell.
(And while compatibility with tools which expect bash gets brought up a lot, I've had zero issues. YMMV.)
If you aren't using fish, you need to switch to it right now.
We had this really old build system that worked, but man, it was riddled with a lot of scripts that did not declare the shebang and used all trickery shell scripting. It took almost a month to fix them and make them more portable. It was good, because I converted three people to fish after that. :)
(I should note that I've been guilty of spending time on non-valuable things. So this is most certainly a bit of the pot calling the kettle black :)
"""
[...]
Configurability is the root of all evil
Every configuration option in a program is a place where the program is too stupid to figure out for itself what the user really wants, and should be considered a failure of both the program and the programmer who implemented it.
[...]
"""
That's so wrong. Providing configurability is flexibility. No programmer will ever know what the user really wants. The most he could do, is to define the most reasonable default values. But there are freaks out there who love to do stuff differently.However, it assumes there is always an objective better way. That's something I'm not convinced of.
The rational that reducing choices will lead to less software bugs is certainly true, though. That's the reason I'd pick to have less config. Config options generally map directly to conditionals in your code base, which means more potential code flows and multiplicative combinations of possible things your code can do depending on what is turned on and off. There is a real maintenance cost to having lots of configuration.
So the person who would just use preinstalled bash then
It is not talking about that kind of configuration like keybinding and color scheme, which is simple to implement, simple to understand, and something most users would happily play with. Fish even encourages users to customize such things by providing a web interface.
A good choice for the proper context here is the 180 options that zsh offers (http://linux.die.net/man/1/zshoptions). All of them exist for a reason -- mostly because "this is cool but some will dislike it / it will break other features, so let's make it an option".
This strategy does its job in keeping old users. But the problem is that you only add options and never remove options, and over the course of development, many options are used by fewer and fewer people. When a new user picks up zsh, it behaves almost the same as 20 years ago -- because breaking changes are introduced as options that are off by default -- and you never know which combination of the 180 options will give you a good experience. They either get frustrated and not use zsh, or copy someone else's .zshrc and never care about which options do what. Either way, it is a clear sign that 180 options for a shell is simply too much.
And from that frustration, is born the sentiment that you just read.
It gets totally absurd when even the defaults aren't sane, like in some text editors syntax highlighting is off by default.
set foo HEAD
git reset $foo"@{1}"Super annoying, to me at least.
More info: https://hackercodex.com/guide/tacklebox-fish-shell/
It's subjective of course, based on what your workflows are and how much bash-fu they involve.
I really dislike the anti-customization bent they have. It has 'sensible defaults' but it is extremely painful or impossible to change them. I went back to ZSH.
Here's a recent blog post describing this strategy:
Not gonna give a try on a project that is primary maintained for bad people with bad intentions.
In any case, it’s clear this is just a stunt to open the path for Fisherman to become the de facto framework. Hopefully no one will really use them, but I know some people will.
Fisherman supports Tackle modules and functions, so if you are using Tackle, you can migrate to Fisherman without any hassle and still reuse and enjoy their plugins.
Fisherman supports Tackle modules and functions, so if you are using Tackle, you can migrate to Fisherman without any hassle and still reuse and enjoy their plugins.
• https://github.com/justinmayer/tackle/issues/3
Tackle support for "modules" and "function" snippets in Fisherman proof:
• https://github.com/fisherman/fisherman/blob/master/functions...
I exhort you to demonstrate my comment was false.
Bonus Points
PRs are ignored for months:
• https://github.com/justinmayer/tackle/pull/16
Issues are left unanswered for months:
• https://github.com/justinmayer/tackle/issues/14
All I am saying is, if you need first-class support for your fisheries, Fisherman is the man for the job, not Tackle. But hey, Fish is great out of the box and you don't really need anything to get up and running :)
You are unnecessarily hostile and misrepresent facts. As other commenters here have already noted, you clearly cannot be trusted.
Who actually submitted each line of code is visible in the commit history. The copyright is attributed to the Oh-My-Fish! group as a whole. You pushed the Wahoo code and you were part of the group until you started trolling, moving and deleting the repository, creating fake users, sending annoying DMCA claims, etc etc...
Much of the Wahoo code was removed, changed, or about to be phased out. If it was any good you wouldn't start your new framework from scratch.
And if attribution was really all you wanted, you could have simply asked for it. Why would anyone deny that from you?
Anyway, I'm tired of chasing you to put a counter to your spread of skewed truth and your generous omission of facts.
Watching you two quarrel has left me with such a sour taste in my mouth that I'm now wondering why my shell needs a plugin manager in the first place.