Ask HN: Best Linux Distro for Development
57 comments
I was a pretty die-hard Red Hat / CentOS / Fedora guy for years. Then I bought a new laptop from System 76 that came preloaded with PopOS. I told myself I'd immediately reformat it and install Fedora or whatever. But then it came in and I was feeling lazy and wanted to get started using it, so I told myself "I'll stick with Pop for a few weeks or whatever, and then I'll switch."
That was like two years ago, maybe two and a half now, and I'm still running PopOS. I really have no complaints. It just works, and the repos have pretty much everything I've ever needed aside from really niche stuff that's never in distro repos.
That was like two years ago, maybe two and a half now, and I'm still running PopOS. I really have no complaints. It just works, and the repos have pretty much everything I've ever needed aside from really niche stuff that's never in distro repos.
And it shouldn't be understated that PopOS has a tiling window manager mode with sensible default keyboard shortcuts. Great no fuss UX for PopOS overall and it's hard not to keep expectations low for Cosmic Epoch
I used PopOS for a long time ~1.5 years. There were two main issues:
- My Asus laptop couldn't sleep or hibernate. It would just be fully on, or shut down. This wasted a lot of battery.
- The wifi reception was always too low. I needed to be very close to the router or couldn't establish a meaningful connection. This was not to inconvenient as I use the same desk always.
There were many other minor issues, too.
So, I left PopOS about 8/9 months ago, and jumped to Ubuntu. These problems went away. It works perfectly.
Only problem is they showing me Ubuntu Pro ad on every sudo apt upgrade. Other than that it's really good. Absolutely zero problems or inconvenience. No need to babysit it. I have zero problems with NVIDIA drivers. It is as convenient and worry-free as Windows or MacOS.
I used Linux Mint when I was in college. It is another no-BS, no babysitting needed distro. But it sometimes gave me driver problems which I needed to fix.
I also used Manjaro for a while. It's a good one.
You could use Kubuntu. It is Ubuntu with KDE as the DE. It has really good graphics.
- My Asus laptop couldn't sleep or hibernate. It would just be fully on, or shut down. This wasted a lot of battery.
- The wifi reception was always too low. I needed to be very close to the router or couldn't establish a meaningful connection. This was not to inconvenient as I use the same desk always.
There were many other minor issues, too.
So, I left PopOS about 8/9 months ago, and jumped to Ubuntu. These problems went away. It works perfectly.
Only problem is they showing me Ubuntu Pro ad on every sudo apt upgrade. Other than that it's really good. Absolutely zero problems or inconvenience. No need to babysit it. I have zero problems with NVIDIA drivers. It is as convenient and worry-free as Windows or MacOS.
I used Linux Mint when I was in college. It is another no-BS, no babysitting needed distro. But it sometimes gave me driver problems which I needed to fix.
I also used Manjaro for a while. It's a good one.
You could use Kubuntu. It is Ubuntu with KDE as the DE. It has really good graphics.
Do you know if the Ubuntu flavors line Ubuntu Studio have the ad like stuff in it ?
I'm leaning towards Mint atm.
I'm leaning towards Mint atm.
Linux Mint for the minimum fuss. You can go with XFCE for maximum snapiness. Almost every guide for Ubuntu will work with it, but without the latter's junk.
I work with Debian and i3wm, but that's because I'm familiar with both and my software needs are minimal. Debian is pretty stable, but barebones. Everything you install will work, but you may as well go with Linux Mint Debian Edition if your endgoal is similar.
Fedora and OpenSuse are other candidates for well supported distros, without doing all the work like with Arch Linux.
I work with Debian and i3wm, but that's because I'm familiar with both and my software needs are minimal. Debian is pretty stable, but barebones. Everything you install will work, but you may as well go with Linux Mint Debian Edition if your endgoal is similar.
Fedora and OpenSuse are other candidates for well supported distros, without doing all the work like with Arch Linux.
I ran into an issue with one of my Linux Mint installs I completely broke the desktop.
I really want to develop for raspberry pi as well , which is infinity easier on a Debain Distro.
I'm probably going to use Mint again, but I'll consider other Debain distros.
I really want to develop for raspberry pi as well , which is infinity easier on a Debain Distro.
I'm probably going to use Mint again, but I'll consider other Debain distros.
I really like Mint witht he default desktop environment cinnamon, especially if you are running Windows. The layouts and keyboard shortcuts are pretty similar and make it easy to go between the two.
Mint is avoiding snaps and wayland as well, which I think is a good thing.
I use Debian and it works well for me. (sometimes they can be a bit slow to update things, but if you need things quicker you can use Debian Testing)
If you are doing development, something like NixOS or Guix will pay dividends. They have a higher learning curve but you can apply those stateless builds to your work as well as the rollback potential for when stuff doesn’t work. You can declare your config once & deploy it on any machine & will sometimes even be warned about config changes that have broke things like PAM for me on other machines. They aren’t generally recommended for beginners since you will need to code to use them, but you have already stated that you can.
I don’t think NixOS (or possibly Guix, never used it) provide any significant value-add to development, that you couldn’t get via using nix as a built tool on a separate distro.
The things you mentioned might be useful in their own right, but don’t really seem as critical to development as e.g. being able to install non-Nix library dependencies or deal with legacy software, which is made more difficult by a system like NixOS.
The things you mentioned might be useful in their own right, but don’t really seem as critical to development as e.g. being able to install non-Nix library dependencies or deal with legacy software, which is made more difficult by a system like NixOS.
The value add is the whole OS, top-to-bottom is now an expression of its declarative config which the others have you mutate files for config that inevitably go stale.
Having used it for a couple years now, it’s hard to express how much more comfortable I am hacking on parts of my system I don’t even understand that well since rollbacks are trivial & patches can be declarative so I can run those upstream fixes or patch things I don’t like without worry. On other distros, had I bothered to compile something for a patch rather than just waiting (or hoping) for it, it wasn’t easy to maintain new updates to that package while maintaining those patches & it was a real hassle to manually compile it. Versus Nixpkgs where I update & if there is a new package version it automatically gets recompiled according to the patches I have declared in my system’s config.
These same principles apply to development as well. Once you get the hang of it, you can customize any environment just like your system. It feels weird to value Nix in a development environment & not see it as useful for your system. …It also helps that Nixpkgs has more packages than even the AUR (that said, AUR being self-hosted is great instead of relying on Microsoft which throttles me all the time).
Having used it for a couple years now, it’s hard to express how much more comfortable I am hacking on parts of my system I don’t even understand that well since rollbacks are trivial & patches can be declarative so I can run those upstream fixes or patch things I don’t like without worry. On other distros, had I bothered to compile something for a patch rather than just waiting (or hoping) for it, it wasn’t easy to maintain new updates to that package while maintaining those patches & it was a real hassle to manually compile it. Versus Nixpkgs where I update & if there is a new package version it automatically gets recompiled according to the patches I have declared in my system’s config.
These same principles apply to development as well. Once you get the hang of it, you can customize any environment just like your system. It feels weird to value Nix in a development environment & not see it as useful for your system. …It also helps that Nixpkgs has more packages than even the AUR (that said, AUR being self-hosted is great instead of relying on Microsoft which throttles me all the time).
NixOS of course has benefits as an OS, but I don’t think any of them are specific to development.
I also think the tradeoffs are worth considering. You lose a few things by using NixOS:
* ability to run/depend on non-nixos software (without packaging yourself)
* you have to use the declarative config system, which can be annoying and slow if you want fast iteration to get something working
* Patching support is nice, but I don’t really have a use case for it generally for system dependencies (which I like to keep relatively lean, and close to distro upstream). For a development dependency, it may be different but you don’t need NixOS to benefit from patching there (nix shell is good)
Moreover, especially with nix shell (for project dependencies) and home-manager (for user tool configuration), I rarely have a need for software installed globally. I use Debian and the only system level things I configure are automatic updates, backups and Prometheus. Systemd config is already pretty declarative, which only really leaves user management as something that could be more declarative. You can get a pretty good setup using a bare git repo version controlling /etc, without needing all the extra complexity of NixOS. I keep a ~50 line text file with rough instructions and a list of packages.
I guess it gets a bit more complex if you run a gui desktop, but these are generally very well-trodden paths in big distros and fairly streamlined. I haven’t used desktop NixOs, but given the shitshow of desktop Linux, it seems like something that may get complicated in Nix?
The familiarity argument is reasonable, but also NixOS module system is pretty radically different to Nix the package manager/build system, so it only partially applies. Even adding home manager to the party, only the base concepts of the module system really apply; you end up having to relearn a set of new modules.
To sum up:
* It becomes way more difficult to do common development-related stuff that you may need
* The majority of the development benefits can be achieved without NixOS.
* The flexibility of being able to opt to use Nix and the degree to which you do so (either just shell providing dependencies, or whole the build system being Nix, or even using something completely different) or not is also something that may be very useful for development.
* The familiarity argument is decent, but it’s different enough that you basically have to learn a lot of stuff independently.
I also think the tradeoffs are worth considering. You lose a few things by using NixOS:
* ability to run/depend on non-nixos software (without packaging yourself)
* you have to use the declarative config system, which can be annoying and slow if you want fast iteration to get something working
* Patching support is nice, but I don’t really have a use case for it generally for system dependencies (which I like to keep relatively lean, and close to distro upstream). For a development dependency, it may be different but you don’t need NixOS to benefit from patching there (nix shell is good)
Moreover, especially with nix shell (for project dependencies) and home-manager (for user tool configuration), I rarely have a need for software installed globally. I use Debian and the only system level things I configure are automatic updates, backups and Prometheus. Systemd config is already pretty declarative, which only really leaves user management as something that could be more declarative. You can get a pretty good setup using a bare git repo version controlling /etc, without needing all the extra complexity of NixOS. I keep a ~50 line text file with rough instructions and a list of packages.
I guess it gets a bit more complex if you run a gui desktop, but these are generally very well-trodden paths in big distros and fairly streamlined. I haven’t used desktop NixOs, but given the shitshow of desktop Linux, it seems like something that may get complicated in Nix?
The familiarity argument is reasonable, but also NixOS module system is pretty radically different to Nix the package manager/build system, so it only partially applies. Even adding home manager to the party, only the base concepts of the module system really apply; you end up having to relearn a set of new modules.
To sum up:
* It becomes way more difficult to do common development-related stuff that you may need
* The majority of the development benefits can be achieved without NixOS.
* The flexibility of being able to opt to use Nix and the degree to which you do so (either just shell providing dependencies, or whole the build system being Nix, or even using something completely different) or not is also something that may be very useful for development.
* The familiarity argument is decent, but it’s different enough that you basically have to learn a lot of stuff independently.
Personally, I’d give OpenSUSE Tumbleweed a look. I moved from Leap to Tumbleweed last year and have found it very stable. It seems to have a good inventory of development tools.
Seconded. I have been a longtime user of OpenSUSE (and plain SuSE from its early days) and highly recommend it. YaST makes configuring and managing the system from a single place a breeze. All tools/apps are easily available and everything is very stable.
My advice is to stick to one distro over a long period of time so one can become familiar and comfortable with it.
My advice is to stick to one distro over a long period of time so one can become familiar and comfortable with it.
Thirded, OpenSUSE has a pretty good partitioner on its installer which makes it easy to set up encryption and snapshots. It even sets up LUKS1 encryption on an encrypted boot partition.
And the Open Build Service, while not as big as the AUR, still holds a ton of applications.
And the Open Build Service, while not as big as the AUR, still holds a ton of applications.
Some more data from https://www.reddit.com/r/openSUSE/comments/147u5c1/is_it_goo...
As for why I believe OpenSUSE is great for daily driving:
Tumbleweed always receives the latest packages from upstream development. This means that the distribution is guaranteed to work on the latest hardware and benefit from patches for optimal performance. As an example, Tumbleweed gained the optional x86-64-v3 packages while Arch, Fedora still lack these optimizations. On top of that, it also outperformed other distributions including Arch in various benchmarks.
Btrfs with Snapper can be utilized so the system can be rolled back to a working snapshot in case an update breaks anything. Which leads on the further point...
Packages are tested through OpenQA before they are distributed, ensuring that updates are stable, and if they pass the extensive QA, it ships automatically. So in most cases, OpenSUSE often gets the latest versions of software hours to days after upstream publishes those changes. On Arch, it took over a month for the maintainer to update GNOME 44.
OBS - The Open Build System which is similar to the AUR allows anyone to create and publish packages not found in the official repositories or packman. IMO this is a better approach to COPR or the AUR as they still go through openQA to detect problems with compilation.
OpenSUSE is desktop environment agnostic. GNOME, KDE, XFCE, Cinnamon etc are all a priority and receive the same level of development. Other distros have been known to have weird quirky behaviors on certain DEs that doesn't seem to be an issue here.
Zypper is probably the most cohesive feature packed package manager out there. It can seamlessly change vendors to a different package source to avoid dependency/system breakages, provides solutions on conflicting packages and much more.
OpenSUSE combats software problems in smarter ways than other distributions. They have extensive backports for almost everything from the kernel,X11,firmware,KDE etc all of which is provided officially and not from third party developers like Ubuntu PPAs. This way, the software installed from SUSE directly can be trusted.
YaST is an amazing system configuration tool that allows you to administer the installation with a breeze. IMO this is one of the greatest selling points to this distro, and it never disappoints.
Security - OpenSUSE is more hardened by default than Arch/Fedora/Ubuntu, meaning it can be trusted and dependent on. If you value security highly, it remains of the best options for security conscious individuals.
All in all, OpenSUSE Tumbleweed/MicroOS are the best distributions available in my biased opinion. Combine this with the long track record of SUSE making solid distros, it simply cannot be beaten for desktop use.
As for why I believe OpenSUSE is great for daily driving:
Tumbleweed always receives the latest packages from upstream development. This means that the distribution is guaranteed to work on the latest hardware and benefit from patches for optimal performance. As an example, Tumbleweed gained the optional x86-64-v3 packages while Arch, Fedora still lack these optimizations. On top of that, it also outperformed other distributions including Arch in various benchmarks.
Btrfs with Snapper can be utilized so the system can be rolled back to a working snapshot in case an update breaks anything. Which leads on the further point...
Packages are tested through OpenQA before they are distributed, ensuring that updates are stable, and if they pass the extensive QA, it ships automatically. So in most cases, OpenSUSE often gets the latest versions of software hours to days after upstream publishes those changes. On Arch, it took over a month for the maintainer to update GNOME 44.
OBS - The Open Build System which is similar to the AUR allows anyone to create and publish packages not found in the official repositories or packman. IMO this is a better approach to COPR or the AUR as they still go through openQA to detect problems with compilation.
OpenSUSE is desktop environment agnostic. GNOME, KDE, XFCE, Cinnamon etc are all a priority and receive the same level of development. Other distros have been known to have weird quirky behaviors on certain DEs that doesn't seem to be an issue here.
Zypper is probably the most cohesive feature packed package manager out there. It can seamlessly change vendors to a different package source to avoid dependency/system breakages, provides solutions on conflicting packages and much more.
OpenSUSE combats software problems in smarter ways than other distributions. They have extensive backports for almost everything from the kernel,X11,firmware,KDE etc all of which is provided officially and not from third party developers like Ubuntu PPAs. This way, the software installed from SUSE directly can be trusted.
YaST is an amazing system configuration tool that allows you to administer the installation with a breeze. IMO this is one of the greatest selling points to this distro, and it never disappoints.
Security - OpenSUSE is more hardened by default than Arch/Fedora/Ubuntu, meaning it can be trusted and dependent on. If you value security highly, it remains of the best options for security conscious individuals.
All in all, OpenSUSE Tumbleweed/MicroOS are the best distributions available in my biased opinion. Combine this with the long track record of SUSE making solid distros, it simply cannot be beaten for desktop use.
Elsewhere, you said the you're not into tweaking your OS.
Then I agree with Mindcrime: Try PopOS. It's very easy, it's full-featured, and it makes installing software easy.
Then I agree with Mindcrime: Try PopOS. It's very easy, it's full-featured, and it makes installing software easy.
Debian or Fedora are both solid options, depending on how fresh you like your packages. I used Fedora for close to a decade without issues.
I'm currently using PopOS, an Ubuntu derivative, and like it. The built-in tiling window manager is a killer feature. I loved using i3, but hated manually fiddling with things like networking configuration. Having a tiling window manager built on top of Gnome is the best of both worlds.
I'm currently using PopOS, an Ubuntu derivative, and like it. The built-in tiling window manager is a killer feature. I loved using i3, but hated manually fiddling with things like networking configuration. Having a tiling window manager built on top of Gnome is the best of both worlds.
Pop!_OS hasn't been released since over 2 years - has development been abandoned ?
It has not. PopOS 22.04 receives regular updates and 24.04 is supposed to release in the fall of 2024, with a major new desktop environment written in rust, Cosmic.
https://www.reddit.com/r/pop_os/comments/1ah339f/comment/kol...
https://blog.system76.com/post/cosmic-the-road-to-alpha
https://www.reddit.com/r/pop_os/comments/1ah339f/comment/kol...
https://blog.system76.com/post/cosmic-the-road-to-alpha
I personally can’t stand Debian/Ubuntu because of how opinionated and out-of-date they are. It’s great for stability but if you’re continuously using the OS and want to keep it up-to-date I find there’s less overall breakage with a rolling release distribution. This is why I use Arch. Also if you want to learn about Linux, installing it manually is fun. (But I’d probably go with Manjaro or something otherwise)
Kubuntu 24.04 is great. Currently using 64gb of ram + i7 13700k + 32" 4k lcd, it is enough to run multiple docker containers and runs really snappy with all the animations turned off. Everything worked perfectly out of the box with a z790 chipset.
I use it for webdev and playing with some embeded dev, and anything else that is not gpu-intensive. But 64gb of ddr5 is like $150 these days, very cheap just get that.
I use it for webdev and playing with some embeded dev, and anything else that is not gpu-intensive. But 64gb of ddr5 is like $150 these days, very cheap just get that.
I'm buying a laptop and most of them are now soldering in the ram.
I'm very strongly leaning towards Linux Mint. I'm not sure if the Ubuntu flavors have the same advertising as normal Ubuntu.
I'm very strongly leaning towards Linux Mint. I'm not sure if the Ubuntu flavors have the same advertising as normal Ubuntu.
Archlinux.
It tries to track mainline as close as possible, as a result it has minimal patches to software. Very vanilla. It can be as light weight or as heavy as you want.
Most important to me is that it's rolling release so you never have to do a major upgrade. I prefer to handle software changes one at a time instead of in big batches.
My laptop installation is from 2015, I've used brtfs send to migrate it to new hardware three times now. I have servers that have been installed for longer. Yeah it's a slightly more involved installation process, but you really only have to do it once.
It tries to track mainline as close as possible, as a result it has minimal patches to software. Very vanilla. It can be as light weight or as heavy as you want.
Most important to me is that it's rolling release so you never have to do a major upgrade. I prefer to handle software changes one at a time instead of in big batches.
My laptop installation is from 2015, I've used brtfs send to migrate it to new hardware three times now. I have servers that have been installed for longer. Yeah it's a slightly more involved installation process, but you really only have to do it once.
Don't go for the more niche distro's. The majority of them are based off of another (better supported, more stable) distro with slight changes in configuration that don't matter most of the time.
Linux Mint is probably the only exception I'd make to this rule, because they have been around for long enough and have proven themselves to be stable.
I am not familiar with the Android development ecosystem, so if you are in need of relatively recent packages (<1 year old) the most suitable distros would be rolling release distros like OpenSUSE Tumbleweed and Arch (although that one requires quite a bit of setup).
Stay away from Manjaro and Pop as they have a history of breaking packages, and in the case of Pop not contributing upstream and causing drama.
Linux Mint is probably the only exception I'd make to this rule, because they have been around for long enough and have proven themselves to be stable.
I am not familiar with the Android development ecosystem, so if you are in need of relatively recent packages (<1 year old) the most suitable distros would be rolling release distros like OpenSUSE Tumbleweed and Arch (although that one requires quite a bit of setup).
Stay away from Manjaro and Pop as they have a history of breaking packages, and in the case of Pop not contributing upstream and causing drama.
> Stay away from Manjaro and Pop as they have a history of breaking packages
Further to that, if you intend to use valgrind as part of your development workflow, note that valgrind sometimes stops working on Manjaro and languishes that way for months. For complicated but ultimately boring reasons that you can research for yourself, the issue isn't resolved by reverting to a previously working valgrind package. I was on the verge of switching from Manjaro to Arch for that reason but lately it started working again so I'm giving it a reprieve. If I were starting fresh I'd use Arch.
Further to that, if you intend to use valgrind as part of your development workflow, note that valgrind sometimes stops working on Manjaro and languishes that way for months. For complicated but ultimately boring reasons that you can research for yourself, the issue isn't resolved by reverting to a previously working valgrind package. I was on the verge of switching from Manjaro to Arch for that reason but lately it started working again so I'm giving it a reprieve. If I were starting fresh I'd use Arch.
> leaning towards PopOs since I like Debain support
So why not just Debian?
Most developers I know use either Debian, Fedora or Arch Linux.
So why not just Debian?
Most developers I know use either Debian, Fedora or Arch Linux.
Debain is hard with a capital H.
I'm not too into tweaking my os.
I'm not too into tweaking my os.
I have used Debian for over a decade now. Back then, there was a lot of configuration stuff. These days, barely much - at least on my thinkpad. Everything works out of the box, and software defaults are pretty decent.
Last time I had to play with the system a bit, was when pipewire was introduced, and I had to create a config for it to nicely connect to my bluetooth earphones. I guess that was 3 years ago.
Last time I had to play with the system a bit, was when pipewire was introduced, and I had to create a config for it to nicely connect to my bluetooth earphones. I guess that was 3 years ago.
I wouldn't say it's hard - you don't need to tweak anything if you don't want to; one of the features of Debian is that all the packages are configured ready-to-go when you 'apt install' them.
For installation, use a tool like Rufus to make a bootable USB drive.
Use https://cdimage.debian.org/debian-cd/current-live/amd64/iso-... - KDE is a desktop environment that will feel pretty familiar if you are used to Windows.
Rebooting into the USB drive, you can try out KDE, or can go straight to the install process - it takes less than half an hour, even as a beginner, and if you don't understand something, just click next and it'll be fine. There's a graphical partitioning tool included in the installer. If you don't need everything to be FOSS, you can select non-free repositories to make some proprietary software easier to install. These aren't officially part of Debian, though, so remember that you can't get support on the Debian forums/chatrooms/bugtracker for proprietary packages.
For installation, use a tool like Rufus to make a bootable USB drive.
Use https://cdimage.debian.org/debian-cd/current-live/amd64/iso-... - KDE is a desktop environment that will feel pretty familiar if you are used to Windows.
Rebooting into the USB drive, you can try out KDE, or can go straight to the install process - it takes less than half an hour, even as a beginner, and if you don't understand something, just click next and it'll be fine. There's a graphical partitioning tool included in the installer. If you don't need everything to be FOSS, you can select non-free repositories to make some proprietary software easier to install. These aren't officially part of Debian, though, so remember that you can't get support on the Debian forums/chatrooms/bugtracker for proprietary packages.
One more question, what about PPAs ? As far as I can tell alot of Ubuntu software is restricted to these which won't work on base Debian.
You can add Ubuntu PPAs and install software from them on Debian. Occasionally, the software won't run because it's expecting different versions of its dependencies, but I'd say this is the exception rather than the rule. It's more likely to be an issue with games or specialised scientific tools, whereas development tools probably won't be fussy about which versions they require. And you can always use Ubuntu inside a container (with Podman or Docker), chroot or virtual machine (libvirt or VirtualBox), or even use an alternative package manager like Nix, Spack or Guix on top of Debian!
One final suggestion is to simply look to see if Debian already has a piece of software when people suggest using a PPA. Some developers don't like Debian (for instance because Debian disables tracking code by default) and recommend PPAs when you don't actually need them.
P.S. 'PPA' is a Ubuntu term, while Debian tends refer to 'third-party repositories' instead. Luckily, they are exactly the same thing!
One final suggestion is to simply look to see if Debian already has a piece of software when people suggest using a PPA. Some developers don't like Debian (for instance because Debian disables tracking code by default) and recommend PPAs when you don't actually need them.
P.S. 'PPA' is a Ubuntu term, while Debian tends refer to 'third-party repositories' instead. Luckily, they are exactly the same thing!
I'm thinking of Steam in particular, but here's a guide for Debain.
https://wiki.debian.org/Steam#Installing_Steam
I think I'm convinced, I'll try Debain and if it doesn't work I can always go back to Mint.
https://wiki.debian.org/Steam#Installing_Steam
I think I'm convinced, I'll try Debain and if it doesn't work I can always go back to Mint.
Steam works just fine for me on Debian. The process of installing it is exactly the same as Ubuntu.
Which software do you need from PPA?
At the end of the day, stuff in PPAs is just .deb packages, so it may be possible to just install them in Debian. That said, I've never had to use a PPA in my life, the default Debian archive already has basically everything.
At the end of the day, stuff in PPAs is just .deb packages, so it may be possible to just install them in Debian. That said, I've never had to use a PPA in my life, the default Debian archive already has basically everything.
I used Gentoo for many many years, but at work where I didn't had powerful enough CPU I had to compromise and switched to Fedora, when you enable additional repos (eg. rpmsphere) software availability is pretty good, there is also copr so you can use one of community maintained repos.
They are not on the top with compiler optimizations (based on phoronix benchmarks) but are fairly close, probably because they tend to trade security for performance.
If you want things to just work I recommend using one of deb or rpm distributions as you can count that those will have official packages for anything you might need
They are not on the top with compiler optimizations (based on phoronix benchmarks) but are fairly close, probably because they tend to trade security for performance.
If you want things to just work I recommend using one of deb or rpm distributions as you can count that those will have official packages for anything you might need
I would either go for Fedora (up-to-date but pretty stable) or NixOS.
NixOS has a very interesting approach of having a (smal set) of config file(s) to setup an entire system as it was. Too me as a developer this is very appealing, because I don't need to care too much about backup up the OS or settings, but only the config files and the files in /home/.
I would also add docker, this helps a lot with development. Oh, and if you need a VM (e.g. Windows) stay away from Virtual Box - just use qemu, which runs the VM up to 300% faster.
NixOS has a very interesting approach of having a (smal set) of config file(s) to setup an entire system as it was. Too me as a developer this is very appealing, because I don't need to care too much about backup up the OS or settings, but only the config files and the files in /home/.
I would also add docker, this helps a lot with development. Oh, and if you need a VM (e.g. Windows) stay away from Virtual Box - just use qemu, which runs the VM up to 300% faster.
I know there are many much smarter devs than me out there, but I dedicated 5 full days over Christmas break last year to NixOS, trying to configure it and use it for development, and I failed.
I think any Linux distro that work out of the box is optimal, so you won't need to fix things right at the start like WiFi driver is incorrect.
In my opinion don't look at Asahi Linux based distros. Too much configurability and sometimes you just want to code. That's including Manjaro Linux since it's almost like Debian only with pacman and with even more bloat.
In my opinion don't look at Asahi Linux based distros. Too much configurability and sometimes you just want to code. That's including Manjaro Linux since it's almost like Debian only with pacman and with even more bloat.
Since no one mentioned it yet, I quite like Endeavour OS the i3 flavour. You get all the Arch goodies with a straightforward installer. And I use nix + yay for package management.
For general usage mint or manjaro make a lot of sense (I use manjaro personally). For writing software, nix on top of the above (and integrating with direnv) is really smooth experience, especially after writing a few flakes for your projects.
I use pop os do web development, works great. Just really ram hungry, so make sure you have a lot of that, which i'm guessing you will anyway given that you'll be doing mobile development(I assume that its a ram heavy process)
>Given the absolute nightmare of Windows Recall,
Sorry what is it about Windows Recall?
Sorry what is it about Windows Recall?
Any rolling release distro would be fine like opensuse tumbleweed or arch , or something that is almost cutting edge like fedora or Ubuntu.
Windows Recall is a feature you will be able to disable, the justification for your decision is a bit dramatic.
I don't want to spend an extra 500$ for a feature I explicitly don't want.
None of the other AI features are too appealing to me.
I'm hoping they remove this junk from the OS after a few years since I don't see Linux ever maturing in terms of music production or *most* multiplayer gaming. I still need windows for alot of things.
None of the other AI features are too appealing to me.
I'm hoping they remove this junk from the OS after a few years since I don't see Linux ever maturing in terms of music production or *most* multiplayer gaming. I still need windows for alot of things.
I really enjoy Kali Linux it's Debian and maintained well.
I would recommend an immutable OS because transactional updates and rollbacks is a great feature, and the added security is a nice bonus.
Some of them are debian-based.
You can still get the cosmic desktop of Pop OS in another distro if you really want it.
Some of them are debian-based.
You can still get the cosmic desktop of Pop OS in another distro if you really want it.
On this note I would check out the Universal Blue project[1] which uses a combination of technologies to implement an immutable OS desktop environment.
[1] https://universal-blue.org/
[1] https://universal-blue.org/
Do you have any suggestions?
I don't know enough to say which immutable debian spin would be best.
For immutable in general, Fedora is probably the most refined. Their GNOME spin is the most well-known and is called Fedora Silverblue. But they also offer KDE, Sway, and others atop their immutable infrastructure. I think you can get basically all major desktop environments.
Here is a non-exhaustive list:
https://fedoraproject.org/atomic-desktops/
The key here is that you would install almost all your applications via flatpak on the home partition, and the system partition would be very locked down except for the system updater tool.
When the system is updated, however, you would be able to tag as many snapshots as you like which would be like git branches for your system. Each could have different kernels, system libraries, etc.
If a system upgrade goes bad, you would be able to go back to a previous one. The last two will be saved by default, and you can save as many others as you like. Which would all be efficiently stored and de-duplicated via ostree
And your userspace would essentially be preserved as you switch between system snapshots, because it is on its own partition.
For immutable in general, Fedora is probably the most refined. Their GNOME spin is the most well-known and is called Fedora Silverblue. But they also offer KDE, Sway, and others atop their immutable infrastructure. I think you can get basically all major desktop environments.
Here is a non-exhaustive list:
https://fedoraproject.org/atomic-desktops/
The key here is that you would install almost all your applications via flatpak on the home partition, and the system partition would be very locked down except for the system updater tool.
When the system is updated, however, you would be able to tag as many snapshots as you like which would be like git branches for your system. Each could have different kernels, system libraries, etc.
If a system upgrade goes bad, you would be able to go back to a previous one. The last two will be saved by default, and you can save as many others as you like. Which would all be efficiently stored and de-duplicated via ostree
And your userspace would essentially be preserved as you switch between system snapshots, because it is on its own partition.
Definitely looks cool, but it looks like dual booting isn't really supported.
https://docs.fedoraproject.org/en-US/fedora-silverblue/insta...
I'm going to think about this, I've had great experience with Linux Mint ( it's still Ubuntu but less junk).
https://docs.fedoraproject.org/en-US/fedora-silverblue/insta...
I'm going to think about this, I've had great experience with Linux Mint ( it's still Ubuntu but less junk).
I've been using ZorinOS (https://zorin.com/os) for years and it never disappointed. It's extremely stable, even more than Ubuntu in my experience. It looks modern and fresh and it's one of the "just works" distros.
Anything that Homebrew works with.
Given the absolute nightmare of Windows Recall, I opted to buy a 8845HS laptop instead. I plan on installing a nice 4TB SSD as well, with about 500 GB for Linux - I make tons of music and this is better supported in Windows.
I really enjoy Manjaro, but I find it's much harder to get working with certain software working.
I'm going to be developing embedded applications, flutter apps, and maybe some Android.
My main concern is speed, what's fast, what's not.
However, I'm also open to smaller niche distos, feel free to pitch your passion project!