Hacker News new | ask | show | jobs
by picafrost 287 days ago
There is something so fundamentally gross about Microsoft's vision of what role an operating system should serve. That there is an aftermarket of software that attempts to disable (but cannot remove!) the invasive dark patterns is alarming enough, but Microsoft may simply just... undo that, with the next unstoppable update.

Then again, this is the company that answered complaints about Windows being bad for development by embedding an OS that is good for development and calling that an innovation rather than an acknowledgement that Windows is bad.

5 comments

> answered complaints about Windows being bad for development by embedding an OS that is good for development and calling that an innovation

Well, they actually did it twice in recent history: WSL 1 was relatively innovative, integrating Linux application compatibility into the Windows operating system itself. But that turned out to still be bad for development because it meant Linux software was now subjected to the performance problems of the Windows IO stack. So they responded with WSL 2, an ordinary Linux VM. And separately they also introduced the "Dev Drive" feature to let you create a filesystem that bypassed the worst parts of the Windows IO stack.

> WSL 1 was relatively innovative, integrating Linux application compatibility into the Windows operating system itself

Both FreeBSD and Illumos were running Linux applications (at various levels of compatibility) many years prior to wsl v1. Joyent even went as far as re-implementing the Docker api to allow running OCI images natively in LX zones. Hence, it wasn't even that novel of an idea.

What's interesting is that the syscall-compatibility layers in the BSDs began with SunOS binary compat on NetBSD m68k/32-bit sparc-- which was created by Theo de Raadt.

https://marc.info/?l=openbsd-tech&m=161435521906992&w=2

https://github.com/NetBSD/src/commit/6ce3f21

https://github.com/NetBSD/src/commit/1a68594

He also came to the same conclusion compat layers were a dead end (OpenBSD removed all compat_*(8) support, including Linux).

That’s arguably an easy task though because there is more commonality due to POSIX.

But there are plenty of examples of compatibility layers like this throughout computing history. WINE, cygwin, Linux compat, etc.

Microsoft even went down this road already in the 80s with Xenix before abandoning the idea of Unix.

The only novel part of WSL was the marketing folks

Microsoft had a POSIX personality on NT since its release in 1993.

https://en.wikipedia.org/wiki/Microsoft_POSIX_subsystem

Then with the release of XP it was replaced with: https://en.wikipedia.org/wiki/Windows_Services_for_UNIX

NT running POSIX applications pre-dates the existence of FreeBSD by a handful of months.

The interesting thing about WSLv1 is the pico process concept, not the syscall compatibility.

Achieving it on Windows was fairly novel, though: we hadn't had something like that since the XP days.
Even that’s not true. cygwin, mingw, and others have been around for decades.
Those are runtime environments provided by DLLs (requiring recompilation), not Wine-like translation layers. WSL 1 was something special, and it says something that Microsoft ditched it in favour of "we've invented virtual machines for the very first time!!!".
It’s been a while since I’ve played with Cygwin and I do recall there were a lot of stuff compiled for Windows, but couldn’t it also run Linux software run natively too?

Admittedly back then I was working for a place that mainly developed in Perl, so I didn’t port a whole lot of ELFs across. So maybe I’m misremembering

This begs the question of why Microsoft doesn’t just transition Windows to being a commercial Linux distribution, especially now that Windows licenses are so much less important to Microsoft’s business than they used to be.
That'd be a lot of work for no gain and substantial loss of control (due to GPL). How are they going to force adverts onto people if it becomes easy to just run a script to remove them?
It’s just as easy to run a script to remove them on Windows but most people don’t do that.

I would say that this vision of Windows would involve Microsoft essentially producing a Linux graphical shell similar to Gnome and KDE with a bunch of convenience tools that are typical to the Windows experience. It would have defaults like the Bing brower and all the typical Windows revenue-generating stuff.

I don’t think the GPL requirement to release code is a problem for the business model. Not all of the tooling has to be released as GPL and even if some of it does, the brand and commercial partnerships of Windows will mean that most people don’t go out and replace Windows with the hypothetical de-commercialized version.

We see this with VSCode where Microsoft is totally fine to release the code with an even more permissive license than the GPL, but they keep the extension marketplace gated. If you want Microsoft’s extensions you have to use VSCode.

What people are asking on this thread, that Microsoft just move everything to a Linux distro, is a gargantuan task. It will not happen in 10 years. It might not happen in 20 years but mark my words. Windows will switch to Linux within our lifetime.
The realistic way I see it happening is more like a product split rather than an explicit migration, or leveraging compatibility layers.

One day Microsoft would say, hey, Windows 15 is Linux-based. It'll run most of your Windows stuff either natively with some nice developer tooling to make a transition or using a compatibility layer (which, as we know, Linux already has!)

But you can keep using Windows 14 for a very, very long time.

Android is technically Linux, but you still can't remove the ads because it's all very locked down.
You can remove the ads from Android in a similar fashion to how you'd remove ads in Windows (e.g. DNS blocking). However, if you've got root access to Android, then there's other methods available to you. Some phones don't allow you access to root mode, but presumably a Windows version of Linux wouldn't be running on locked hardware (or at least I wouldn't buy something like that).
This pattern is actually how I decide whether or not a piece of software is worthwhile. First Windows install, what do you do? spend an hour or so attempting to disable or remove all the junk being pushed on you and fix terrible default settings. It's been a while for me with Windows, so I haven't had to battle with the online account requirement, Onedrive, etc. But, the general pattern remains. If an OS or software is just packed with stuff that's hostile to you, then it's either got to go (Windows) or be minimized as much as as is feasible. (smartphones & apps) This is actually what turned me off Ubuntu. It's not even close to being as bad as Windows, but I realized that on a fresh install I was attempting to get rid of snaps and the "buy premium" message when running apt, and a couple of other things.

If something is being pushed on me, it's obviously bad for me, and good for the pusher.

I don't think the notion is always true of something being pushed on you automatically being bad for you. I agree that Windows is very user hostile, but something like mandatory updates where you cannot defer forever are good for less technical folks who, prior to this policy, were never updating and we had huge problems with botnets and malware running on people's machines. In a way it is like herd immunity where you benefit a bit from these botnet malware rings being less prominent than the past thanks to aggressive auto updates, even if you personally hate the policy and it's an annoyance to you. Or for another similar example, people going to remote parts of the world to vaccinate people to eradicate diseases like polio - things can be pushed on you, sometimes aggressively, and they can be a net benefit.

That being said, I do agree that windows is user hostile and i won't run it myself.

> I agree that Windows is very user hostile, but something like mandatory updates where you cannot defer forever are good for less technical folks

Maybe if those were only security updates. Windows pushes new features, new crap, and re-enables and re-installs (!) stuff you've removed via this path as well.

I sometimes wonder what's really in that Candy Crush binary.
Honestly, probably just Candy Crush. Lets be real, if Microsoft wanted to hide code somewhere, the world is literally their oyster, they don't need to Trojan Horse it into a game.
They allow these aftermarket products to work/exist as long as they remain niche. It keeps a select audience that would have jumped ship on Windows.

The moment these 'solutions' would get mainstream traction they will be shut down.

The ability to change the installed components or configuration of Windows via OOBE has been around since NT4, at least. These tools are nothing new nor novel; they're required for companies that want to have a custom image and removing default components is one of the more common things to do.
…except for the inconvenient fact that Windows is the most developed-for (and thus developed-on) desktop OS in the world.

Linux is catching up (mostly in gaming) but nothing comes close to the amount of engineer-hours poured into building Windows desktop apps.

I have no opinion on Windows Apps, but as a Developer, Windows Applications gives me nothing that is better than what Linux has. In fact, for development Linux (or BSD) is what developers should use.

In fact, I was trying to convince developers at work (fortune 500 company) to move from Windows to Linux for a long time, only 1 person moved.

For a bit of cruel fun, have a Finance person use Libreoffice scalc instead of Excel. Doing that is probably the worse thing you can do to a Finance person, I think after a few days of that, they will end up in ICU.

FWIW, we were allowed to use RHEL, Fedora or Ubuntu on our workstations instead of Windows.

Win32 gives you a stable ABI.
The Linux kernel also has a stable API, glibc has it, most proper libraries have it. The problem on Linux is not that a single tool doesn't have a stable API, but that the tool changes. But that's kind-of like complaining that Windows doesn't have a stable API, when you replace it with macOS.
glibc does not have a stable api on the timescales we are speaking about it here, and neither do any of the GUIs on linux. you are sort of moving the goalposts here.

you cannot take a compiled gui app for linux from 20 years ago and run it on a modern system and have it work. on windows it will work just fine.

not to bring out that old trope, but windows is an OS (and desktop environment) - linux is a kernel. you know what they meant, and your rebuttal isn’t one.

also, GP clearly said ABI and you jumped to API - one is much harder than the other.

So does ReactOS.
It's interesting you have to hedge it with "desktop" OS and the reason that's interesting is that desktops are mostly irrelevant.

Microsoft has their niche, which is offices. This used to be the main application of computers, but now it is just a very large niche.

The overwhelming majority of computer interactions are Android clients talking to Linux servers.

Desktops aren’t irrelevant. Desktops run llvm and Xcode and Excel and Autocad and Blender and Premiere and After Effects and a thousand others that are absolutely essential to designing, producing, testing, and marketing the thousand complex products you use daily.

Just because lots of people use their phones primarily doesn’t mean that desktop computers aren’t responsible for producing literally trillions of dollars of shit every month. All those mobile apps? Developed and built and tested on desktops. The mobile phones themselves? Designed and built and QA’d using desktops. The payroll for the 200,000 people in the supply chain to get them to you? Desktops.

The power grid. Airline reservation systems. CNC mills. MRI machines. Mortgage underwriting. Computer factories. Pick-n-place machines. These aren’t run off phones.

You get the idea. Real business runs on real computers, still, no matter how many billions spend how many hours playing Candy Crush.

True. And it’s baffling to see the flak it gets on here
It’s not baffling. The OS was always sort of bad, and under the current Microsoft leadership of the last dozen years it has gone to absolute and total shit.

It’s bordering on unusable. There is no amount of money you could pay me to daily-drive the current release of consumer windows.

at least for now, I just make sure that any internet connection is "metered" to avoid updates + use an LTSC build + use a bunch of winhawk + openshell to make it...usable :(

ms is def at the point of major enshitification