Python's compilation is just a transparent caching mechanism common to many high-level languages, not really comparable to replacing a C binary. Output is a syscall so pathological cases aside the language doesn't matter much. The biggest CPU bottleneck in Portage is probably massaging the dependency graph; I remember how back when I used Haskell, update previews would take ages simply because that language's overlay has so many micro packages.
Gentoo's package manager
My (admittedly novice) take is that any delays introduced by the use of Python for portage are minimal compared to the time required to compile the packages. Why not use a scripting language for scripting?
I'm hooked on gentoo. Serves me well on my 8c/16t desktop and on my C2D laptop and in everything in between.
I wish I knew more about the sysadmin domain... I would love to use something like puppet to ensure that my various installs stayed in sync as far as DE/WM limitations allow.
What do you mean by this?
What other package manager lets you hotswap out your standard C library or your system SSL library in about five commands? What other package manager has the concept of binary vs source code split besides guixs'. What other package manager, besides windows' internal compilation script nightmare, lets you compile things statically, shared, or both at a whim and keeps track of it all? What other package manager lets you install to new architectures that the *insert developers here* haven't compiled binaries for? What other package manager lets you set a single flag to disable or enable a feature going by different names in different packages for your entire system?
I don't know but you should install it haha
Guix, Nix
If you're talking about openssl vs libressl you still have to recompile your whole system though don't you?
ports
You do, which is hilarious considering that to solve this problem is literally what dynamic linking was invented for. Swapping out your libc can have "fun" effects too, especially when downgrading. I once had 80% of all programs fail at load time because I downgraded to a version before bzero support. The rest of the system was of course still compiled for it.
There was a niche distro once based on a build system called tup, where basically the system was a huge makefile. In a sense, the package manager kept almost-copiled programs around and could quickly relink or partially recompile when something changed. In my opinion, this would be far superior to the current dynamic linking and full recompilation shitfest.
take a look at emerge(1), ebuild(5), make.conf(5) and porage(5) and you'll see what he means
dev.gentoo.org
dev.gentoo.org
dev.gentoo.org
dev.gentoo.org
guix and nix are cool, but porage has overwhelmingly more features
ports are fine if you only plan on making modifications to a couple of packages which won't affect other packages
otherwise, it's not really feasible unless you've got time to maintain your own port tree