And backwards compatibility.
They're really good at it. And I'd say that's the reason Windows is still dominant. There's this unfathomably long tail of niche software that people need or want to run.
And backwards compatibility.
They're really good at it. And I'd say that's the reason Windows is still dominant. There's this unfathomably long tail of niche software that people need or want to run.
This fact alone throws this commonly held belief to the wind.
Glibc provides binary compatibility to newer versions too.
Shims exist in both, “windows compatibility layer” for example, but pulseaudio can emulate ALSA- and pipewire can emulate pulseaudio and ALSA.
It’s actually a quagmire, but I would contend that either has solid story for backwards compatibility depending on the exact lens you’re looking at. Microsoft is worse than Linux in many ways.
Microsoft sort of only wins in the closed-source, “run this arbitrary binary” race - if you totally ignore the w10/11 UWP migration that killed a lot of win32 applications, but drivers for older hardware are much more long lived under linux.
> Microsoft sort of only wins in the closed-source, “run this arbitrary binary” race
That is actually a big win as some manufacturers only provide binary blob drivers and a lot of commercial software is distributed as binaries only.
To answer your other question though; Any GDI that is not accessible through DirectX- The Contacts API, Timers API, BITS (Background Intelligent Transfer Service), The inbound HTTP server API, NDF (Network Diagnostic Framework), SNMP.
AllocConsole and ReadConsole are gone, NamedPipes (something I used to use extensively) are gone. Toolbar and Statusbar APIs are gone and direct manipulation APIs for the Desktop.
I mean, I can keep going.
I'm able to run binaries compiled over 20 years ago on the latest version of Windows most of the time. They do require enabling compatibility mode and sometimes installing legacy features.
I don't know, if APIs you mentioned are available in compatibility modes, but at least named pipes can still be enabled.
But Windows is going downhill lately, so backwards compatibility isn't what it used to be. Improving backwards compatibility for running old binaries would make Linux adoption easier. I hope that Linux PCs market share keeps improving to cross the threshold where it becomes an economically viable platform for most of commercial software.
...sorry, what? I use these intensively and they are still available to use.
I still run 30 year old games on Windows and write new software using WPF and WinForms even, and it all "just works", much more so than similar attempts at software archeology on Linux.
It's really too bad that Microsoft is hell bent on shoving ads, AI, and dark patterns everywhere in what could otherwise be a decent boring "it just works" OS.
Every Windows release I compile code straight from a Windows programming book from the 90’s. The only changes I made last time was a few include statements and one define.
They are getting worse at this. I bought a Surface Laptop Studio 2 two years ago. Windows Mail and Windows Calendar, two nice minimalist programs from Microsoft, were actively killed in this time. If you open them, it will redirect you to a new ad-laden Outlook app. If you somehow get a workaround going through the registry, they still fuck with it because the (incredibly simple) UI somehow has network dependencies.
I use MailSpring for email and no longer have a native calendar on my fairly expensive laptop from Microsoft. This is actually what drove me over the edge to switch to Linux for my workstation. Unclear exactly what I'll do for my next laptop but it won't be from MS.
What I'm talking about is, if your widget factory uses some app to calibrate all the widgets which was written by a contractor in 2005, it probably still works fine on Windows 11.
Since M$ is doing away with simple free apps (such as Mail) and forcing users to move to cloud-based expensive apps, you can use FOSS (Free and Open Source) alternatives -- especially the Portable ones (e.g., apps from PortableApps.com) that don't need an install, they can run off a USB drive, and app+userdata can be easily backed up without fuss.
https://alternativeto.net/software/mail-calendar-people-and-...
Couldn't find a decent minimalist calendar program that integrated well with Windows. People say they like OneCalendar but I refuse to use the Windows Store, I even got WSL set up without it lol
https://vivaldi.com/blog/vivaldi-mail-calendar-feed-reader-a...
But you can also just use it as an email client and ignore the browser part.
Either way, MailSpring works fine for email, and I've recently discovered Fantastical for a straightforward calendar program.
But it's absurd that I have to do this at all. At a minimum, if I buy a laptop, Microsoft should not be able to actively break it without refunding me 100% of the purchase price.
New apple-silicon Macbooks also get such good battery life and performance now that if you are switching from Windows to a Unix-y personal computer, is is increasingly hard to not say that you should go to Mac.
I once had to patch uvc to support a webcam that wouldn't work natively on Linux. It would advertise one version of the API but implement another. That didn't affect windows which probably already knew and had proper patched drivers for it.
We can all but wonder why, but my guess isn't that there is some sloppy dev there and windows is just making up for it. It all seems very deliberate to undermine Linux. And it's plausible given Microsoft's bottomless pockets.
So it wouldn't surprise me that these companies are actively hindering Linux compatibility. So much for a free market with open competition.
My experience has been that I can generally just install Linux on a machine and pretty much everything will just work straight away, but with Windows, I have to go and find the relevant Windows drivers to get things like iSCSI working.
I have plenty of printers that have stopped working on Windows over the years, my current Brother laser doesn't have drivers that Windows will allow to be installed anymore. Its fine with Linux, so I just print share it as a generic so the Windows clients can connect.