Windows 10 is upon us, and I feel like it’s rant time to try and burst some of the bubbles the Windows fanbois like to hide within when confronted with alternatives such as Linux. You know how much I love a good rant… so let’s loosen our collars, have ourselves a bit of whiskey and dive in!
I’ve seen this propped up as the sole feature that Windows users can cling to as being their holy grail. But let me burst your bubble there to say that, DirectX 12 is wholly unimpressive.
Explicit GPU programming has never not been possible. DirectX 12 didn’t suddenly discover that for everyone, it simply packaged what has already existed for decades and exposed it in their technical-debt-laden API that developers have no access to the internals of to make better use of, and is specifically relegated to Microsoft platforms (Windows and Xbox). Two platforms among the many hundreds or thousands that exist that can benefit from hardware accelerated graphics. A drop in the bucket as far as the computing community at large is concerned.
Vulkan, the successor to OpenGL, is a work of an industry standards group known as the Khronos Group, comprised of hundreds of industry companies the likes of Nvidia, AMD, Intel, Valve, ARM, Qualcomm, smartphone manufacturers, auto manufacturers, just to name a few. Vulkan is a brand-new, from-the-ground-up approach to doing explicit GPU programming, inspired by the likes of Mantle (which was used as a starting point to be honed by the Khronos committee). Vulkan, which has already the commitment of the major graphics chip makers to have full support for, will make DirectX 12 look like exactly what it is, Microsoft’s attempt to stay relevant in an ever-shrinking market share.
Vulkan has all of what makes DirectX 12 so “great”, and at the same time, is not proprietary and locked to a single company’s technology platform or licensed in such a predatory way as DirectX is. Vulkan will run on not just Linux, but Windows, MacOSX, Android, iOS, infotainment systems in your car, your web browser, and more. A cross-platform, cross-device (as in multiple brands of GPU at the same time), lightweight and explicit graphics programming API to bring us into the future, designed by the collective work of graphics computing powerhouses and collectively hundreds of years of experience. Not a small team of H-1B visa software engineers barely being paid a living wage fresh from India such as the like which Microsoft employs, that will run out of their work visa in a year or two and be cycled out for yet another set of new hires just the same.
DirectX 12 was a direct result of the ongoing development of Vulkan in order for Microsoft to try and put themselves ahead of the trend of game developers (at least.. decent ones, and not shitbags the likes of EA, Ubisoft, Activision, so on and so forth) moving their pipelines over to a cross-platform-capable graphics engines with explicit GPU programming capabilities that are not beholden to Microsoft’s waning platform. Have you seen UnrealEngine? Unity? Source2? Heck, Valve went so far as to make their own distribution of Linux with their entire game distribution and runtime platform, as well as spending millions on engineering of software tooling around enabling developers to make games for Linux, OpenGL, and now Vulkan (of which Valve too has been one of the MAJOR contributors).
Do you really entrust a company like Microsoft, who has in the past been regarded as an outright evil behemoth largely incapable of making a product that doesn’t fall on its face at every opportunity but still somehow manages to be successful on the simple fact that their primary goal is to indoctrinate people into their technology by means of backroom, predatory, and almost extortion-level licensing deals with OEMs; targeting the education sector to make sure that the first computer experience that young students encounter is Windows; and going after the public sector (government, in case you didn’t know), by spreading fear, uncertainty, and doubt about any other technology. All in order to win contracts to supply the software for a large swathe of our government computational infrastructure to the tune of billions of our tax dollars that more recently gets shipped off to other countries, and by proxy creating a need to have technicians trained in the most arcane and kludged systems ever devised (Windows Domains, Exchange, Sharepoint, etc) and thus perpetuate their brand by any means necessary. A large amount of my employment involves supporting users of Windows because of simply how unstable, susceptible to malware, and poorly designed it is. I literally have gainful employment in large part because their product is absolute and utter garbage. So do you really think that DirectX 12 is going to be some paragon of graphical computing to be heralded as your holy grail, when faced with the reality of the situation at hand? I for one find it laughable to even consider it.
BUT MAH GAIMZ!!
As for gaming, well… I play them just as anyone else. Battlefield series being my favorite since the very first Battlefield 1942. World of Warcraft, Eve Online, GTAV, and a whole slew of hundreds of other games in my library, many of which run just fine on Linux (marked Steam play).
For the rest that the developers of said games were far too lazy or to port their games to Linux, I have a virtual machine with a stripped-down, lobotomized Windows installation in order to provide the necessary software (that’s all Windows is, afterall) layer to run the games. With my processor’s feature (intel VT-d) to support IOMMU, I can give control of my graphics card to the VM and allow my performance-hungry games to take full use of the hardware acceleration my hand-tuned overclocked GTX980SC can provide without drawback. Meanwhile, I can still enjoy all of the benefits of Linux for use with anything that isn’t a specific select few of my video games that require running under the Microsoft graphics API, DirectX.
Windows 10 UX is complete incoherence.
This release was very rushed. Granted, it’s a whole different aim, to be a rolling service release more than a big one-time drop. But given that, I find it should be no excuse to have not given this release another extra month or two of fine-tuning. I keep up in industry news, and a lot of what I’ve seen reported from professional technology journalists who’ve been covering product releases such as this for decades, is not pretty. As well, what I’ve seen from reddit posts is not pretty. What I’ve seen of a lot of my customers who decided to take the leap and jump in on day one, is not pretty. Mind you, I’ve been in the computer industry professionally since Windows 2000. I’ve lived through every major release since then, and this is not a good release by any stretch of the imagination. While it may be not as bad as say… Vista or 8.0 (to a lesser extent), it is still quite bad. Not just in random major edge cases, but design flaws.
Windows 10 still has an incoherent UX. A mix of “ModernUI” and old User32 UI (the standard API in Windows going back to NT) is grating. Even with ModernUI, which by all account should be more coherent with its own, freshly designed components, is a smattering of inconsistency. I’m not talking a difference between tablet mode and desktop mode here, either. At least in that sense, there’s a fine distinction between the two modes that is reasonable for orienting for input style differences. With Desktop mode… even the title bars of the ModernUI applications vs the User32 UI applications are completely different. Let alone the menu structure, the fact that there are still two control panels of which both are not the one-stop location for changing all settings relevant to the machine, and must be jumped back and forth to one another in order to get a full spectrum control over the machine. If they were going to make Windows 8.2, they should have just called it that.
I was watching the development of Windows 10, fully watching the train wreck unfold of Microsoft being unable to pull themselves away from the older User32 land and go full-throttle ModernUI. They can’t. ModernUI can’t. Meanwhile, the structure and layout and access to settings of the new ModernUI is just as jumbled and looks to be designed by 20 different people with different opinions on how to put it all together; just as User32 UI always has been. At least with the time spent on User32 UI over the years, things have taken on a design consistency that’s as good as one can expect from Microsoft (still not very). But when you tack on a juvenile UI to a Senior UI and have them work together and apart? It compounds the problem of a complete lack of focus to one standard. Look at MacOSX. While the standard they have is definitely not optimal, very simplified, and very little is exposed to the user compared to Windows (of which also does a poor job of exposing every knob and lever when compared to just how many knobs and levers Windows has under the hood by way of the registry and shell); MacOSX at least has a very consistent design to almost every corner of the OS.
They had a chance to really revamp Windows, even skipped a whole version number to drive home the point, and chose to go the route of mediocre Windows 8.2. That’s why it’s a shitshow. Not just because of the problems people are facing, but because of how not ready it was.
Hopefully with Windows being designed to be a “service” that will grow and evolve over time rather than have to wait several years for the next iteration, that we will actually see major changes come down the pipe at a faster pace to make something coherant out of the technical-indebted monstrosity of spaghetti that is Windows.
It must be great for you running Windows and having that completely garbage thread scheduler, memory management, bloated background services, the requirement to manually install driver after driver just to get your machine to work, ages old inferior fragmenting filesystem (NTFS), want to have files with differently cased letters be distinct? Nope. Want volume sizes larger than 2TB without increasing cluster size? Nope. Want on-write snapshots of file changes built-in to the filesystem? Nope. The ability to replicate snapshots over the network instantly? Nope. How about built-in parity without an external controller or motherboard feature? Nope.
Hundreds of updates that take hours upon hours, gigabytes of wasted storage for legacy bloat code that hasn’t been touched in 10 years. Proprietary locked-down software with who knows how many unspecified vulnerabilities. Propensity to allow malware to be installed just be being glanced at sternly.
Windows has this gigantic unearthed trove of code just.. sitting there in your system folders. Largely never used, but dating back decades upon decades. This code largely is responsible for Windows being as prone to malware as it is, at the same time, the very thing holding it back from being something more than a joke to anyone with any experience alternative operating systems at a highly technical level. As well as for large businesses. It’s easy to see, as one need only swing a cat and find a swathe of companies employing Linux to run their critical technology infrastructure.
A well, as I’ve already discussed, there’s the part about erosion of control over one’s own hardware. It’s why I use Linux in the first place. With each and every version, more and more control over the experience and what your machine is doing behind the scenes is eroded away. Locked behind the paywall of Enterprise licensing. Forced updates, “telemetry” that you can’t turn off that reports back to Microsoft about everything you do on your computer, Turning your internet connection into a bittorrent CDN to spread updates via Peer2Peer (yes it can be disabled, but because it is the default option, 90% of the rest of the users, the average users, will never even know it’s happening. Defaults are king in the software industry) to save Microsoft a few dollars on bandwidth by stealing yours (with your approval after all, because surely you read and agreed to the license terms, riiiight?)
It is a proprietary locked-down system that does not let one control the hardware at the lowest level as Linux allows for. There are no restrictions on what is possible with Linux. Windows, is made for dumb computer users who don’t know, or don’t care about the internals of an operating system. An operating system that is by design aimed to lock in its users and developers alike by being wholly incompatible with the rest of modern software and hardware advancements. It is a kludge of garbage and technical debt barely fit for daily use, but somehow, like a cockroach in nuclear winter, remains dominant.