Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It's actually not fair to judge this one way or the other at the two year mark.

We technically removed the last C++ code from the core project in January 2024 (~a year ago), the last C++ code altogether (a test helper) in June 2024 (six months ago). We only decided to push out a release now because we've added enough new features (not counting the rewrite as a feature) to warrant a release.

But at the same time, someone could argue that the current codebase is still far from being fully idiomatic rust, there are various C++-isms ranging from the use of UTF-32 (historical from the nature of std::wchar/std::wstring under *nix) to still passing around file descriptors rather than rust `File` objects (that will take a lot of rearchitecting to make mut-safe).

Ultimately, a project is never "done" and we're not being paid at all let alone contingent upon completion of the port, so there's no real use in saying it took precisely this long or that long. We're releasing now because we want to, but I wouldn't tie the release cadence with the port timespan.



The UTF-32 thing was confusing me. It is mentioned in multiple places but never explicit if it was a temporary design decision to ease the transition, perfectly reasonable, or the design going forward in perpetuity, in which case I would love to understand why something like bstr (WTF-8 under the covers) doesn't fit the bill. I've gathered so far that it might be the former, but if it is the later I would still like to know more.


Fish has always used utf-32 codepoints stored in wchar_t, from the first git commit in 2005.

Unfortunately it's pervasive throughout the entire codebase (which does a lot of string shuffling).

So it's a historical mistake, but not something to be fixed in the same step as switching the implementation language.

bstr was mentioned as a direction and is a possibility.


There may not be use for you, but there's use for me, because I've been doing this for a while and I understand the scale and complexity of such a project, and to see you pulling it off in such a short time scale is impressive. I'm impressed.

Makes me reconsider fish :)




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: