Please see the disclaimer.

Assumed Audience: Programmers and those who use computers for work. Please do not post this on lobster.rs.

Epistemic Status: 75% confident.

I believe Windows is going to die.

Windows has always been the OS for office workers to get stuff done. As long as it retains that, it will always be dominant.

But I think it will lose it, and I believe it will happen sooner than people expect.

Here’s why: Windows is so slow that it took me 90 minutes to accomplish 5 minutes worth of work.

Linux is my daily driver, but I have Windows on a separate hard drive in my machine.

Ne’er the twain shall meet, for privacy reasons.

And my machine is beefy with 32 GB of RAM and a 16-logical-core CPU.

I don’t boot into Windows often; it’s only to ensure my software works on it.

Even though I hate Windows for many reasons, especially privacy, I still make my software work there for a simple reason: Embrace, Extend, Extinguish.

If people use my software on Windows to replace something that only works on Windows, they are more likely to move away from Windows when the pain is too high.

Recently, I had to boot into Windows to make a release for my bc.

The actual building of the libraries and binaries takes two minutes (there are 10 builds, and they take about six seconds each, with 2x overhead), and I estimate that it should take about 3 more minutes to boot and shutdown.

Hence, 5 minutes of work.

It took me 90 minutes!

First, once Windows booted, which took the expected two minutes, it hung and refused to boot Visual Studio for 15 minutes. Then I did the builds.

And then it took 45 minutes to shut down! Oh, wait, it actually hung for 45 minutes, and I had to reboot into Windows to retry copying the binaries I built onto the thumb drive. That took another 15 minutes because Windows hung on startup again.

Update 2022-09-26: It turns out that the 45-minute hang on shutdown was because I kept a USB thumb drive plugged in, not because I have Windows on an HDD, as claimed on Hacker News.

But it worked that time.

Why does this matter?

Because 94% overhead is too much for companies to take; that’s absurdly low.

Okay, maybe 94% is too high since I booted Windows only to do a small task.

When I type in Visual Studio, my speed is about 50% what it is on Linux in Vim, and 50% overhead is atrocious too.

Of course, it’s less noticeable because it’s not all at once, but death by a thousand papers cuts is still death; it just happens gradually.

Unless Microsoft gets its act together (and I hope they don’t), they will continue to lose market share.

This will be exacerbated by the fact that they put ads in the OS! Ads decrease productivity.

The process goes like this:

  1. Programmers are the first to jump ship because they can switch more easily than non-programmers because they can port or rewrite their necessary software for another platform.
  2. Those programmers develop on another platform first rather than Windows, and make it work with that new platform.
  3. That means that the platform now has a viable alternative to the Windows software.
  4. Eventually, all of the software that a company uses is either available on another platform or has alternatives on that platform.
  5. Productivity on Windows for the company declines to the point that it’s cost-effective to pay the upfront cost to switch.
  6. The switch happens or the company fails.

If an OS threatens a company with death by a thousand paper cuts, the company will either adapt or die. Dying means another Windows-based company is gone, and adaptation means another Windows-based company moves off of Windows.

Either way, Windows market share is reduced.

This is great news!

However, the best news is that we, as programmers, can speed up the process.

How? I alluded to it earlier: Embrace, Extend, Extinguish.

We can make our software work on Windows in addition to other platforms. Anyone that uses that software now has one less reason to be locked into the Windows world.

In other words, we are embracing Windows just enough to extend it with new software, just to use that software chase people away from using Windows and extinguish it.

Yes, we are using Microsoft’s own tactic against them. Ironic, isn’t it?

I encourage all programmers to do this, and I do it too; after all, I spent 90 minutes just to build my bc for Windows.

And for people who have to use Windows, start seeking alternatives to all of your essential software that does not run on Windows.

Where you can’t find any, please let programmers know. Loudly. Maybe even contact me about it. I’ll let programmers know, or I’ll help you find an alternative!

The lesson here is: performance matters and take advantage of your enemy’s mistakes.