DEV Community

Discussion on: Which desktop environment, and why?

Collapse
 
ahferroin7 profile image
Austin S. Hemmelgarn

I’m personally rather fond of Gentoo for a couple of very specific reasons:

  • The performance gains from using code optimized for the specific CPU micro-architecture of the local system, while not huge (usually not more than single digit percent improvements over generic builds of the same code), are somewhat significant for my typical usage.
  • The customizability that Gentoo allows for is huge for me, both because it lets me keep attack surface as minimal as possible by not enabling functionality I don’t need, and because it allows me to make use of features which are not readily available in more mainstream distros because the distro maintainers either don’t see them as worth worrying about, or don0t feel that they’re stable enough to let users use them.
  • I find Portage a lot easier to work with when dealing with custom packages (which I do work with on a semi-regular basis) than most other options. Building a custom DEB or RPM is tedious, a custom APK for Alpine is a serious pain in the arse, and while Arch is not horrible it’s still not great. On Gentoo though, a custom package amounts to maybe a dozen lines of shell script in the right directory layout.
  • Gentoo is also one of the few distros that gives you near complete flexibility with the storage stack. This is big for me because I’m a bit obsessive about reliability and maintainability of persistent storage in my systems (to the point of ensuring I can do live, online storage device replacements without any downtime and without any need to boot into a separate OS).

The downsides are a lot more general though:

  • Installation is pretty much entirely DIY. For most people this is a major hurdle because they’re used to dealing with much more actively guided installation processes, but it can also, ironically, be a good thing, because it means that you can put together a Gentoo system without needing to actually do it on the system you are putting together without much difficulty compared to Fedora or Debian (this is wonderful when working with VMs or systems that need to use a network filesystem for their root filesystem).
  • Regular day-to-day management of Gentoo systems is a bit more involved and a lot more technical than most other Linux distros. You pretty much have to understand how each part of your system works, at least at a conceptual level, to be able to manage it, unlike distros like Ubuntu or Mint which try to hide all of this from the user as much as possible.
  • Updates can take a very long time, especially if you only do them infrequently, and tend to use a lot of system resources compared to most other distros. Gentoo builds almost everything locally unless you go out of your way to set up a binary package host (but even then you have to build everything somewhere), so you have to deal with compile times and the overhead associated with building software (which can be quite bad at times, WebKit for example takes about 45 minutes to build even on a very fast system, and LibreOffice and LLVM are even worse). This in particular is the primary reason I don’t use Gentoo literally everywhere, as I have some systems that either lack the processing power to support this or need to have minimal system impact from updates.