I'm a beginner/intermediate in NixOS and my flake rebuild takes about 25 seconds to be finished. Most of the time is evaluating derivation for some reason and it's getting kinda frustrating having to wait when I want to add a package to my config. Has anyone the same problem or is it normal that it takes this long in Nix?
If you don't run it regularly then you will likely be waiting for a few different packages to get updates. To fix this you can configure auto upgrades:https://nixos.wiki/wiki/Automatic_system_upgrades
It varies by day. Some days, I rebuild the system flake five times, while other weeks I don't rebuild it at all. However, the time it takes to rebuild remains about the same.
Depends on what you're doing in your config and what you're changing. My configs are huge and complex because I was a moron when I first started out. Adding packages to your nixosConfigurations is a smell IMO. Most of the time, it would be preferable to add them to a devshell instead.
25 seconds sounds pretty close to my experience, but my machine is beefy and my configs have a lot of bad patterns for eval time.
I agree that adding every package to my NixOS configuration isn't the right way to do things, and I should definitely use a devshell or nix-shell -p $package for that. However, it's much more noticeable when I'm working with something like an HTTP server, constantly adding new things to the config, and needing to wait 25 seconds to actually test it.
My changes take maybe a few seconds less, but I find that quite normal. It could be faster, but let's be honest how often does one run that? I run it maybe once a week or once a month. 25 seconds a week is nothing to me.
Normally I test packages with nix-shell -p $package then when I'm satisfied, it goes into my configuration and the time to do so doesn't matter anymore.