You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There have already been a few attempts at rewriting parts of, or all of Nix in Rust. While it is usually heavily discourage to completely rewrite a well established tool in a new language, I think there are a lot of idioms in Rust that map far more nicely to the concepts inherit in Nix than they do in C++, additionally, the current implementation leaves a lot to be desired, and refactoring the existing C++ would be difficult enough to feasibly justify such a rewrite after all.
That said, we also have tvix being worked on, which, at least according to the blog post, has been designed with a few desirable goals in mind, i.e. better performance, native IFD, etc. So it might be worthwhile to clarify what exactly are the goals of this project compared to others? Perhaps it is too early to care at this point, and that's a valid answer as well, but it'd be nice to know, from a potential contributors standpoint what the actual goals are.
A few questions off the top of my head, is this meant to be a serious replacement, just a toy project, an educational exercise, or useful as a core for other tooling (like an LSP)? If it is meant to be a full replacement someday, what are the key differentiating factors that would make this project worthwhile compared to Nix or Tvix? There are a lot of legacy design decisions in Nix that could really be improved if we establish these goals early enough, so I think, if this is meant to be a serious competitor in the long run, the sooner we clarify those goals, the better.
The text was updated successfully, but these errors were encountered:
There have already been a few attempts at rewriting parts of, or all of Nix in Rust. While it is usually heavily discourage to completely rewrite a well established tool in a new language, I think there are a lot of idioms in Rust that map far more nicely to the concepts inherit in Nix than they do in C++, additionally, the current implementation leaves a lot to be desired, and refactoring the existing C++ would be difficult enough to feasibly justify such a rewrite after all.
That said, we also have tvix being worked on, which, at least according to the blog post, has been designed with a few desirable goals in mind, i.e. better performance, native IFD, etc. So it might be worthwhile to clarify what exactly are the goals of this project compared to others? Perhaps it is too early to care at this point, and that's a valid answer as well, but it'd be nice to know, from a potential contributors standpoint what the actual goals are.
A few questions off the top of my head, is this meant to be a serious replacement, just a toy project, an educational exercise, or useful as a core for other tooling (like an LSP)? If it is meant to be a full replacement someday, what are the key differentiating factors that would make this project worthwhile compared to Nix or Tvix? There are a lot of legacy design decisions in Nix that could really be improved if we establish these goals early enough, so I think, if this is meant to be a serious competitor in the long run, the sooner we clarify those goals, the better.
The text was updated successfully, but these errors were encountered: