Friday, February 23, 2018

Windows 10 Is Terrible

You would think that Microsoft, and Apple, having some of the highest paid software engineers in the world, would generally deliver higher quality software, that makes its users happy.

You will notice I didn't say Best Software Engineers.  I think that such a term is meaningless. We are all human beings.  The things we produce have bugs. And worse than that, because bugs were accidents, we hope, there are misfeatures. There are misbegotten elements in Windows, and Mac OS, that you cannot alter. They are part of choosing to use these products.   There are serious problems in Linux, but there are literally no misbegotten elements in Linux that cannot be removed. You can literally do anything to Linux.

But since most of the professional world runs on Windows,  and most of the Creative World (including most of the music workstations, and pro digital photography world) lives on Mac OS, both mac and windows users have a common problem.  You probably don't know, you even probably don't want to know, what your operating software does,  and whether you do, or you don't, you can't fundamentally control it.

I will write a separate post on my Linux focused blog on why Linux is terrible, but since most of my Delphi blog readers are, like me, stuck using Windows, either on your PC, or in a VM, this rant is mostly about why Windows 10 is terrible, and why staying on Windows 7 forever isn't an option either.

1.  You don't actually control your computer anymore.    

1.1  You have no way to stop system reboots.  Hello, Microsoft Here. We've decided to reboot your machine.  You can't say no.  This is acceptable?    Microsoft will of course counter that they give you some control now, you can say, well I'm working from 9 to 5, don't reboot then.  And you can say I use my computer actively these days. You can't say, no, let me decide when to reboot.   It kills me that even Microsoft employees get Windows 10 reboots while they are giving presentations on how great Windows 10 is.

1.2  You can not disable Windows Defender, unless you want to install something worse.   You can temporarily disable the Windows Defender Realtime feature, but it is automatically re-enabled after an unspecified amount  of time. From what I can see that time is about 1-2 hours.  The service that you could have disabled in Windows 7 to prevent Windows Defender is no longer possible to disable unless you take extraordinary steps to grab permissions of registry keys, and do some low level hacking that could easily damage your Windows install.

1.3  You can not keep permissions on NTFS files anymore.  If you, like me, think that the C: drive root can and should contain folders that are writeable by a non-admin user, Microsoft  disagress. They reset all folders that start with the root of the boot drive as part of the regular security sweeps of your system, and you can not disable this. This breaks several applications that I maintain and develop.    It seems these sweeps are associated with windows updates, so when Windows 10 updates to a new kernel, it does these NTFS permission updates.

1.4 You can not be sure you'll have 100% of your CPU and disk bandwidth available, at any time. Who is using all my computer's resources right now? Oh yeah, Microsoft. There are many privileged tasks that  you can not fully control or stop, including superfetch, the trustedinstaller, and there are many that do not tell you they feel like using your whole computer that at least can be paused.  The windows search feature, which is useful, is not configurable so that it doesn't use your valuable computer resources when you're trying to, say, write code and compile your applications in Delphi and then debug them.

2.  Windows 10 is gathering information about your computer, and you don't know what it is.

Some information has been revealed about what kind of data Microsoft collects, but you still can't opt out of this, and you don't know what data it sent from your computer. In the latest Creators Update you have some control over the level of data gathering, but Off is not an option.  This is frankly, unacceptable.  On my main Windows 10 box, the Privacy page in the Settings app, has some new options, but "opt out from all telemetry and data transmitted to Microsoft" is not one of them.    I have to say, it is nice that there is a web page where you can view the data they have that is associated with any email address you may choose to log into that site with.  But even they (and you) may not actually be aware of, and may not, via this web site, be able to say "we're not monitoring you".   They can only say, "here's data we have for that microsoft account, associated with that email".   

They do not claim that the data you clear is everything.  In fact, the EULA makes it clear that it's not.  You can clear out your browsing history but not all your telemetry data.  Why do I even care? Because it's a principle.  Surveillance that is used to send your CPU load history, that can be used to see performance regressions, arguably helps Windows users. But it should be my choice to opt into even the most benign data collection programs.   That your browsing history (for Microsoft Edge only) is clearable, is good.  All they give you there, is good, assuming you trust them. It's just not enough. It's sort of a smokescreen.  I'm not saying that they just pretend to delete data, but I am suggesting that the real picture might be a lot more complex than they want to admit publically. They don't actually know who had access to personally identifiable data, that may do something with it, that is an abuse.   They can't because that's a human problem.   The best procedure for privacy is to not collect data in the first place. Microsoft has become addicted to your data.  It's their lifeblood, they admit that publically.  They say it's the "lifeblood of Windows". No, it's the lifeblood of the new Microsoft.  Your life.

So why not stay on Windows 7? The ecosystem will continue to rot, and eventually it will become difficult to run Windows 7 on modern hardware. Microsoft has even started actively looking for ways to make Windows 7 not runnable on new hardware.    Windows 7 is almost as bad as Windows 10, but at least, when you disable the Realtime mode in Windows Defender it stays disabled.  Windows 7 is not ultimately a good solution.    If you have Windows 10 Pro, you might find that the Group Policy editor provides a "close enough for rock and roll" method for disabling Windows Defender, via group policy. If you have Windows 10 home, that method is not available.  Windows 7 has many of the same flaws (superfetch, boot time problems, update problems, windows defender problems) as Windows 10, but overall the symptoms are not as bad.  The most egregious problems in Windows 10 are somewhat less of a problem in Windows 7.  

What is the solution? I don't have one.  I'm just mad.


  1. > You can't say, no, let me decide when to reboot.

    Yes, you can. I have done it several times already.

  2. Rudy, you can postpone a reboot for up to three days or give it a specific time (right away) to schedule the reboot; you can't simply be handed manual control. It's just ridiculous.

    I believe it was Eric S. Raymond who observed that Windows tends to be written for the lowest common denominator while Linux tends to be written for the highest common denominator. Windows is oriented towards one's grandmother and not towards the developer, which is why it's forcing updates and reboots.This is also probably the reason that Stack Overflow surveys show that we're about to cross the 50% point for developers who develop on an OS other than Windows.

  3. You can also configure Windows updates from happening automatically and you can just initiate the download and installation process (and reboot) at your own time

  4. I spent about two years following this rule: "When all else is equal, choose cross-platform. If all else is still equal, choose open source" (not sure if I'd reverse that today). Then in 2010 my XP install got seriously screwed up. I was faced with reinstalling XP from scratch, installing Windows 7 and apps from scratch, or installing Linux. Since I needed to fully rebuild the system whatever I chose, the cost of switching to Linux was finally on par with the other options.Additionally, since I was using so many cross-platform and open source programs already, most applications I were using were already available on Linux, removing another major burden.

    I went with Linux and made a "test install". One year later, I was still using that "test install". :-) Despite having fiddled with it excessively, installed and removed lots of software to try, changed all sorts of settings, I'd never needed to reinstall it. I finally declared the "test" over and removed my old XP Windows partition, which I hadn't even booted into in many months.

    This year it'll be eight years of having switched; I remember one person warning me "Oh, you think you'll be happy but you'll be back; you'll see!" Now I can't even contemplate the idea of ever going back. The advantages are enormous - package management is simply incredible; amazing people use this every day on their phones but don't have it on their desktops. It also makes replicating entire desktops a breeze! Copy-on-write file systems with near-instant snapshots are another miracle. Mine automatically snapshots before and after every update; any problems and I can test a read-only earlier snapshot and roll back if desired! I also automatically snapshot data directories at various intervals and can even mount them and explore them. I've actually mounted a directory of my Documents folder as it was six months earlier to find and retrieve a single file I'd subsequently changed. Amazing! Logical volume management is another gem to virtually expand drives and grow partitions. I still remember growing a partition under NTFS: You'd need to reboot the system and then it would laboriously move the last partition down and each subsequent one until it created the free space you needed; you might wait 15 minutes. Now I can expand any volume online in less than six seconds!

    It goes on and on from being able to create live DVDs and run from flash drives (without the hoops or enterprise requirements Windows 10 has for its equivalent), being able to choose (and customize) my desktop, no segmentation - my desktop has all the powers of a server without needing to pay extra, good SSH support, great SSD caching, etc. Plus all the latest and greatest things - such as deep learning and containers- are primarily happening on Linux (and open source).

    Now I'm about to switch to the rolling release version of OpenSUSE, Tumbleweed, that I've been trialing for a few weeks now. I'll get the latest (tested) and greatest of all my software (OpenSUSE has a fantastic automatic testing tool they've built, making their rolling release arguably the most stable around). No upgrading OS versions ever again since you're always running the latest, and Tumbleweed has been averaging six updates every seven days for 2018. :-)

    With so much going for it, the "Linux tax" one pays for not using the most popular OS has shrunk enormously. Given that the 2016 Stack Overflow survey had 21% of developers using it for development work, it's hard to even consider it the underdog anymore (at least among developers). I can't see what I would gain in 2018 going back to an OS that freaks out when you change hardware, forces software on you and like to reboot so much. I guess I've gotten used to an OS that performs updates swiftly and never needs to install anything on boot-up or shut-down. :-)

  5. The time is *now* for Microsoft to open-source Windows. [I've said it before]( and I will say it again, I really desperately hope for a (near?) future where Microsoft open-sources Windows. I think they can now. I think they should. Microsoft should embrace a future where it gets its revenue from online services and perhaps SQL Server, though that might be the next closed shop earmarked to go.

    1. I doubt it'll ever be open sourced, but I can see a future in which it's free, at least for individuals.

  6. > 1.1 You have no way to stop system reboots

    Yes, you have.

    > 1.2 You can not disable Windows Defender, unless you want to install something worse

    You have a point. However (and I'm not fan of antivirus / antimalware programs) so far Windows Defender doesn't bother me.

    > 1.3 You can not keep permissions on NTFS files anymore

    I haven't seen this behaviour. True, my application cannot create a folder in C:, but I can create one during install and then write to it without a hitch.

    > 1.4 You can not be sure you'll have 100% of your CPU and disk bandwidth available, at any time

    Earlier versions of Windows 10 were ruthlessly eating all my bandwidth and CPU to the point of making the system unusable. This hasn't been a problem anymore, nowadays CPU and network consumption by system programs has been mostly civil. However, this isn't new; Windows 7 used to do the same in my setup (Search Indexer being one of the vilest culprits back then, just as now.)

    I disagree with your overall diagnostic of Windows 10 being "terrible". I think it's a terrifying piece of technology, and in my personal experience has been more stable than ever. My only problems were the sorry state of SD drives a couple of years ago.

  7. I would pay about $399 US for a Windows 10 Pro license with no telemetry and where it's up to me to update when I want to update, reboot when I want to reboot, and where nothing is shared with Microsoft at all. I want them to not know that I'm even using my licensed copy of Windows, once it activates and hardware locks to my PC.