Fish Shell Is Reborn Again As A RUST Rewrite!!

Поделиться
HTML-код
  • Опубликовано: 5 янв 2025

Комментарии • 467

  • @Requiem100500
    @Requiem100500 3 дня назад +477

    It's no longer Fish, now it's a Crab

  • @md2perpe
    @md2perpe 3 дня назад +217

    So the Rust rewrite is now ofishal?

    • @lentolen
      @lentolen 3 дня назад +24

      oh fish shell

    • @michaelcummings7246
      @michaelcummings7246 3 дня назад

      Yep if you like Betas which are cool fish IMHO. 🤣

    • @LabiaLicker
      @LabiaLicker 2 дня назад +1

      what did your spellchecker break?

  • @toxiccan175
    @toxiccan175 3 дня назад +237

    Goodbye Fish, welcome Fish

    • @SingleTheShot
      @SingleTheShot 3 дня назад +26

      fish is dead, long live fish

    • @siha-
      @siha- 3 дня назад +5

      We got a whole aquarium here

    • @TeaMaster420
      @TeaMaster420 3 дня назад +1

      WHOAH, hi gnome!!! I see travelling through spacetime requires some good software, yes. Linux good!

  • @uuu12343
    @uuu12343 3 дня назад +43

    I dont know why, but the idea of "Guys look! Fish is also doing the meme, its looking to rewrite into Rust---, oh its already done." Is hilarious

  • @CristianoCang
    @CristianoCang 3 дня назад +98

    Calling the release "The Fish Of Theseus" is just brilliant. I can't think of a better codename for the release of a C++ software that was gradually but completely rewritten in Rust, congrats to everyone involved

  • @johnsimon8457
    @johnsimon8457 3 дня назад +13

    A shell is all about producing and parsing strings, which has been a weakness of C/C++ for years. Nasty vulnerabilities like shellshock have turned up in bash.
    So, if RIIR is more secure and maintainable, it’s a win-win, especially how OSS projects have decades of lifetime across several maintainers

  • @Iris-2106
    @Iris-2106 3 дня назад +168

    Jarvis rewrite Brodie Robertson in rust

    • @romanstingler435
      @romanstingler435 3 дня назад +33

      struct Brodie {
      name: String,
      wayland: bool,
      distro: String,
      wm: String,
      rust: String,
      }
      impl Default for Brodie {
      fn default() -> Self {
      Brodie {
      name: String::from("Brodie Robertson"),
      wayland: true,
      distro: String::from("Arch BTW"),
      wm: String::from("Cosmic"),
      rust: String::from("yes please"),
      }
      }
      }

    • @TailRecursive
      @TailRecursive 3 дня назад +2

      I wheezed

    • @jkash3383
      @jkash3383 3 дня назад +2

      brodie fishton

  • @Heater-v1.0.0
    @Heater-v1.0.0 3 дня назад +8

    I love the honesty. Number one for reason for using Rust: It's fun. It's a great argument because it circumvents the need to endlessly discuss the logical arguments for safety and robustness vs C/C++ and all that tedious rational stuff.
    It's not clear to me why people bash on Cargo as being lacking somehow. Likely it is in ways I have not thought of but it seems to me that if Cargo does not help automate a ton of stuff that is not really anything to do with Rust that it is not Cargo's fault. For example it is mentioned here how Fish uses Cmake to automate integration tests and documentation installation etc. I really don't think Cargo should be endlessly extended to try and cover the infinite variety of such jobs.

  • @Mishaye
    @Mishaye 3 дня назад +101

    I have no strong opinion on C++ vs Rust, but I love fish so if this makes it better then I'm all for it.

    • @danielagustinmorales5696
      @danielagustinmorales5696 3 дня назад +26

      Or just like, make the devs enjoy working on it. That's the most important thing IMHO

    • @alxkub
      @alxkub 3 дня назад +1

      Does it though?

    • @sparky8251
      @sparky8251 3 дня назад +13

      @@alxkub They themselves say it does.

    • @alxkub
      @alxkub 3 дня назад

      @@sparky8251 of course they do, let’s see what users have to say when they finish the rewrite.

    • @TheObsesedAnimeFreaks
      @TheObsesedAnimeFreaks 3 дня назад

      I love C++ and question the people that love rust. But I just have no experience with rust, soo....

  • @GalvayraPHX
    @GalvayraPHX 3 дня назад +6

    Cygwin is used in the enterprise. You can deploy your software along with a minimal cygwin package and just have bash scripts regardless of win/linux target.

  • @Cyco_Nix
    @Cyco_Nix 3 дня назад +50

    Started back on KornShell, then BASH, then ZSH. I enjoy using FISH for an interactive shell. It just works well out of the box. You can still run BASH scripts with no issue. Obviously, I would never recommend it for scripts, but it is a nice shell. Obviously, being from the Korn days, I have been more on the C side of things, but I don't have any problems with RUST or the RUST devs I work with. It is cool to see them do this in a year.

    • @sodiboo
      @sodiboo 3 дня назад +10

      why not use it for scripts? i prefer fish for scripting, it's neat and more comfy

    • @Cyco_Nix
      @Cyco_Nix 3 дня назад +6

      @@sodiboo Mainly because I have a ton of bash scripts, and it is what I am most comfortable with. I have done some fish scripts, and it is quite nice, but I don't do many scripts now days, as I get older.

    • @sodiboo
      @sodiboo 3 дня назад +5

      @@Cyco_Nix yeah, that sounds reasonable for why you don't really use it for scripts, but not really an answer to why you would "obviously never recommend it"? that statement sounds like there's something inherently wrong with [non-POSIX?] scripting

    • @Cyco_Nix
      @Cyco_Nix 3 дня назад +6

      @@sodiboo For personal it is fine, but if it is a script you are pushing out to a lot of systems or to other users who may or may not have support for it on the system, then I would want to use something that I know their system has support for.

    • @gronki1
      @gronki1 3 дня назад +1

      ​@@sodiboobecause nobody uses anything except bash to do actual job

  • @WyvernDotRed
    @WyvernDotRed 3 дня назад +25

    With the Fish shell, I used to be in the it's not POSIX compliant, so I should not use it camp.
    But for general shell use, it being the Garuda Linux default, I just kept using it for the tab completion and syntax highlighting.
    When I decided to finally look into change-ing the shell, I first gave Fish's documentation a read and decided to give it a proper go.
    And like how Garuda Linux managed to become my preferred choice, I quickly had an 'oh, huh' realisation that I actually liked it.
    After writing a few scripts with it, I have decided to make all future scripts on my home server in Fish, instead of the current use of Bash.
    The ways in which the Fish syntax and behaviour differs from POSIX is a major improvement.
    I am only rarely caught off-guard by the way it interprets data like spaces, instead of in pretty much every script I write like what is the case with Bash.

    • @gronki1
      @gronki1 3 дня назад

      Nobody writes serious fish scripts because nobody has fish. Unless you write toy scripts for yourself

    • @kuhluhOG
      @kuhluhOG 3 дня назад +9

      ​@@gronki1 if I share stuff with people, I don't even write shell scripts because it just has way too many edge cases for that

    • @bluephreakr
      @bluephreakr 3 дня назад

      The way you explained Fish is the way I ended up liking Pamac when using Manjaro. Now; I don't use Manjaro anymore, but I still install Pamac, even though they've abandoned GTK3 in favour for GTK4 + LibAdwaita - I just build the May 7th release (05-07-2023).
      Now, _of course_ this means in present day I must downgrade Pacman to 6.0.2-9, but this isn't a big deal because I can upgrade Pacman after and symlink in /lib libalpm.so.13 to it references libalpm.so.15 and everything just works with relative sanity after that.

    • @microcolonel
      @microcolonel 2 дня назад +1

      I have written fish scripts at work. It's not a massive challenge, if you are working on a team, to have fish installed.
      It works on OpenBSD, works everywhere I want it...

  • @thingsiplay
    @thingsiplay 3 дня назад +59

    5:53 LTS Linux
    I assume its a paraphrase to describe systems tagged as LTS. And these are not up to date. But if they used the Rust tools, users can update it independent from the system packages (like pip or flatpak does).

    • @srpenguinbr
      @srpenguinbr 3 дня назад +2

      Pip has been removed from many distros fyi

    • @greyshopleskin2315
      @greyshopleskin2315 День назад +2

      You should use pipx to install Python apps.
      Or just use your package manager if you don’t care about the version

  • @TheKaruso33
    @TheKaruso33 3 дня назад +31

    I really like fish as my interactive shell. I need no plugins and almost no configuration. Also, I really can't live without its incredible autocomplete anymore.

    • @faxen123
      @faxen123 3 дня назад +2

      still glazing about the autocomplete every time i use it

  • @mhelmreich1
    @mhelmreich1 3 дня назад +2

    I have only written a small project in, it was my first (obviously), I was amazed how quickly I picked it up.
    The compiler is so good with its feedback.
    I can understand the fan base for it.
    I love the memory security etc.
    I think the idea of rewriting in rust would make sense for many.
    At the end of the day, use the tool that is expedient.

  • @SIackware
    @SIackware 3 дня назад +21

    Thanks to the efforts of the crab people, fish has been reborn as shellfish

  • @gtsiam
    @gtsiam 3 дня назад +5

    You can chsh your user to use fish with no real issues. However changing /bin/sh to fish would indeed be certifiably insane.

    • @the-answer-is-42
      @the-answer-is-42 14 часов назад +2

      I did that on my system. The chsh thing, not the changing/bin/sh thing. Works great for me so far.
      I don't use shell scripting enough to remember the syntax of anything, so all those user friendly aspects of fish really help make my life easier when I do.

  • @ArturdeSousaRocha
    @ArturdeSousaRocha 3 дня назад +20

    I don't have much enthusiasm for rewrites, unless the goal is to address real problems that cannot be overcome through incremental work. Alternative implementations, sure, though my preferred language is Go. Actually, as a user I don't really care what the underlying technology or design is; I just need a given tool to fulfill my needs - good CLI/GUI/TUI, good performance, stability and support. Also, the accelerating proliferation of programming languages that often have similar goals but slightly different approaches is an indication that we're all missing something.

    • @BrodieRobertson
      @BrodieRobertson  3 дня назад +31

      The rust rewrite was addressing real problems through incremental work

    • @mmstick
      @mmstick 3 дня назад +12

      I can't think of any languages that have similar goals to Rust. Microsoft started working on a research language inspired by Rust: Project Verona, but they have seemingly abandoned it in favor of just sponsoring Rust development instead.

    • @kuhluhOG
      @kuhluhOG 3 дня назад

      ​@@mmstick, Swift would come to mind, or Hylo.
      Both also try to statically and safely (if possible) deal with lifetimes in a way programmers normally don't need to think about and be a compiled systems language one can use even for kernels (yes, as far as we know, Apple uses Swift in their kernel). Ofc both take a slightly different approach on how to do that, but both should work afaik.

    • @theairaccumulator7144
      @theairaccumulator7144 3 дня назад +1

      I agree. People see a cursed codebase and go "woah this could be so much better if we rewrite it in rust!!" but they don't know anything about what the code actually does past the surface level requirements and the fact that the cursedness is there for a reason. A from scratch rewrite will crash into the same roadblocks again and have to rediscover unintuitive edge cases and reimplement more or less the same solutions, converging into the same codebase. This is why I believe rewrites are a massive waste of time.

    • @johnsimon8457
      @johnsimon8457 3 дня назад +2

      Sure, none of this affects the end user. But, given a c++ code base and “I want to introduce a high level of quality with ownership semantics, remove try/catch exception handling in favor of go or rust’s type based error handling, introduce immutability by default everywhere.”
      A lot of this fixing around the edges stuff would be more effort to do incrementally in c++ than a rewrite in Rust because these are first class concepts in the language and not bolted onto the side of C++. The language, tools and library ecosystem already provide help in this area.
      This is a little bit like introducing asynchrony into Java or python. If one function is async, they ALL have to be. Which makes a developer wish they just started with node, where you have to really TRY to make a synchronous function that makes network calls.

  • @ArtemShoobovych
    @ArtemShoobovych 3 дня назад +8

    all the statements about skill issue and dependency hell sort of reminds me of old memes "just rewrite it in assembly" - do you _have to_ implement every tiniest thing from scratch every time you have to build anything? n.b.: i am guilty of doing so myself, but mostly due to the fact that i find joy in figuring out how stuff works by making the said stuff

  • @ghosthunter0950
    @ghosthunter0950 3 дня назад +13

    LTS linux probably refers to any LTS supported distro since they can use older packages which might cause issues for supporting it.

  • @ottergauze
    @ottergauze 3 дня назад +3

    Rust exists to solve a problem. If your project benefits by the problems it solves, rewrite your damn program in Rust. Don't worry about it being looked at as a meme. People aren't going to stop using your program because it's written in Rust, but people may start.

  • @IXPStaticI
    @IXPStaticI 3 дня назад +2

    I am learning C++ not because I was thinking "I want to learn C++" but because "oh god have mercy I need to learn C++ to do this thing"

  • @wwdex
    @wwdex 3 дня назад +6

    13:38 kdl is used in zellij config file btw

  • @AlexMax2742
    @AlexMax2742 3 дня назад +19

    Fish is a good shell, but the fact that it's not bourne-shell compatible is REALLY annoying when you're following instructions that assume bourne-shell behavior in quoting and escaping behavior. Still, I liked it as far as it went, and it's good to see that it's still being maintained.

    • @moarjank
      @moarjank 3 дня назад +3

      It also means it can't parse /etc/profile, which is mandatory on some systems (Gentoo says it is, at least)

    • @josefa9671
      @josefa9671 3 дня назад +11

      In those cases, I just do "bash" and run what I need then exits to Fish again.

    • @elsi-e
      @elsi-e 3 дня назад +5

      @@moarjank you can easily get around that by adding "[ -x /bin/fish ] && SHELL=/bin/fish exec fish" to .bashrc so it'll leave bash as the login shell but run and set fish as the default shell after logging in.

    • @CjqNslXUcM
      @CjqNslXUcM 3 дня назад +2

      yeah, but on the other hand, the bourne shell is horrible and needs to die more quickly.

    • @oserodal2702
      @oserodal2702 3 дня назад +1

      ​@@CjqNslXUcMBourne Again Shell will never die. Hundreds of millions of lines of BASH code is in some critical part of a system never updated in the last 20 years.

  • @alpacamale2909
    @alpacamale2909 3 дня назад +14

    Unlimited Rust Works - Universe of Endless Clones

    • @jagagemo8141
      @jagagemo8141 3 дня назад +3

      I am the .rs of my shell

    • @BrodieRobertson
      @BrodieRobertson  3 дня назад +17

      Well this one isn't a clone, it's by the fish Devs replacing the prior code

    • @Max-mx5yc
      @Max-mx5yc 3 дня назад +6

      it's much more like mem::replace than .clone

  • @mactan_sc
    @mactan_sc 3 дня назад +41

    rewrites are good actually. especially for pet projects

    • @VallThyo
      @VallThyo 3 дня назад +19

      Fish pets are really cute

    • @mmstick
      @mmstick 3 дня назад +3

      It's standard practice in big tech for mission critical software. Sometimes they even have multiple teams competing for the best implementation.

  • @jordanmccallum1234
    @jordanmccallum1234 3 дня назад +1

    I've found cargo is particularly a pain to integrate into projects where it is one cog in a larger machine; cargo expects to be *the* build system, and that any tools accepting a binary built by cargo is not going to dictate things like dependencies.
    I was attempting to bring cargo infrastructure into a buildroot-like project, and have the common dependencies of independent rust packages be version aligned so everything could be dynamically linked and have no duplicates... The amount of wrestling involved told me that this is not what cargo is designed to easily accommodate.

  • @salman-farooq-sh
    @salman-farooq-sh 3 дня назад +8

    Niri (scrollable-tiling wayland compositor) uses KDL for config

  • @iWillAvert
    @iWillAvert День назад

    0:45 I am one of those people. Sure, it doesn't exactly play nice with the TTYs too well but it still works fine. It is basically zsh with a couple of the plugins included by default (such as syntax highlighting) and a much nicer and more readable scripting language.
    I'm also tempted to look into rewriting it in C to troll the Rust devs (maybe I'll use C3).

  • @danwellington3571
    @danwellington3571 3 дня назад +19

    The Rust consumes

  • @Chalisque
    @Chalisque 21 час назад

    On Windows, I love cygwin, and use it as my default shell. I have many bash scripts for my Linux machines. With macports gnu bash, I can run them almost unmodified under macos. And likewise with cygwin. I use ssh a lot, and as I understand, you can't ssh into a Windows 11 machine and then get a wsl shell. Under cygwin I use anaconda for heavier python stuff like jupyter and pyside. But having a bash environment in the win32 side of things is something I couldn't easily do without. (e.g. replacing cygwin with powershell would entail rewriting tons and learning different syntax and so on.) I would love up to day rust, rustup, neovim, and perhaps fish under cygwin. But I'm generally happy with bash, since that's available basically everywhere.

  • @Lampe2020
    @Lampe2020 3 дня назад +4

    13:38 I just now read the KDL website and I think it's immediately my favourite config format. I'll probably use it a lot in upcoming projects as it seems to be exactly what I want.

    • @awdsqe123
      @awdsqe123 3 дня назад +1

      Zellij, a tmux alt, uses KDL and I always find it pleasant to write in.

    • @RenderingUser
      @RenderingUser 3 дня назад +2

      @@Lampe2020 if serde supports it I'll try to add it to my programs as well

    • @Lampe2020
      @Lampe2020 3 дня назад +1

      @@awdsqe123
      I saw that on KDL's website. But I know none of the projects they listed as "these use KDL". Seeing that there are actually people using it, maybe it'll become my go-to config language and more wide-spread generally someday.

    • @m4rch3n1ng
      @m4rch3n1ng 3 дня назад +1

      @@RenderingUser kdl is a little ... too complex for serde, but i can highly recommend the knuffle crate: great errors and a good derive macro. kdl is also apparently very complex to serialize, so in my (admittedly fairly short) search i have not found a rust kdl serializer (though that is less important as a config format).
      note: kdl is also used by the niri wayland compositor and it is actually quite a good format. niri also uses knuffle.
      edit: apparently knuffle is unmaintained and there is a more maintained fork called knus. the more you know i guess

  • @adiadic4722
    @adiadic4722 3 дня назад +5

    i too am looking forward to when uutils rust rewrite officially replaces the traditional gnu utilities implementation.

    • @soanvig
      @soanvig 3 дня назад

      Oh no, that won't happen. If anything it should be more of a unix utils, as GNU is bloated >:(
      But there already are gnuutils in rust so...

  • @Chalisque
    @Chalisque 20 часов назад

    I've just installed beta1 of fish4, and am starting to like it. git branch and it understands stuff. I could get used to this.

    • @Chalisque
      @Chalisque 19 часов назад

      Though not having subshells at all is perhaps an oversight. What you write inside command substitutions has side effects. While not a practical example,
      cd / ; echo ( cd /home/me/bin ) ( ls )
      results in the ls being run within /home/me/bin, not /, and the shell being in /home/me/bin as a result. The should have at least a subshell command, so that
      subshell
      cd /
      ls
      end
      results in the cd / and ls being run in a subshell, so that the cd / doesn't affect the shell itself. A situation where any command you run can have arbitrary side-effects upon your shell is something that makes me uneasy.
      (Perhaps an -s or --subshell option on begin might be the answer, so that we could do ( begin -s; cd /; ls ) so that the cd / happens in a subshell.)

  • @HagobSaldadianSmeik
    @HagobSaldadianSmeik 3 дня назад +11

    Rust is the correct language because the developers concluded that they want to use it and they thought the rewrite was worth their time. If you dislike that, go fork the old version and keep developing it in C++ yourself. I am a C++ developer myself and the criticisms of the Fish devs are for the most part valid. I absolutely understand them not wanting to keep spending their free time fighting with C++' footguns.

  • @fendoroid3788
    @fendoroid3788 3 дня назад +11

    Should rewrite curl in Rust, so people will stop opening AI generated bug reports for buffer overflows.

    • @comradepeter87
      @comradepeter87 3 дня назад +4

      Funny you should say that, since the HTTP networking code for cURL is now in Rust 💀

  • @HaydonRyan
    @HaydonRyan 3 дня назад

    Great update. Didn’t have to be rust, but any safe language. That said glad they proved out the rewrite in rust. I hope more software does this and has more tests, better concurrency and is faster.

  • @ildarakhmetgaleev
    @ildarakhmetgaleev 3 дня назад +16

    Fish works just fine as default shell for me.

    • @michawhite7613
      @michawhite7613 3 дня назад +5

      It works as long as you don't replace /bin/sh with a symlink to fish

    • @linearz
      @linearz 3 дня назад +1

      ​@@michawhite7613who is fool enough to do that?

    • @threddast
      @threddast 3 дня назад

      Yeah and neither would replacing /bin/sh with a link to /bin/bash… so what?

    • @michawhite7613
      @michawhite7613 3 дня назад

      @threddast That would be fine actually. Arch Linux does that by default.

    • @ottergauze
      @ottergauze 3 дня назад

      There has been a lot of work for backwards compatibility lately which I am a huge fan of

  • @bookle5829
    @bookle5829 3 дня назад +6

    "It should never be used as your main shell."
    I've been using it as my main shell for months.

    • @BrodieRobertson
      @BrodieRobertson  3 дня назад +1

      You've probably been using it as the shell in your terminal

    • @bookle5829
      @bookle5829 3 дня назад +4

      @@BrodieRobertson I'm serious lol

    • @foobuilder
      @foobuilder 3 дня назад

      Same here on Fedora. It used to break something in Gnome but that was years ago. I think most everything that would cause trouble was moved to Systemd, generic .profile stuff, or got a proper shebang.

    • @Mempler
      @Mempler 3 дня назад +4

      ​@foobuilder Oh yeah, and most scripts now have an "#!/usr/bin/env bash" shebang making it also compatible with macOS and nixOS and all the weird unix and unix like distros that don't follow standards

    • @CjqNslXUcM
      @CjqNslXUcM 3 дня назад +3

      @@BrodieRobertson In my terminal I use nushell by default, but fish is my actual login shell and i've had zero issues.

  • @Kiyuja
    @Kiyuja 22 часа назад

    I'm all for it. Not specifically for safety guarantees and fearless concurrency, even tho thats awesome icing on the cake, but because it will remove a ton of legacy debt and workarounds you needed. Rust just doesnt has it, should make it more elegant and be a better foundation for the future.

  • @jokeyrhyme
    @jokeyrhyme 3 дня назад +2

    I'm currently very excited about Rust, and encourage its use (this level of data-race safety is not available in any other language besides Swift and Erlang/Elixer, I think)
    Rust's governance by foundation can be problematic, but consider the corporate dictatorships of Java/Kotlin/Go/Swift (I'll choose a foundation every time)
    However, there are safety aspects that even Rust doesn't address (memory leaks, deadlocks, etc), so I'll happily move on to the next language that improves safety without regressing compared to Rust's performance

    • @Kiyuja
      @Kiyuja 22 часа назад +1

      Memory leaks arent necessarily an issue in Rust. Sure its sloppy when it happens and on extremely limited systems it might cause issues, but leaked memory would never be referenced anyway and thus is not a concern, at least in terms of security.

    • @jokeyrhyme
      @jokeyrhyme 19 часов назад

      @@Kiyuja I agree, and I understand how incredibly complicated/limited a language would have to be in order to guarantee no leaks
      That said, I do think there's a slight safety issue here, as leaking memory could be part of a Denial of Service attack, and factors into overall reliability somewhat
      I think Rust is currently the world's safest language in its performance category, I just want to be clear that I'm not religiously devoted to Rust, it's the outcomes that I'm excited about, and I'll use any language that provides these (or better) outcomes :)

    • @Kiyuja
      @Kiyuja 5 часов назад

      ​@@jokeyrhyme yeah I get it. And I'm telling you that memory vulnerabilities that would DOS C/ C++ systems wouldnt take down Rust because (unintentionally) leaked memory cannot be accessed again, this means those attacks dont work.
      There also cant be buffer overflows and other shenanigans that brought other systems to their knees.
      Rust has built-in command to intentionally leak memory, this is necessary for systems programming languages, you need leaked memory for a FFI.
      Funfact: some smaller programs leak memory intentionally at the end, because manually deallocating memory is expensive and operating systems clean it up anyways, so you are done faster as you are skipping a lengthy process.

  • @curties
    @curties 3 дня назад +6

    Some of you might be to young to have witnessed this but back in the day you had to fax invoices if you wanted them paid ASAP. So someone would stand there for a day or two every month and manually fax invoices to their b2b customers. Today most companies accept invoices per email but some others still require them to be sent via fax (time stamps etc) so companies use fax servers and sent them out automatically with all the invoices that go out via email.
    now imagine someone saying "we shouldnt implement a fax server and should stick with manual work".
    this example isnt 100% 1:1 when it comes to rust and c++ but its close enough.

    • @atiedebee1020
      @atiedebee1020 3 дня назад

      Its not that big of a change in tooling, more like switching to a new bike with a more robust casing around the chain

    • @khhnator
      @khhnator 3 дня назад

      i have no idea what you talking about

    • @ruslan_riazantsev
      @ruslan_riazantsev 3 дня назад +1

      More like: I like this new shiny thing, I want this new trendy thing, I am bored and have nothing to do, so I'll use this new thing to get free PR I would not have got otherwise.

    • @gronki1
      @gronki1 3 дня назад

      Yeah, c++ is still doing the actual job. Rust is a toy

    • @khhnator
      @khhnator 3 дня назад

      @@ruslan_riazantsev while true, no one in this planet wants to use C++.
      we use it because there is no other language that does what it does and is mature enough.... well there wasn't, now Rust exist.
      is not even that Rust is a better language... is just that C++ is such miserable experience. one can say the most of last 20 years of programming is literally people coming up with things so they can get away from C++.

  • @18earendil
    @18earendil 3 дня назад +14

    Can we talk of carcinisation here ?

  • @insu_na
    @insu_na 3 дня назад +1

    I'm passionate about coding in C++
    It has its issues, and there are quite a few things about it that make me want to scream at someone, but the syntax is dead simple compared to Rust and it's easy to get into.
    I've tried to like Rust, but it just isn't for me. It's not bad by any means tho, just doesn't work with how my brain works.

  • @user-vn9ld2ce1s
    @user-vn9ld2ce1s 2 дня назад

    It's not true that fish shouldn't be used as your system shell, I've had it set up (using chsh) for half a year already and haven't found any problems. Scripts usually specify which shell they're written for using shebangs (#!/bin/sh)

  • @pixl_xip
    @pixl_xip 3 дня назад +11

    I shouldn't set Fish as my system shell? Fine, I'll set it to Nu.

    • @soanvig
      @soanvig 3 дня назад

      I did. Used for 5 months, wrote scripts, and surrendered. This project is still half-baked. In 3 years... Maybe...?

    • @pixl_xip
      @pixl_xip 3 дня назад

      @@soanvig Curious - what were your problems with it? I have been trying it for the past two days, and have really liked it.

    • @soanvig
      @soanvig 3 дня назад

      @@pixl_xip Nothing particular, just encountering absolutely random problems with absolutely random things. 1.4k issues (270 confirmed bugs) on nushell github kinda proves my point. In my case it included: apps not working at all or in certain conditions, builtins having incosistent/not working/missing APIs and similar. For running scripts that are confirmed to work it might be OK, but at the same time, you can use any scripting language for that. As a daily shell for everything I have very mixed opinions.
      I do believe in the project, and I really like what they are trying to achieve.
      My experience is quite fresh (6 months in the past or so).

    • @night_h4nter
      @night_h4nter 3 дня назад

      but why?

    • @pixl_xip
      @pixl_xip 3 дня назад

      @@night_h4nter ¯\_(ツ)_/¯

  • @Its-Just-Zip
    @Its-Just-Zip 3 дня назад +1

    Mods, rewrite his code base in Rust.
    Also, we should rewrite fish entirely in Python just because it'll make the Rust rewrite look better by comparison.

  • @ToyKeeper
    @ToyKeeper 3 дня назад

    Rust seems cool. I've been meaning to learn it. But almost everything I do is either faster/easier in Python, or requires a specific language so I don't get to choose. So I haven't had a use for Rust yet. Maybe someday though...

  • @zzco
    @zzco 2 дня назад

    lol 10:49 brodie just totally hallucinated that "I do know one person though, would love to work on a C++ codebase in my free time". xD

  • @SeralyneYT
    @SeralyneYT 3 дня назад +9

    Oh I suppose it's time to give it a new name. Hmm. Taking a note out of bash's book, maybe this should be called fash?
    ...Ah.

  • @Jaymal10
    @Jaymal10 3 дня назад +1

    I love fish. I can’t go back to using anything else. You don’t need add-ons you don’t need to find random projects that have died 10 years ago. It’s just all included.
    Add on starship a you have a perfect setup.
    If it works in rust, I’m fine with it too.
    What I really want is a complete system that’s built around it. No more bash no more zsh. At least personally other than the core system stuff I do not run anything that’s a bash script. And I at least have not for at least five years.

  • @smorrow
    @smorrow 22 часа назад

    Is Git-Bash not based on Cygwin?

  • @Alccce
    @Alccce 3 дня назад

    The Rust rewrite meme is still MASSIVE, the fish rewrite's memory usage is so LOW but the rust rewrite is like fixing it with scotch TAPE that's starting to FADE

  • @MadMathMike
    @MadMathMike 3 дня назад +2

    Missed opportunity to rename to ShellFish. 😞🦀

  • @uuu12343
    @uuu12343 3 дня назад

    I prefer msys2/mingw64 (and cygwin by extension) simply because WSL is not portable, once you install via wsl, you gotta recreate it if you change systems which is hurts me for some reason
    Like the thought that if anything went wrong, my system could be affected by WSL's systems

  • @HaydonRyan
    @HaydonRyan 2 дня назад

    I'm also really surprised that there is no rust project to extend cargo to be able to do the things fish and others need!

  • @MyriadColorsCM
    @MyriadColorsCM 3 дня назад +4

    The 'normal' unix shell language is atrocious, legacy bullshit we are forced to deal with.
    It should be replaced.
    And yes, body, I DO want to learn CPP.

  • @arcuscerebellumus8797
    @arcuscerebellumus8797 3 дня назад

    As a fellow rust enjoyer - this obviously has my approval. However, let's not get carried away here, rust is just yet another language. If it helps with productivity and brings out more fun from the process, you already have enough justification - you don't need any "um, actually" on top of that.

  • @MagnaP
    @MagnaP 18 часов назад

    8:07 I feel these complaints would be easily fixed with some flags and using a more modern C++ standard.
    But again, gcc, for example, takes ages to support the newer standards.
    I want to use import already.

  • @soanvig
    @soanvig 3 дня назад +1

    Using fish as default shell, happy about rewrite, love&hate relationship with Rust.
    Comment for algorithm, just as you desire, Lord Brodie.

  • @mrpocock
    @mrpocock 3 дня назад

    I'm hoping that cargo gets cli tools for making deployments and packaging and releases. It is a really big gap in the tooling.

  • @liangwang4518
    @liangwang4518 3 дня назад +1

    I’ve been using fish as my login shell for many years now and never had any problems with it.

  • @danielagustinmorales5696
    @danielagustinmorales5696 3 дня назад +3

    Rustup is indeed magic

  • @keltrm
    @keltrm 3 дня назад +1

    I'm half disappointed that the title doesn't say "Rebourne Again"

  • @13thravenpurple94
    @13thravenpurple94 3 дня назад

    Awesome video! Much appreciated 💜

  • @ryandodrill6904
    @ryandodrill6904 3 часа назад

    Considering so many of the arguments for rust boil down to “it’s the current fad” I wonder what happens when it’s not.

  • @IngwiePhoenix_nb
    @IngwiePhoenix_nb 3 дня назад

    If the rust rewrite means I can replace PowerShell with it, I am down. Using Fish as my login shell for my SSH sessions...and I unironically like it. So, this'd be neat.

  • @lexibigcheese
    @lexibigcheese 3 дня назад +1

    as a fish user and a rust dev...
    i wonder if i'll see many rust integrations :3

  • @spiderboy_yt
    @spiderboy_yt 3 дня назад

    I use fish (non rust i think) mainly for command completion with tab.

  • @AmirHosseinHonardust
    @AmirHosseinHonardust 3 дня назад

    I have been using fish for a long while now. And I found it the best interactive experience as well. I would love to see if the Rust version behaves differently.

    • @angeldude101
      @angeldude101 2 дня назад

      It's only natural that it has the best interactive experience. It is after all the "Friendly Interactive SHell".

  • @josefa9671
    @josefa9671 3 дня назад +1

    The road to Fish Shell. 1) Bash is ok but, hey,,, zsh seem like goat, I only need these plugins and this ..2) ZSH with plugins is ok but, what, Fish Sell has most of the stuff out-of-the box 3) Enjoy Fish Shell.

    • @CjqNslXUcM
      @CjqNslXUcM 3 дня назад

      4) need to do anything complex, move to nushell

  • @sylvershadow1247
    @sylvershadow1247 3 дня назад +1

    Unrelated: are you still planning on releasing videos on Odysee?

  • @PeakKissShot
    @PeakKissShot 3 дня назад +1

    now replace the cmake with meson

  • @someyoutubeuser9077
    @someyoutubeuser9077 День назад

    Fish works fine as your users shell (aka system shell, changed via chsh). Have been daily driving it this way for more than three years.

  • @voidmind
    @voidmind 3 дня назад +1

    The person who wrote this blob post is a great communicator.

  • @antiwokehuman
    @antiwokehuman 3 дня назад

    Fish is absolutely amazing as an interactive shell. It makes using the terminal much less cumbersome

  • @blahblahblah1787
    @blahblahblah1787 3 дня назад

    The only issue I have ever run into with fish is needing to change the syntax for things that would use $ in bash.

  • @Soccera0
    @Soccera0 3 дня назад +2

    Once alternative compilers become available, I'll consider rust to be a good language. However, rustc being the only compiler that's ready at the moment is unfortunately true. C++ is good because there are alternative compilers so if say, GNU does something monumentally stupid, I can switch to another compiler. If the C++ project does something stupid, we can just gradually move away from the language, while not using newer features.
    If Rust does something monumentally stupid, we can use an older version and move away from it gradually. However, if Rust does something stupid with rustc, we'd be left stuck with an out of date security holes galore ancient compiler. We could fork it, but it would be a nightmare. Imagine if GNOME was the only desktop on Linux at the time of GNOME 3 being released. You'd have MATE, but plenty of other projects were abandoned. It was a nightmare and is not something I want in such an important project as a compiler.

  • @sakib8599
    @sakib8599 3 дня назад +1

    Currently rewriting my life in rust

  • @bearwolffish
    @bearwolffish 2 дня назад

    My life is filled with too many shared mutable borrows to rewrite it in rust. Checker can't handle the required optimisations, it's all unsafe.

  • @rgal
    @rgal 3 дня назад +3

    Nice try, but I still refuse to use the shell that requires you to open a web browser to read its documentation instead of using man pages like everybody else.

    • @RustIsWinning
      @RustIsWinning 3 дня назад

      The future is now oldmann

    • @kuhluhOG
      @kuhluhOG 3 дня назад +1

      If you already know the name of the manpage AND the words inside of the manpage you are searching for, this works.
      Most of the time when I need to look something up, I don't know one of these.

  • @АртемКулик-я3д
    @АртемКулик-я3д 3 дня назад +1

    if i didn't write my software in C++ you couldn't re-write it in Rust, you guys need me 😈

  • @Linuxdirk
    @Linuxdirk 3 дня назад

    Complete rewrite in Rust, 1200 scripts, 961 completions, 217 associated functions, 130 pages of documentation - and still not POSIX compliant 🤣

  • @salman-farooq-sh
    @salman-farooq-sh 3 дня назад +4

    Me! I swear by fish!

  • @serras_
    @serras_ 3 дня назад +1

    It was a rusty venture, but it was worth it

  • @dacritter8397
    @dacritter8397 3 дня назад

    I'm one of those who refuses to use anything other than fish to do anything that doesn't specifically require posix compliance. And moving to rust is AOK with me.

  • @CEOofGameDev
    @CEOofGameDev 3 дня назад +1

    MEMORY SAFETY IN MY SHELL? OOOOOOOOOOOOHHHHHHHH YAS.

  • @k1logr4m51
    @k1logr4m51 День назад

    "Where are the C++ evangelists?" Hyprland dev must be punching air right now.

  • @MadMathMike
    @MadMathMike 3 дня назад

    8:35 "It's just, like, part of the language" I don't know why, but the delivery on this cracked me up. 😂

  • @flamindemigod
    @flamindemigod 2 дня назад

    10:53 is this a vaxry reference?

  • @superbotnotabot
    @superbotnotabot 3 дня назад +1

    you should download your recovery codes or add a passkey

  • @sodiboo
    @sodiboo 3 дня назад

    5:53 According to the very first comment on the initial RiiR pull request, they typically support older versions of CentOS and Debian.

  • @DontKnowDontCare
    @DontKnowDontCare 3 часа назад

    C++ is so difficult I love it. Rust is disgustingly easy.

  • @LIXEREQ
    @LIXEREQ 3 дня назад +1

    WHY ISN'T THIS VIDEO ON ODYSEE?

  • @vilijanac
    @vilijanac 3 дня назад

    Rust defaults variables as immutability and type. It is fast as it doesn't have or need garbage collection.
    Rather is an static system that it calls ownership. All in all will not get memory leaks or have to worry about allocation, as developer.
    Is it better or richer then Python. I think it will be one day, as the compiler is growing and being further developed.

    • @alexstone691
      @alexstone691 3 дня назад +9

      Comparing it to python is nonsense, completely different language goals

    • @vilijanac
      @vilijanac 3 дня назад

      @@alexstone691 Well it was compared here to C++. Python also compiles and creates executables or libs. So please explain the 'nonsense'?

    • @QazCetelic
      @QazCetelic 3 дня назад

      ​@@vilijanacPython is not a systems programming language, Rust and C++ are.

    • @jidfan
      @jidfan 3 дня назад +4

      @@vilijanac Python is an interpreted language. And yes, it has completely different goals from Rust, there's no need to compare the two.

    • @kuhluhOG
      @kuhluhOG 3 дня назад

      While you won't get double frees, you can quite easily get memory leaks in Rust, it just does reference counting after all (so, have a cycle, and done).

  • @sherrykda3511
    @sherrykda3511 3 дня назад

    I would love to try using Fish more but in my eyes, Fish is more for the hobby Linux guy that's too much into Linux but doesn't use it professionally (except on their work pc). If I were to use Fish privately and then have to connect to random Linux Servers for work purposes and have to use bash there, I would probably go insane. That's why I will stick to bash

  • @faxen123
    @faxen123 3 дня назад

    as an actual fish enjoyer who also refuses to use anything else i can confirm this behaviour unironically

  • @jefferyrlc
    @jefferyrlc 3 дня назад

    I used to use nu shell before finding fish. Now fish is been rewritten in rust... and I'm okay with that.

  • @syrefaen
    @syrefaen 3 дня назад +1

    I use fish, but none of my distros has updated it to 4 yet, I expect it to be good!

    • @viruzaum
      @viruzaum 3 дня назад +1

      I don’t think any distro has it, it’s in beta

    • @michaelcummings7246
      @michaelcummings7246 3 дня назад

      @@viruzaum Yep still in beta but I've started running it the last couple days on Linux Mint from the alt PPA and been very smooth so I expect it'll be release soon-ish

  • @rincasifutsume
    @rincasifutsume 3 дня назад

    Fish-shaped rust (sounds like a portal cake recipe ngl)