You mean its if and switch statements? For and while loops? Just like bash and zsh has?
No i mean the flow in general. It’s ugly and not transparent when compared to bash or any other language
the lack of indication where it starts to where it ends
Yes and no, I mean how it chooses to start and end, there is no punctuation, it seems to emulate a tab oriented language without being a tab oriented language.
Piping something “via the function layout”? I’m not even sure what that means. I’d love to know more if you would.
Two separate complaints, I dislike how they manage functions (but yes bash does similar on this case). Piping and redirecting are badly implemented and what would be an accepted pipe in ZSH or Bash will fail in fish. I made a script that had to pipe a file via wget and it wouldn’t function unless I used a pager which wasn’t needed in Bash or Zsh and wasn’t documented as a requirement anywhere on their piping or redirection documentation. Took me almost an hour of troubleshooting why the command was failing and how to fix it due to it.
I mean… It took me like an hour to read through the documentation, and all the syntax is so small you can memorize the entire
language.
Maybe this has changed since I last tried about a year or two ago, but last time I tried to read the documentation it sucked hardcore and lacked examples of more advanced parts of the shell.
It kind of sounds like you were fighting fish rather than it fighting you, every step of the way. That sounds absolutely crazy compared to my experience.
I would rather take the path of least resistance for a program, with fish it had way too much resistance trying to use it, so I went to the path that had a lesser resistance, which was ZSH, and then just proceeded to add fish’s core capabilities to zsh. This let me use a scripting language that has a lot of documentation and examples to assist in learning, while having the benefits of the shell. Plus it lets me actually share the scripts with friends because it’s already hard to find someone on linux, and its even moreso difficult to find someone who uses fish shell.
the flow in general. It’s ugly and not transparent when compared to bash or any other language
Could you give a single example of this “ugly” and not “transparent” control flow, so I can compare it to bash? I’m having a hard time relating to those subjective and fuzzy adjectives. To me, fish is more clear by a mile. And that is the opinion of someone who has been scripting proficiently in bash for almost two decades, and in fish for like two years. So I’m super curious what you mean, specifically.
Is this possibly a question of bias? You are used to bash-like syntax and weren’t really open to, excited about, or even neutral to fish to begin with? Could that have been a factor?
how it chooses to start and end, there is no punctuation, it seems to emulate a tab oriented language
I don’t get this. Everything that starts a block of statements or control flow is a statement in itself, like function, or if. You can do the next statement on the next line, or add punctuation (;) and add the next statement on the same line. Just like bash.
What’s weird, I always thought, was that bash had these weird, required, extra statements that are needed, like then, and do, etc. Those are ugly to me, and make no sense when you think about it for a little bit. They are excessive and unneeded. The first keyword indicates the start of the thing, by itself. Really simple, and a good design choice IMO. Fewer LOC, less verbosity, without being too terse and sacrificing legibility but only increasing it.
Piping and redirecting are badly implemented
it wouldn’t function unless I used a pager which wasn’t needed in Bash
Super curious about this scenario. Piping isn’t different in fish. You just pipe output to an input. So yeah, very curious about this specific case.
No i mean the flow in general. It’s ugly and not transparent when compared to bash or any other language
Yes and no, I mean how it chooses to start and end, there is no punctuation, it seems to emulate a tab oriented language without being a tab oriented language.
Two separate complaints, I dislike how they manage functions (but yes bash does similar on this case). Piping and redirecting are badly implemented and what would be an accepted pipe in ZSH or Bash will fail in fish. I made a script that had to pipe a file via wget and it wouldn’t function unless I used a pager which wasn’t needed in Bash or Zsh and wasn’t documented as a requirement anywhere on their piping or redirection documentation. Took me almost an hour of troubleshooting why the command was failing and how to fix it due to it.
Maybe this has changed since I last tried about a year or two ago, but last time I tried to read the documentation it sucked hardcore and lacked examples of more advanced parts of the shell.
I would rather take the path of least resistance for a program, with fish it had way too much resistance trying to use it, so I went to the path that had a lesser resistance, which was ZSH, and then just proceeded to add fish’s core capabilities to zsh. This let me use a scripting language that has a lot of documentation and examples to assist in learning, while having the benefits of the shell. Plus it lets me actually share the scripts with friends because it’s already hard to find someone on linux, and its even moreso difficult to find someone who uses fish shell.
Could you give a single example of this “ugly” and not “transparent” control flow, so I can compare it to bash? I’m having a hard time relating to those subjective and fuzzy adjectives. To me, fish is more clear by a mile. And that is the opinion of someone who has been scripting proficiently in bash for almost two decades, and in fish for like two years. So I’m super curious what you mean, specifically.
Is this possibly a question of bias? You are used to bash-like syntax and weren’t really open to, excited about, or even neutral to fish to begin with? Could that have been a factor?
I don’t get this. Everything that starts a block of statements or control flow is a statement in itself, like
function, orif. You can do the next statement on the next line, or add punctuation (;) and add the next statement on the same line. Just like bash.What’s weird, I always thought, was that bash had these weird, required, extra statements that are needed, like
then, anddo, etc. Those are ugly to me, and make no sense when you think about it for a little bit. They are excessive and unneeded. The first keyword indicates the start of the thing, by itself. Really simple, and a good design choice IMO. Fewer LOC, less verbosity, without being too terse and sacrificing legibility but only increasing it.Super curious about this scenario. Piping isn’t different in fish. You just pipe output to an input. So yeah, very curious about this specific case.