← Back to context

Comment by heavyset_go

8 hours ago

Wine works because Microsoft spends billions on backwards compatibility and APIs are stable over time.

Apple regularly deprecates frameworks and adds new ones at rapid rates. It's a moving target with the added complication of moving build targets.

If you implement your own version of Apple's XyzKit, that might only be used in macOS 12 to 14, and not before or after that, so you put in a lot of work to essentially support binaries that were released between X date and Y date and that's it. And you have to do that for a sliding window of dates, macOS versions and framework releases and deprecations.

Wine works, because it doesn't cover many modern APIs, I would assess.

New Microsoft under Satya has a different stance on anything WinRT related, or even newer Win32/COM APIs since Windows 8.

Also .NET Framework is the Python 2 of .NET, the breaking changes are a reason there are still new projects being done in .NET Framework 4.8.x.