I’m a long time Windows user who has experience with WSL. Last year, I needed a laptop for university, and out of laziness, opted for a Macbook since, although they’re expensive as hell, are reasonably reliable.

Since using the mac, I’ve absolutely fallen in love with it over Windows. Note that I refer to the non-iOS specific aspects. After not touching my desktop for several months, I now see that I absolutely hate Windows even more. I would like to move my desktop to a Linux system some time in the future. However, my education is limited, and so I’m here to ask for help.

Currently, I’m a student in Mathematics and Computer Science. But outside that, I am, for the most part, a programmer. I rarely game, but I would like the option for the rare occasion that I have the time to do so.

I’ve grown comfortably with the command line, through my in-depth knowledge of lower level knowledge is limited. So, I feel I’m comfortable enough to extend the possible domain of my options.

I would love to hear recommendations and suggestions. I’m also open to other options such as NixOS, but that would require some research to learn more, which is fine. I’m not doing this soon.

If you could provide any links and resources that I can follow to continue learning, especially if relevant to your suggestions, I would be deeply appreciative!

My Mac is the most Linux-like thing I’ve used for so long, and it’s been so, so much easier to work with compared to Windows (I hate Windows PATH limitations so much).

Thanks, all ❤ 🐧

    • @[email protected]
      link
      fedilink
      1
      edit-2
      6 months ago

      NixOS: (1, 2) - You can define specific package versions but with the large repos I doubt there is much QA going on

      It depends on the nixpkgs channel you use (I’m also using the term for flakes here, though technically these are then called inputs). The main channels, those being NixOS-stable whatever the current version is at the time and NixOS-unstable have a rather big set of packages that must be built successfully before users get updates, including the tests defined in the build system plus sometimes distribution-specific tests, though these are often rather simple, like start program and see if its port is open. Even more, when a library gets updated, all programs and other libraries depending on it get rebuilt as well, including all tests.

      Now what if a package outside of that scope breaks? Most likely, your new configuration won’t build, so you’re stuck on an older but working configuration, or it does build, but something doesn’t work. But I’m the latter case, you can still choose to start the older working configuration.

      Also the more complicated packages have very dedicated and capable maintainers from my experience, sure the smaller stuff is often updated mostly automatically with merge request created by bots and just the final merge approved by the maintainer, but the big infrastructure is usually tested quite well.

      As a downside, this can sometimes lead to longer periods without updates when a lot of stuff has to get rebuilt and something doesn’t work (multiple days, but not weeks). You can then switch to another set in case the problematic packages don’t affect you, or just wait. However, saying there’s little QA is unfair, in fact from my experience there’s more QA in nixpkgs than in most distributions.

      I don’t recommend NixOS to new users because it abstracts a lot of stuff away and makes use of mechanics that are helpful to understand first. But if you’re comfortable with Linux, NixOS is a great distribution that even on unstable works very well. Then again, it allows specific packages to depend on very specific versions of other packages, which is partially the reason you’d use a stable distribution.