Over two months ago, I made a very important decision regarding my everyday workspace - I decided to switch from Windows to Linux as the main system on both my personal and work laptops. Aside from some minor driver issues in the beginning, the switch was smooth and I wouldn't think about going back. In case you've been thinking about making such a move on your computers or, like me, you've been procrastinating on learning Linux for the past few years, I will try to give you some strong reasons to finally make the right decision.
1. Your Software Runs on Linux
Assuming that you're a dev (which seems like a valid assumption to make about a DZone reader), there is a huge chance that the software you're building runs on a daily basis on Linux machines. Want it or not, believe in the God of Abstraction or not, it has its implications and sooner or later you will have to deal with the system in one way or another. Wouldn't it be better if you knew the system that runs your software before everything starts burning or you urgently need to configure something?
2. Many Tools Work Better/Only on Linux
Just to give you some examples, there's been countless times when I've cursed on Docker support in Windows or hoped that, one day, tools like SDKMAN! will become available on Windows. Not to mention shells that "just work" on Linux without Cygwin magic and similar stuff. Tooling-wise, the switch to Linux has been a huge boost for me. There are probably some counterexamples, but so far I haven't encountered any.
3. Linux Can Boost Your Productivity
Now, this is probably not an argument about capabilities of one system that the other does not have, but rather the immediate availability of certain things. Once you embrace the power of controlling your system almost exclusively using the keyboard, tools like Vim or Emacs for rapid text editing, and optimize your environment with the help of some apps and a good window manager, you'll become a speed monster like you've never dreamed about. I'll be honest here, I'm far from being such a speed monster myself, but I follow the stoics here:
"[..] if it is humanly possible, consider it to be within your reach"
- Marcus Aurelius
4. Learning Linux Will Expand Your Horizons
Ha, that's a cliche, isn't it? Learning ANYTHING will expand your horizons. Well, that's true and Linux is a particularly good example of this. If you were to learn "ANYTHING" right now to improve your software engineering skills, why shouldn't it be the operating system that the world runs on? Also, as much as I believe that most developers should learn to speak high-level, human, talk-to-me-like-a-5-year-old language, I also believe that they should get their hands dirty with the low-level stuff at one point. Therein lies the source of better understanding, inspiration, and gratefulness for those who coded decades before us.
5. Linux is Extremely Customizable
For almost 20 past years, the majority of the personal computers that I've seen have been running Windows. Since my very first one, running Windows 95 on some few hundred MHz processor, they've been all looking and working basically the same. A start menu, icons on the desktop, a bar with the application's name and three buttons on top of every window. Of course, you can change a lot of that, but that's not the way you work with a Windows computer. When talking about some lower-level stuff, the situation is pretty much the same. You install the system, probably some drivers and that's about that. You can install any apps you want, but, for your own good, leave the system alone as it is!
Now, with Linux, it's a totally different story. Depending on the distro you choose and your level of proficiency you can customize almost everything, from the system's kernel, through compiling and installing apps, to every detail in the looks of the open windows. You can prepare your very own, unique version of the system, optimized specifically for your needs. Your own penguin that loves you above anything else in the world!
6. Linux Is Fun
Enough talking to your reasoned choice (at least for this paragraph) - wake up your inner nerd! Windows is BOOORING! Any system that does everything for you and gives you minimum flexibility is boring! I mean, it's good for your grandma and maybe your parents but not for a programmer. Unless I'm too stereotypical here, you got into coding because you love playing and tinkering with computers, not because they pay you a lot or any other reason. Your very own operating system is a great place to play, tinker and optimize - utilize that!
7. Linux Is Free
To be honest, I didn't know whether this argument should be one of the first or one of the last. It ended up here, but I still think it's an important one. I mean, if you're not an Apple or Microsoft employee, why the hell would you spend a lot of money for a piece of proprietary software that is not necessarily any better than what you can get for free? Unless you have a really good reason for any of the paid systems, they are simply a waste of money.
There's also the other side of the word "free". Linux is a truly free technology, in the sense that its community and many of the distributions work hard to make the best software available to people free of charge. As much as I love being paid to do programming, I believe that's a noble goal worth noting here.
8. Linux Is Fast
This argument has ended up being the last one because it's both relative, e.g. to how much many you can spend on a computer, and has a caveat (IME some distros like Ubuntu are not very lightweight). The point is that if you're a fairly skilled Linux user, you do not need as much computer resources to have a blazing fast operating system as with Windows (and probably macOS as well). That's beneficial to both the people who already own a computer (they get a speed boost) and people who are about to buy a computer (they can buy a lower spec one for less money).
As you can see, the benefits you get span across multiple areas, including being a better professional, saving some money, and having more fun. And these are just some arguments, the list is obviously far from complete. Anyway, the conclusion for me is that Linux is a great system, worth learning and using on a daily basis, especially by software developers.
What operating system are you using? Do you have any strong arguments in favor of any of the major operating systems? Looking forward to see your opinions in the comments!