What makes Linux really popular among programmers? Well, the answer is that there are actually lots of things, but I'm going to go through the major ones that I've found and they're generally accepted among programmers. They're about seven things that programmers, in general, appreciate about Linux.
The first one is; Security
This simply means that Linux tends to be a safer system, so you won't need antivirus software and viruses overall just aren't really an issue, so it's a really secure system and you won't get bothered by needing to find and pay for antivirus software and then update that software and get notified by it.
Linux just works and is safe. The reason that Linux is really secure is because of the fact that the Linux operating system is open source. This means that anyone who wants to can look at the source code for the system, and if you aren't familiar with this concept, then this may sound like it would be the opposite of safe since anyone can find vulnerabilities and create viruses for it or exploit the vulnerabilities really easily and that's not wrong.
Anyone can do that, and a lot of people do try to do this, but the thing is that Linux is a really popular operating system and that means that there are so many people reading through the source code every day and looking for these vulnerabilities that they can patch them themselves because of the fact that they are actually using the system themselves, so they don't want these vulnerabilities there and so they try to fix them. And so, what ends up happening is that there's actually very, very few of these vulnerabilities out there, and the ones that are out there had become really, really hard to find because so many people are actually looking for them and that also means that even if there are a few bad people out there looking for these flaws and trying to exploit them in a bad way for every bad person that's out there trying to find these flaws. There's potentially like 1000 good people out there looking for the exact same floor and trying to eliminate it, and so that kind of results in a really safe system.
The second reason is that; Linux can improve your programming workflow
The package manager in Linux is a godsend for programmers in terms of efficiency. If you want to install something or use something new, just type in “Sudo apt-get install” whatever you want to use, and then within a couple of seconds or a minute or two you get it and you're ready to rock. This is something that can sometimes be painstakingly difficult in other operating systems.
First of all, you need to install a package manager in Mac OS and Windows. If you want to have a good, reliable one and just doing that can be a difficult task for a beginner with Linux that just comes preinstalled and you're ready to go, and it also has a lot of packages already installed and set up alright, so let's take a really simple example here. That kind of illustrates both point number one of our security and also point number two about ease of use and just workflow in general.
Let's say that you wanted to install a VLC Media player on your Windows machine, or you have to do is you have first open up a web browser and then you'd have to find or like Google search for VLC media player, find the right actual website to actually download it. Go to that website, press the download link and start to download it. Run the exe file and then choose whatever like installation location and then after you've done all that you potentially also need to restart your computer for these changes to take effect or for you to be able to actually use the program.
Now, let's say that you wanted to do that exact same thing, but in Linux, all you have to do is open your terminal window and type in “Sudo app. Get install VLC” and hit enter and then you're done the windows approach leaves a lot of room for errors to occur. You could get to the wrong site and accidentally download malware, or you can get to the right sites but accidentally press one of the thousands of downloads now buttons.
That is actually an ad for something completely different compared to Linux where you just type it in and it automatically does everything for you making sure to get it from the right source so you won't accidentally get the wrong thing or malware. As a programmer we usually work with lots of different technologies and we're installing things constantly to get things to work, so making the process of installing stuff as easy as safe as possible is really important, and Linux does this really well.
The third reason is; no rebooting
This is something that I touched on in the previous point when I was explaining how installing something in Windows might work, and how at the end of that process you might end up having to restart the entire computer just to be able to work with whatever it was you installed, and this is not the case with Linux, and in fact, with Linux, it's to the point where you can update the entire operating system without having to actually reboot.
And this is neither possible with Mac OS nor with Windows, and it's something that I think is really important because of the fact that as a programmer we tend to install lots of different things, and so the ability to just be able to install something without them having to reboot the entire machine for those changes to take effect is something that I think is really important when doing research.
I found an article on the segment that talks about “Why Linux is often used for servers”, and there's no rebooting point was one of the reasons according to the article, why Linux is used for servers. This is something that they touch on in a part of the article where they talk about the fact that Linux is built for stability and reliability. Many Linux servers on the Internet have been running for years without failure or even being restarted.
The fourth reason is that; Linux actually comes with a ton of really powerful programming tools pre-installed.
Things like grip, Wit, gift crown, and lots of other things that once you learn how they work can be extremely powerful tools that again can help you improve your workflow.
This is a point that's highly individual, and it really depends on your specific use case because there are so many pre-installed tools that come with Linux and it also depends on what specific distro of Linux you choose to go with because certain distros come with certain extra tools like Kali Linux, for instance, comes with a lot of like hacking specific tools. So if you feel like learning a little bit more about these tools, you can check that out.
Number five on our list is; task automation.
Linux is almost built for the automation of tasks. I'm not an advanced user yet, I'm still learning and exploring the wonders of Linux, but more experienced Linux users who also know how to code rarely need to do anything twice because of the fact that Linux lends itself really well for automation. It pretty common thing in the Linux community is something referred to as one-liners, which is often used to refer to short little scripts that you write to automate a task.
You may find yourself doing three things in a row every morning as you start up your computer. Maybe you always open up Spotify to play a certain playlist, and then you open up your latest project that you're working on, and then you open up discord. With Linux. It's very easy to write a quick little script to automate. There are lots of pre-installed tools like we talked about in our previous point that lend themselves really well to automation.
The six-point is; performance
Linux is not necessarily faster than any other operating system, but it is very lightweight for an OS and it's compatible with pretty much any machine you can find you can run Linux on almost anything. So, this means that you can very often take an old laptop that is virtually useless because of being so slow and install Linux on that machine and all of a sudden breathe new life into that.
A machine that was impossible to work with before is now all of a sudden working really well. There are more performance benefits of Linux, like their reliability of the systems and other things.
Number seven is a bit of an odd one, but it is that; Linux actually provides you with useful error messages.
This may sound a little bit weird or whatever, but it is really important because with Windows and Mac OS where you often find yourself stuck with is an error message along the lines of like “oops, something went wrong” and it's not very useful because like Googling that and like finding the actual answer to that question. This is really difficult because lots of different people had that same error message for lots of different things, but with Linux instead.
What you'll get is a full readout of the actual processes, and you'll get like proper. You'll actually see what actually happened, and that means that it's way easier to actually Google that and find an answer to your specific problem and that is something that's really important, especially for programmers. When you're running into these errors constantly. Now, this also comes with the caveat that a beginner might not find that much help from these error messages, at least not if they've never spent time in a terminal-like interface. Because for a beginner this can be very intimidating and just seemed like a bunch of texts that also it's the same thing. But once you've spent some time in a terminal, these error messages are super useful.
So, in conclusion, there really aren't that many things that you can do on Linux that are impossible to do on other systems, especially if compared with Mac OS. But the overarching theme is the ease of use. As a rule, it's easier to do what you want to do on Linux than it is to do on other operating systems.
So should you switch to Linux? The answer that I like to give here is that you should probably try out Linux first in a virtual machine and then see what you think of it, and then you can kind of go from there because that's what I did. That's how I got started.
I started out with a virtual machine and then after a while I just found myself spending more and more time there than I did in my main OS, especially for like programming related tasks that was just so much smoother to do in Linux than it was to do in my main OS at the time, and so that's kind of my advice. That's how I would go about it.