Live data from Hacker News

Fish 4

github.com

91–100 of 113 posts

Re: Fish 4

#91

Earlier quoted context omitted.

What makes you think so? The Rust compiler is able to instrument LLVM a lot better and provide it with a lot more info than C++ can. The borrow checker does a lot of the work there to for example keep things on the stack or do LSE or GSE and other optimizations. It isn't just about "oh, the rewrite allowed them to restructure things and optimize the algos". It is also that Rust due to its nature is able to be absolut…

Additionally, some people shared that they feel more comfortable making more aggressive optimizations in their Rust code because the borrow checker has their back. Stylo was tried twice in C++ before the Rust attempt, and it never worked out, because the threading was too hard to get right. In theory you could have done it. But in theory, theory and practice are the same, but in practice, they’re different.

Oh definitely. Refactoring in Rust is a lot safer. Sometimes a lot more cumbersome, but definitely safer. Sometimes a refactor introduces a lifetime to a structure and now a loooot of places need changing, but at least it's safer. In C++, it would be less safe, but I could compile it and test the part I am trying to change or test first. It's a pro and con on either side.

But for the end product, I err on the safety side for sure.

Re: Fish 4

#92
post #84
post #30

I recently built my own shell to better understand its complexity and how it works under the hood. I also implemented redirections and partial tab completion. While I get that writing a shell isn’t the easiest task, I still don’t fully understand why there are so many different ones. I’ve been using the default shell on macOS, and so far, it works just fine.

I go another notch: Why are so many different ones with so little major changes. If you experience the `shell` of FoxPro DOS or other tools you will see how poor are the ones we tolerate now. Is like we still live in the age of `ed`. (I even remember one of this projects have the joke that is finally a `terminal for the 90s!` or something like. Shells in common use a very poor things!)

Yup.

Have you read Jef Raskin's The Humane Interface? It's an explainer and retrospective for his Canon Cat.

I want more of that foundation, vision, concept.

With the recent renewed interest textual user interfaces (TUIs), maybe this cycle we'll tact a little closer to that utopian future perfect omni-shell.

https://en.wikipedia.org/wiki/The_Humane_Interface

https://en.wikipedia.org/wiki/Canon_Cat

https://en.wikipedia.org/wiki/Jef_Raskin#Pioneering_the_info...

--

And another thing (I say curmudgeonly)...

bash (and csh), the progenator of all modern shells, is just one realization.

Iteration and refinement are double awesome. We're seeing crazy awesome new variants, like Warp.app, oil shell, fish, and so forth. Yea for evolution!

But I would also hope today's youngsters take a moment to review the genesis of all the modern ideas we now take for granted. From memory, in no particular order:

  Engelbart's Mother of All Demos
  Raskin's original vision for Macintosh
  Nelson's Xanadu
  Higgins art philosophy of "intermedia"
  Xerox PARC
  cybernetics
  Atkinson's HyperCard
  etc.
The founders had motivations, insights, and ideas. Necessarily limited or ignored by feasibility. It's worth understand their ideas directly, for better or worse, not just thru subsequent intepretations.

With 60+ years of progress and gestation, surely there are even more tangents worth exploring.

Re: Fish 4

#93
post #44

I was expecting issue #9512 "Rewrite it in Rust" to have been submitted on April 1.

It's not too late for "Rewrite it in Zig" or "Rewrite it in Ada".

Or "Revert back to C++" would be funny.

Apparently no one around here has a sense of humor, though, since my original post was heavily downvoted. I greatly prefer Rust over C++, but "rewrite it in Rust" has become kind of a meme. And if you can't laugh at yourself, who can you laugh at?

Re: Fish 4

#94
post #6

I've used Fish for many years, but frankly only for the great autocompletion. The streamlined theme/prompt system and oh-my-fish plugin management are quite nice too, but minor. The rest of Fish features that are not bash-compatible are rather a pain, particularly environment variable management. In principle these features have a better design than in bash, but not that much better, and their use is infrequent enoug…

The great autocompletion is a great inspiration to me as well. It's intuitive in how it works and requires no user manual, although when you sit down to analyze it, it actually has some subtle states. It's such a great design that I essentially copied its UX to a web app I was working on: https://github.com/kccqzy/smartcal/commit/10d32d18d257d5093d...

Re: Fish 4

#95

Earlier quoted context omitted.

What I mean is that in open source, things only get done by people motivated to do them. Nobody has ever even asked for darcs support: https://github.com/rust-lang/cargo/issues?q=is%3Aissue%20sta... So the lack of darcs isn’t because the Cargo folks think it’s bad or something. Just that things don’t get added just because. Re quirks, sure, that’s why rustc and cargo are different. You don’t have to use Cargo. Meta d…

sure sure, and what i mean is that ideally the package manager can be made to use any arbitrary vcs system by the programmer. that's all. early on choices were made with cargo's development to where it's non-trivial to make something like that work, you touched on that briefly. it's a good example of why making a package manager is hard, there are so many aspects to them and it's really easy to engineer yourself into…

> (maybe they've been fixed, maybe it was just a skill issue.)

Maybe! This is how Meta uses RA, and they sponsor development, and I know at least one of the people working on it and he really cares about getting things right, so if you run into it again, you should open up an issue.

Re: Fish 4

#96

Earlier quoted context omitted.

Additionally, some people shared that they feel more comfortable making more aggressive optimizations in their Rust code because the borrow checker has their back. Stylo was tried twice in C++ before the Rust attempt, and it never worked out, because the threading was too hard to get right. In theory you could have done it. But in theory, theory and practice are the same, but in practice, they’re different.

IIRC, you yourself commented a few years ago in a thread on HN that the Rust situation was still a lot like "because of certain guarantees Rust makes we should be able to perform tons of optimizations that C++ could never do, and we haven't even gotten around to implementing most of them yet", has that situation improved a lot since? ("a few" might be off by pre-pandemic amount of years, my memory is a bit fuzzy ther…

I vaguely remember that :)

It's progressed in the sense of like, the Unsafe Code Guidelines and opsem teams are hammering down the exact semantics still, and have made a lot of progress. I'm not aware of any actual optimization work taking place off of it yet, which would make sense given that it's not all fully hammered out yet.

I also might have been handwaving towards how restrict kept having to be turned off because it was broken, meaning very few C or C++ codebases seem to use it at all, whereas virtually every Rust reference has it on. It's been back on for a while now.

Re: Fish 4

#97

As a zsh user, I've been meaning to give fish a try. I keep adding plugins to zsh to make it act like fish (like command autocomplete) that I might as well try and/or switch to it.

Same situation, but I have the feeling that eventually I'll like the customizatability of zsh more than the convenience of Fish because I'm already too opinionated in my own configuration, and transferring to Fish might be more of a hassle than a gain. But who knows maybe someday it will be easier to customize Fish to my liking, but for now the ecosystem doesn't seem to completely fit my needs.

Re: Fish 4

#98

If you use Homebrew it’s not available there yet, but it’s being added. See https://github.com/Homebrew/homebrew-core/pull/209124 .

Nice, it has landed. Now I'm getting:

> warning: Could not set up terminal for $TERM 'xterm-ghostty'. Falling back to hardcoded xterm-256color values

Re: Fish 4

#99
post #84
post #30

I recently built my own shell to better understand its complexity and how it works under the hood. I also implemented redirections and partial tab completion. While I get that writing a shell isn’t the easiest task, I still don’t fully understand why there are so many different ones. I’ve been using the default shell on macOS, and so far, it works just fine.

I go another notch: Why are so many different ones with so little major changes. If you experience the `shell` of FoxPro DOS or other tools you will see how poor are the ones we tolerate now. Is like we still live in the age of `ed`. (I even remember one of this projects have the joke that is finally a `terminal for the 90s!` or something like. Shells in common use a very poor things!)

It’s actually fish that has that tagline :)
Post reply on HN