DEV Community

Discussion on: Windows and Linux: A Sane Discussion

Collapse
 
scriptautomate profile image
Derek Ardolf • Edited

Disclaimer: I run everything on Linux, so there is definite bias in that direction.

My interest in using Windows systems in a work environment came from seeing PowerShell v2, and the lack of administrators/engineers using it.

Learning PowerShell, bash shell, and Python allowed for me to be more competent in a cross-platform approach. But, I think much of this comparison has to do with the goal of the individual.

Note: About five years ago, I removed the last Windows system from my home environment. My experience with Linux had been too positive, and working with Windows had become too frustrating for me to justify keeping it.

Why You Should Use Windows

  • Do you want to play AAA video games? You will still need a Windows OS, for best support and functionality. Though, a variety of games can work on Linux. This is one of the most often cited barriers for people, that I see online, who have wanted to move to Linux but haven't.
  • Do you administer Windows systems? You should use a Windows system at work, unless you can be approved to run it in a VM locally or elsewhere as a system to connect to.
  • Do you develop software with Windows OS as the target client and/or server? Windows will likely be your best bet, especially if using something like .NET instead of .NET Core.
  • Do the engineers/administrators know how to navigate a shell, or are they only familiar with Windows? They are unprepared for supporting and configuring Linux systems.
  • When using the Windows Desktop, such as Windows 10, do you use Windows-only or Windows/Mac OS only software? If so, the software may only work on Linux when using customized tooling to try and emulate Windows libraries. Though, even after a ton of tweaking and troubleshooting, the software may just not work. Though, many tools have open-source alternatives which may be attractive options to try and migrate over too.
  • Is the environment using proprietary, third-party software that only works on Windows? Then you are stuck on Windows unless you develop a migration plan. This would be the case for servers, most often, but also the case for Linux desktops. Linux client OS on laptops/desktops is rare in enterprise environments due to lack of experience, support, and more.
  • A lot of major design and art-focused software only works on Windows or Mac OS. This can mean Linux is just not an option.
  • Use WSLv2 or a Linux VM to expand the capabilities of what you can do via a Windows system. Look at using tools like Docker Desktop for Windows, vagrant with Hyper-V (for native hypervisor functionality, and official PowerShell support), etc.
    • A big thing to note: if you are developing Windows containers, developing on Windows will be a native experience. Developing Windows containers via a Linux OS I think can be done if you are using docker-machine with properly configured Windows VM host in something like Virtualbox.

Note: There is not a Docker Desktop for Linux, but only for Windows/Mac OS. Though, the same functionality can be achieved with docker, docker-compose, and docker-machine with a local hypervisor such as Virtualbox.

Why You Should Use Linux

  • Do you administer Linux systems? You should use a Linux system. Using a Windows desktop, with WSLv2 or a Linux VM, to primarily take care of Linux systems is a painful user experience. Though, many people may not have this option in an Enterprise environment due to support and policy. As a result, many Linux administrators/engineers interface with Linux environments via a Windows client OS and jumpbox or local VM / WSL.
  • Do you want updates for not only the OS itself, but automatically for all of your installed software, at a fraction of the time it takes for a Windows system to update? Go with Linux. If you have found yourself frustrated when turning off your computer, or starting it, and staring at the Windows update progress slowly moving forward, then you will be relieved to no longer have that experience.
  • Do you want complete control and customization options that will feel nearly limitless with your OS? Linux is your go to. There are many distributions, tweaking options, user interfaces, and communities.
  • Are you a fan of PowerShell on Windows? PowerShell Core is cross-platform, and can work on both Linux/Mac OS.
  • Do you use a desktop primarily for web-based use? Email, Netflix, Hulu, Prime Video, Youtube, etc. all can work via a Linux desktop.
  • Linux support for many video games has grown overtime, if that is a factor. People can look up how well their favorite games work on Linux.
  • LibreOffice has come a long way, but it would take time to get used to if someone is coming from Microsoft Office. It can be installed on Windows, also, which could be a way of migrating over to the free office suite over time. Though, if in a workplace environment, it may just cause frustration and weird formatting differences. If on a personal computer? LibreOffice can really be a way to save money.
  • Visual Studio Code (VSCode), Atom, and other IDEs work on Linux. They are also free. As cross-platform IDEs, a developer would be empowered to develop in a similar environment regardless of the base OS. Visual Studio Code has become my primary IDE.
  • Linux is a free to use OS, with distributions and the base kernel being developed by a global community. Google, Reddit, StackOverflow, various blogs, forums, etc. can be searched to discover solutions to many problems a person may run into.
  • Do you want to play with IoT devices, like Arduino or Raspberry Pi? Get into Linux, and make cool things. I've seen Microsoft attempting to get in on IoT with some kind of Windows variant, but I don't think I've ever seen anyone using it (or if it is still under development?).

I personally think Linux is a better option for both personal use and work use. I used Ubuntu 12.04 - 16.04, before migrating over to Pop! OS with 18.04. I've been impressed with their direction, and like seeing what System76 is doing when it comes to both hardware and software. I use Linux for work. I use Linux for play. I use Linux for everything. I personally feel that everyone should at least try Linux. It is incredibly rewarding for hobbies and for careers.

If someone goes the Windows route, learn PowerShell. Using Windows, and not knowing how to use PowerShell, will only hold a person back. Systems admins and engineers who don't use PowerShell will have abilities that pale in comparison to the people who do use PowerShell. Also, evaluate a package management tool like Chocolatey.

The learning curve for Linux, when coming from only ever having used Windows, can be difficult and frustrating for people. This is the case for anything new: change is difficult. Though, over the years, much of what Linux distributions do will "just work" when being installed on systems. It can also be tested via bootable USB drives. Patience will be incredibly rewarding. Impatience will lead to a potential nightmare.

Trying to convince a Linux user to use Windows, instead, may be an impossible task. Often, this is because they came from using Windows, and can no longer go back. Though, for Windows users, it's different reasoning. It usually is not the case that a Linux user has converted over to using Windows: it is more so the intimidating aspect of a different OS, and the lack of specific software support. A certain personality type is required: one that wants to constantly learn, experiment, and test out/compare software alternatives.

One last thing to keep in mind: with all of this said, this means it isn't merely all-in on one OS or the other. What are you trying to do? Do you want to be capable of working cross-platform? Do you want a gaming rig being a dedicated Windows system, but Linux running on everything else? Do you want a system setup where a dual-boot exists, helping achieve what you want in whatever OS you want, based on what you are doing? On a Windows desktop, one can have a Linux VM or WSL. One a Linux desktop, one can have a Windows VM. Though, you'd need a Windows license for the VM. Linux requires no license, and can be used with zero cost.

Some comments have been hidden by the post's author - find out more