I can be a hater when it comes to operating systems, editors, languages, and so on. I admit it! It’s not that I’m not intellectually interested in technology I haven’t settled on using for myself. I’ve just been burned enough times that I feel like Charlie Brown trying to kick that football that Lucy is holding.
With decades of experience as a developer and network engineer, I have seen my own personal progression of preferred workstation operating systems from DOS to Windows 3, to Windows 95, to Amiga, to OS/2, to Windows 7, and finally to Linux and macOS. I now add Windows 10 to this list.
I’m quite impressed with what I’m seeing as of Windows 10 version 2004.
Microsoft products have historically been a thorn in my side. Not just my side, but millions of other people and engineers. For at least a decade, we were forced to support IE6, for goodness sake. If you wanted to share documents, it was saving in Office format using less than ideal substitutes (except on Mac, IMO).
I worked at a WWW site development company for almost 4 years and I, along with a partner, developed the software for about 40 WWW sites. The shop was a Windows shop. The computers at everyone’s desks ran Windows 7. The email server was a Windows Exchange Server.
My workstation had 8G of RAM, but Windows 7 was only 32 bit at the time, so I couldn’t really use it all. When 64-bit windows did become available, there was a fairly long period of time where there was a lack of compatibility for 32-bit software and 64-bit drivers. I ended up installing Ubuntu Linux and running Windows in a VirtualBox VM. After all, the WWW sites I built all ran on Linux servers, so I was working on the target platform. Windows actually ran a lot faster in the VM than directly installed on the hardware. Linux seems to have done a better job of caching the disk than Windows does. There may be other reasons, but I never bothered to try and figure out how.
My Observations about Windows, macOS, and Linux
Just before I joined Modus in 2012, I bought my first Apple laptop. I admit I was an Apple hater for years, too. OS X changed it all, though. The build quality and OS quality and app quality were life-changing. Though I had preferred Linux all along, the GUI apps always seemed half-baked. The consistency of the OS X user interface made even the minimal OSS apps look and run great.
On both Linux and OS X, I was able to develop using cross-platform GUI tools like the JetBrains IDEs and Google Chrome browsers. If you look at what I have running on my desktops for either OS, you’ll find I have dozens of shell windows open. I live in the shell. I am happy living in the shell!
Through Windows 7, the only option to make it halfway usable was to install cygwin. Cygwin is a terrific effort and example of how OSS software often crushes it compared to the commercial offering. Like many things Windows, it’s a hack. It wasn’t at all perfect, but at least I could have shell windows that I could readily use. I am not a fan of hacks.
I am something of a collector of laptops and desktop systems. All of the non-Apple ones came with Windows. I often added the upgrade to Pro to my online order. I would copy down the activation key, then wipe the hard drive and install Linux on it. Then I would install Windows in a VM running under Linux using the activation key. If you’re interested, the Linux of choice for me is Arch.
My most recent purchase was a Dell XPS 13 with 32G of RAM. I highly recommend it, if you want portability and don’t mind the 13” screen. For the first time, I decided to use it as a Windows 10 laptop, just to become well versed in the big 3 operating systems.
Linux has its own issues when it comes to hardware support. Suspend and resume aren’t guaranteed to work, though I’ve had no problems. I spend a lot of time using Google to find configuration instructions to bend the installation to my will – though I do this with Windows, too. Linux actually supported my previous two laptops almost perfectly – the only glaring thing missing was a driver for the fingerprint reader on the Lenovo laptops.
Windows 10 Version 2004 Better than Expected!
My initial experience was what I expected. Blue screens, installing updates, lots of bloatware installed… But I persevered and got into it. Even though build 2004 was available, it never got installed on my machine until many days later.
Before 2004, I was using WSL and the new Microsoft Terminal together. WSL is an interesting hack, but you know I don’t like hacks. The difference here is that in exchange for a performance hit – translating Linux syscalls into Windows equivalents, I am actually using Linux at the command line. I must say it’s quite good.
Then 2004 got installed, and everything got much better. WSL2 is no hack, and it’s fast and good. I’ve not tried to install any new daemons (like sshd) on it, but I haven’t really had the need. It doesn’t have an init kind of program like systemd anyway.
It’s not just WSL2 that makes Windows actually good and useful for me. The Hyper-V system that you can install in Windows 10 Pro is downright amazing. It’s more along the lines of Xen than VirtualBox. Xen and Hyper-V run at the metal level, below the native OS (Windows 10). VIrtualBox runs on the operating system using the OS’ VM support API.
WSL2 uses Hyper-V for its virtualization. It is no hack! The performance gains over WSL1 are impressive.
I am a heavy user of Docker. Docker Desktop for Windows uses Hyper-V, too. Not only that, but for WSL2 Linux distributions, it can enable the WSL2 environment to use the docker commands to interact with Docker Desktop running under Windows. This is very slick!
For C/C++ programming and WWW, I’ve been using vim, nvim, or emacs running in tmux within a shell window. All of this works brilliantly within the WSL2 environment. My desktop looks like a mixture of Windows applications (mail, which is really good), Google Chrome, etc., and WSL2 shell windows.
Windows is far from perfect, though. It suffers from poor support for 4K and 5K displays at native resolution. I’ve not had any problem running macOS or Linux at full 4K or 5K native resolution. The only fix for Windows is to zoom the entire UI to 200% or 150%. I consider this a huge negative, but not enough to keep me from using Windows as a workstation/laptop.
I will conclude with some praise for Microsoft.
Though I avoided Microsoft products like the plague for years, I always admired their engineering teams and talent, and the quality of their software. I felt they should have dumped support for really outdated software (backwards compatibility) to rapidly advance their OS, but they didn’t. Even moving to a Linux OS variant core with their own UI on top (like Apple does with BSD).
In recent years, Microsoft has embraced the OSS world. The OS isn’t available on GitHub (yet!) that I know of, but a lot of really good software is – including source to their new Terminal. They contribute to Linux. They own GitHub and keep it mostly free for developers. They built-in support for running Linux and Linux apps in their OS.
I am finding Windows with WSL can be the equal of Apple’s operating system and environment.
I am no longer a hater.
- Maintain Source Files in Markdown Editor for Github
Read our recommendations for tools that help engineers create and maintain Markdown source files intended…
- The Making of Modite Adventure
Go behind the scenes to discover how a group of Modites came together to develop…