News: 0001515465

  ARM Give a man a fire and he's warm for a day, but set fire to him and he's warm for the rest of his life (Terry Pratchett, Jingo)

Fish Shell Outlines Their Successes & Challenges Going From C++ To Rust

([Programming] 5 Hours Ago Fish Shell Rust Port)


Earlier this month [1]the Fish Shell 4.0 went into beta with the C++ code ported to Rust . Now with most of the Fish Shell code transitioned to Rust, the project put out a blog post this weekend outlining the successes and challenges they have encountered in porting their large C++ codebase to Rust.

The Fish Shell developers noted some of the C++ pains they had encountered leading them more to exploring other languages were around tooling and compiler/platform differences, ergonomics and thread safety, and the development community. One example was Fish having prototyped a true multi-threaded execution in C++ and that being painful for this open-source shell.

As for going with the Rust programming language, they admit, " Rust is cool. It’s fun. " They also pride Rust for its tooling, easy tooling setup, great ergonomics, better dependency management, and the send and sync abilities of Rust make it very nice for threading.

The developers do acknowledge some challenges with Rust such as how it handles portability, the tooling sometimes failing to consider other targets, and some localization issues. Some gripes with Cargo were also pointed out that while it's great for building things, it's rather simplistic for installing them and thus Fish is still relying on CMake

The [2]Fish blog post concludes with:

"The port wasn’t without challenges, and it did not all go entirely as planned. But overall, it went pretty dang well. We’re now left with a codebase that we like a lot more, that has already gained some features that would have been much more annoying to add with C++, with more on the way, and we did it while creating a separate 3.7 release that also included some cool stuff.

And we had fun doing it."



[1] https://www.phoronix.com/news/Fish-Shell-4.0-Beta

[2] https://fishshell.com/blog/rustport/



lowflyer

uid313

TheMightyBuzzard

Guiorgy

Jumbotron

Jumbotron

NateHubbard

tobias

skeevy420

<james> any gnome freaks around?
<Knghtbrd> not me, I'm just a freak