4 ms·
I feel like a lot of that effort could be reduced though: > You have to learn your declarative framework Could the framework be simplified so that you don't n
by SkiFire13 1y ago
I feel like a lot of that effort could be reduced though:
> You have to learn your declarative framework
Could the framework be simplified so that you don't need to learn all of it but rather just a small part when you're only doing basic stuff?
> Then you have to slowly build your configuration base, or copy someone else's and figure out why they did what.
Couldn't pre-made configurations be made available? For example in docker it's very easy to base your image on another image from an online registry.
> Then you have to figure out workarounds for things that aren't natively managed declaratively.
This is unfortunately a consequence of the current ecosystem essentially being imperative-first, but I wouldn't consider it an intrinsic limitation of declarative systems.
> Then you start writing your own little helper functions and modularize things. At this point, it starts getting very smooth.
This is probably the part where you really need to spend a lot of effort, but I wonder if it's possible to reduce the need for these helper functions and modularization or provide them by default for at least most common cases. Then most wouldn't need to spend the effort for them because they either already exist or there would be no need for them.
- zxexz 1y agoThe crazy bit is pretty much everything you’ve described exists. Except for the most important bit, the documentation.
- jorvi 1y ago> Could the framework be simplified so that you don't need to learn all of it but rather just a small part when you're only doing basic stuff? If you just want to do 'basic stuff', declarative OS management has way too much overhead. > Couldn't pre-made configurations be made available? For example in docker it's very easy to base your image on another image from an online registry. Nix really is as a configuration of configurations (called modules). So yes. But no one runs the exact same OS setup or container, so eventually you will need to modify it to your specification. > This is probably the part where you really need to spend a lot of effort, but I wonder if it's possible to reduce the need for these helper functions and modularization or provide them by default for at least most common cases Nix already has premade helper functions for common cases via 'builtins'. As far as modularization goes, at some point you are going to want to do something custom, and if you want to apply that to multiple systems then making it a module just makes sense.