Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

design/motivation doc #6

Open
nrdxp opened this issue Aug 28, 2022 · 0 comments
Open

design/motivation doc #6

nrdxp opened this issue Aug 28, 2022 · 0 comments

Comments

@nrdxp
Copy link

nrdxp commented Aug 28, 2022

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant