I’ve been using Linux for almost 20 years, and I can’t remember the last time I had to stress over drivers. Of course, I always check Linux compatibility when I buy hardware.
First: Linux is the street racing scene of the PC world. You can customize everything, and it’s going to be faster and more responsive. Also if someone just wants to build a really cool custom experience, there’s very cool stuff possibld do on Windows, but that road eventually leads to Linux.
Second: Linux is the long haul huge truck engine of the Internet. Big data processing only runs on Linux*. I’ve met one Windows supercomputer and one Mac supercomputer. Both are long retired now.
*The interesting exception to this is payments processing, which has a lot of Windows and Mainframe still. But while that workload is big, it’s dwarfed by the Internet backbone and supercomputer jobs that run on Linux.
Something like 99.9% of the Internet now runs on Linux.**
**Please no one reply to me about your .Net shop. I’ve worked at them too, but they’re a substantial minority now, and they still mostly deploy to Azure which is mostly running Linux.
Third: Free stuff. Most open source software is written for Linux, and only ported to Windows after it gets really popular. So on Linux, your options for good free software are much nicer.
I work in a .net shop. It is a hair painful, to say the least, and I’m constantly looking over the fence longingly. They exist, are the minority, and are a fucking nightmare by comparison.
Linux by itself is just a kernel, there’s a whole range of operating systems using it. Most of them have some commonalities, but there are also huge differences. Most of them can run directly from a USB stick (or in a VM obviously), so you can try some out.
Some things that basically all of them do very well, compared to windows:
mainly open source components (± some proprietary drivers and apps, if you want)
no ads in the OS
support for very old hardware, being (depending on actual OS more or less) light and resource efficient
very good package management
customizability
There are many things that are specific to some OSes. I switched from Windows 10 years ago, and I can’t see myself going back. Everytime I have to use it somewhere, I get annoyed quickly.
There are some drawbacks:
software has to be built against a specific kernel, and some proprietary software is not offered for linux. There are compatability layers for running windows software on linux without emulation, but they are mainly optimized for games (I’ve had windows-only games run faster on linux than on windows!).
some drivers are unavailable for linux, as the device manufacturers have to cooperate somewhat. However, almost everything will work.
some drivers are available, but require binary blobs distributed by the manufacturer. The proprierary NVidia drivers, for example, are faster than the open source reimplementation noveau, but they can cause problems with some software like sway. If you have an AMD gpu, their open source drivers are great, so no problems.
Roughly all the servers (including Microsofts own cloud), half the mobile systems, lots of the larger embedded stuff and some small percentage of deksktop systems are using Linux. Again, just try something (maybe Pop!_OS or Mint) and see if you like it.
As a software engineer, the nicest thing is that the whole programming ecosystem integrates with Linux. Git, SSH, Docker, you get natively in your OS. Even dumb shit like file path separators, line-endings, file permissions. Most programming languages make the assumption that you’re on a UNIX system (Linux, macOS, BSD).
Aside from that, Linux is fucking awesome as an SE, because everything is open-source. Find a bug in a program you use? You can fix it, if you want. Want to learn how a specific program works? Just look at the source code. Or its config file. Or its logs. Everything wants to teach you about itself.
And personally, I also just love the usability. The built-in file manager, terminal, PDF viewer etc. are good. The built-in text editor is no IDE, but it’s up-to-snuff with Notepad++.
And I’m making these blanket statements despite there not being one built-in anything. You can choose between multiple GUI bundles (so-called “desktop environments”). From a minimal DIY setup (i3wm etc.) all the way to maximally feature-rich goodness (KDE). You don’t have to use the same limited setup as your granny uses to launch a browser. You can customize everything to your needs and you get tons of power-user features.
I’ve been using Linux for almost 20 years, and I can’t remember the last time I had to stress over drivers. Of course, I always check Linux compatibility when I buy hardware.
Same here. In the early days, driver compatibility was an issue, but it never prevented me from actually daily driving Linux.
I’m embarrassed to say I’m a SE and don’t know anything about Linux. What makes it worth using over windows?
First: Linux is the street racing scene of the PC world. You can customize everything, and it’s going to be faster and more responsive. Also if someone just wants to build a really cool custom experience, there’s very cool stuff possibld do on Windows, but that road eventually leads to Linux.
Second: Linux is the long haul huge truck engine of the Internet. Big data processing only runs on Linux*. I’ve met one Windows supercomputer and one Mac supercomputer. Both are long retired now.
*The interesting exception to this is payments processing, which has a lot of Windows and Mainframe still. But while that workload is big, it’s dwarfed by the Internet backbone and supercomputer jobs that run on Linux.
Something like 99.9% of the Internet now runs on Linux.**
**Please no one reply to me about your .Net shop. I’ve worked at them too, but they’re a substantial minority now, and they still mostly deploy to Azure which is mostly running Linux.
Third: Free stuff. Most open source software is written for Linux, and only ported to Windows after it gets really popular. So on Linux, your options for good free software are much nicer.
I work in a .net shop. It is a hair painful, to say the least, and I’m constantly looking over the fence longingly. They exist, are the minority, and are a fucking nightmare by comparison.
Linux by itself is just a kernel, there’s a whole range of operating systems using it. Most of them have some commonalities, but there are also huge differences. Most of them can run directly from a USB stick (or in a VM obviously), so you can try some out.
Some things that basically all of them do very well, compared to windows:
mainly open source components (± some proprietary drivers and apps, if you want)
no ads in the OS
support for very old hardware, being (depending on actual OS more or less) light and resource efficient
very good package management
customizability
There are many things that are specific to some OSes. I switched from Windows 10 years ago, and I can’t see myself going back. Everytime I have to use it somewhere, I get annoyed quickly.
There are some drawbacks:
software has to be built against a specific kernel, and some proprietary software is not offered for linux. There are compatability layers for running windows software on linux without emulation, but they are mainly optimized for games (I’ve had windows-only games run faster on linux than on windows!).
some drivers are unavailable for linux, as the device manufacturers have to cooperate somewhat. However, almost everything will work.
some drivers are available, but require binary blobs distributed by the manufacturer. The proprierary NVidia drivers, for example, are faster than the open source reimplementation noveau, but they can cause problems with some software like sway. If you have an AMD gpu, their open source drivers are great, so no problems.
Roughly all the servers (including Microsofts own cloud), half the mobile systems, lots of the larger embedded stuff and some small percentage of deksktop systems are using Linux. Again, just try something (maybe Pop!_OS or Mint) and see if you like it.
As a software engineer, the nicest thing is that the whole programming ecosystem integrates with Linux. Git, SSH, Docker, you get natively in your OS. Even dumb shit like file path separators, line-endings, file permissions. Most programming languages make the assumption that you’re on a UNIX system (Linux, macOS, BSD).
Aside from that, Linux is fucking awesome as an SE, because everything is open-source. Find a bug in a program you use? You can fix it, if you want. Want to learn how a specific program works? Just look at the source code. Or its config file. Or its logs. Everything wants to teach you about itself.
And personally, I also just love the usability. The built-in file manager, terminal, PDF viewer etc. are good. The built-in text editor is no IDE, but it’s up-to-snuff with Notepad++.
And I’m making these blanket statements despite there not being one built-in anything. You can choose between multiple GUI bundles (so-called “desktop environments”). From a minimal DIY setup (i3wm etc.) all the way to maximally feature-rich goodness (KDE). You don’t have to use the same limited setup as your granny uses to launch a browser. You can customize everything to your needs and you get tons of power-user features.