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.
Conclusion
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.