So if you’re reading this, it’s probably because you have taken the initiative to try Linux and with the thousands of Linux distributions available you want to know what is the best distribution for programming? And the answer to that is simple - the best Linux distribution for programming is - Arch Linux! Sike! I’m just kidding. The truth is that there is no best Linux distribution for programming and the answer is not that simple. To understand why that is, there are a few things we have to look at first.
The first thing that we have to understand is the distinction between Linux and a Linux distribution also known as a Linux-based Operating System. As a computer science student around many other computer science students, you have no idea how often I hear conversations like these:
A: “Yeah, I don’t really use Windows, I’m more of a Linux user”
B: “Oh, dude yeah! I’ve heard of that operating System”
Linux is not an operating system!
It kills me a little inside every time I hear that. Linux is a kernel. A kernel is the software layer that interacts with the hardware components of a machine. On the other hand, an operating system is a set of tools that not only include the kernel, but also a bunch of other things that let you, the user, interact with a computer.
Now the entire reason I make this distinction is that Linux distributions like Ubuntu, Arch Linux, Fedora, or Deepin are fundamentally not that different from each other when It comes to how they are built. They might have some kernel modifications here and there, but more significantly what does change is the set of tools they are bundled with and their philosophies.
This means that nothing stops you from taking the tools that come with one operating system and installing and configuring those tools on another system. For example, Kali Linux is a very popular Linux distribution in the penetration testing community. It comes with a bunch of preinstalled penetration testing tools, but nothing stops you from using a distribution like Ubuntu and configuring it like Kali Linux to use for penetration testing.
So instead, your question should not be which is the best Linux distribution for programming, but rather, what do I need from a Linux distribution. So let’s look at some popular Linux distributions and discuss why you might want to use one over the other.
First, let's look at Ubuntu. Ubuntu has been around for a very long time and has a large community of users. Because of this, you are likely to find solutions to any problems you encounter with ease online. Ubuntu has two main versions available for download. The first is Ubuntu Server, which is meant to run on headless systems, so it does not come with a desktop environment.
For the sake of this blog, we will focus on Desktop releases instead, since I would imagine that as a programmer you’re looking for a distro you can use for programming, which might be harder to do if you’re limited to headless systems.
In my opinion, Ubuntu is a great general-purpose Linux distribution and if you’re overwhelmed by all of the options and you just want something that will work for programming, I would recommend just using Ubunutu. Ubuntu is based on Debian, which is another Linux distribution. This means that you have access to a bunch of software that can easily be installed in the form of .deb packages. And if you look online you will find that a lot of popular software has a .deb installer, so this gives you an idea of the popularity of Debian-based distributions.
Similar options include Linux Mint, Elementary OS, and Pop OS. Again each of these systems will have a different set of included tools and different philosophies, so I would recommend you explore those on your own.
If you’re the type of person that wants to have the bleeding edge of everything, in other words, you want to have the most up-to-date software possible, then I would recommend looking at rolling distributions like Arch Linux and Gentoo.
As a quick disclaimer, even though it’s not super common. Rolling distributions can break. And this is just the nature of rolling distributions because always being up to date not only means that you’re one of the first to run new software, but it also means that a dependency update might break another application.
Also because of the same reason that rolling distributions could break, I would not recommend to a beginner, but rather someone who has been using Linux for a bit and wants to learn more about Linux.
So with that said, why in the world would anyone want to run a rolling distribution if things are going to be breaking? Well, that’s a really good question, and everyone has their reasons. I run Arch Linux and the reason I stick with it is because of the Arch User Repository or AUR for short. The AUR is a collection of user-contributed packages, and the cool part is that it makes it so that pretty much any software you can think of is super easily installable. Even software that might not be super popular. I’m not even surprised anymore when I find a real niche piece of software on Github and it turns out to be in the AUR.
Something else that you will experience with rolling distributions is that in general, they are like blank canvases. Arch Linux is a good example of this since when you install it, you have nothing but the core Arch Operating system which you don’t need more than 2 Gigs of space for. This makes it so that you can build up a system exactly the way you want to. I don’t even have a desktop environment installed, because I honestly don’t need it, instead, I prefer to stick to window managers alone.
Other rolling distributions that you might want to have a look at are Majango, Garuda Linux, and openSUSE Tumbleweed.
Now since there is no way I could possibly talk about every single Linux distribution in the span of this video, there is one more type of Linux distribution that I think is important to consider. With so many options you also come across lightweight Linux distributions. So these are geared towards the machines with might be a few years old or just don’t have the hardware capacity to run more demanding distributions. And actually, if you are currently running Windows and your computer is starting to slow down, I think this type of distribution is a great alternative.
Some examples of lightweight Linux distributions are Lubuntu which is a light version of Ubuntu, LXLE OS, and if you want to go even more extreme there's Tiny core Linux which has a core of only 11MB!
With the overwhelming amount of Linux distributions I know it can be a lot to take in and maybe a bit daunting to pick one. But guess what? You don’t have to pick right away nor do you have to pick at all. Distro hopping, which is the act of hopping from one distro to the next is pretty common because of the number of options you have. If you’re interested in seeing what options you have available I would recommend checking out https://distrowatch.com/ which has a huge database of Linux distros for you to check out.