Hacker News new | ask | show | jobs
by nix23 1366 days ago
But then why not let windows patch simcity, instead of changing the system, just asking.
5 comments

The hack being described was very very old, this is exactly what the AppCompat system does in Windows now. AppCompat shims only apply to specific versions of specific apps (or get rolled up into "layers" which is what you get when you mark an app to "Run under XP compatibility"), and don't end up affecting other ones
Yep. It’s just the first version of AppCompat. Now you get to pick a set of bugs and behaviors. It’s actually a pretty great idea to isolate problematic software.
Thanks for then explanation!!
That'd break SimCity updates, and probably trigger antivirus warnings, and annoy Maxis devs and lawyers...

Whereas "we'll tweak our OS to suit your app to ensure it doesn't break with an upgrade"? That just wins loyalty from the game devs, users, and everyone involved except purist-coder types.

And it makes operating systems larger, more bug prone and harder to maintain.

There is a reason that Apple was able to port the core of iOS and many of the APIs to watches, phones, tablets, set top boxes, monitors (the latest Apple monitor runs iOS on an iPhone 11 era processor with 64GB RAM).

Yeah, but there's also a reason why you can still run most Windows 95-era apps on today's PCs, vs not being able to run most 2-year-old games on M1 Macs. Rosetta is pretty amazing but it's far from actual compatibility.

Apple's approach to backward compatibility is very different from Microsoft's.

It's not uniquely a Microsoft thing, either. Nvidia's driver updates frequently (in fact almost always) have game-specific optimizations. Antivirus and firewall apps frequently have to make exceptions for certain apps. WINE and Proton operate on per-game optimizations. Input controller managers (like Steam's profiles) have different settings per game. DirectX itself does a lot of backward compatibility stuff, AND allow different versions to coexist on the same PC (vs the relatively tiny market that exists for Metal or Vulkan).

All these things contribute to PC gaming vastly outselling the tiny Mac gaming market. As a Mac user, I wish that weren't so! But MS's approach is way better for devs and users in that case, even at the cost of the Windows APIs and libs being huge with a decades-long tail.

As a user of a current ARM MacBook Pro 16 inch and a former x86 MacBook Pro, being able to have a battery that last 20 hours, doesn’t get hot, nor does it sound like a 747 when I launch Slack, I very much appreciate Apple being able to transition processors.

Also seeing that the iOS game market dwarfs the PC game market in revenue and number of titles (if not quality), I think Apple made the right choice.

Microsoft has been unsuccessful trying to get Windows on ARM to be viable for years before Apple did it and has failed partially because of the behemoth that Windows is.

Speaking of Windows and backwards compatibility. There are at least 8 different ways to define a string in Windows depending on which API you are calling. String handling in C is one of the biggest causes of security vulnerabilities on any platform.

https://learn.microsoft.com/en-us/cpp/text/how-to-convert-be...

I love my Macbook too, and am hoping it revitalizes the dead OSX games industry. But its lack of backward compatibility further hurts its gaming capabilities vs the already-limited x86 OSX games. It's nice when it does work and you have some M1-native titles (Baldur's Gate, etc.) but those are far and few in between. Sure, it's a great business machine, it's just not a gamer's laptop (even though its hardware is fully capable). I use my M1 for most things, but still have to use Windows x86 for actual gaming.

Yes, Windows's backward compatibility carries a high cost. Nobody doubts that. But as a gamer, I would rather to be able to play games on a shitty OS than to have the latest, most vertically integrated all-in-one chip and stellar OS and be limited to a library of like 15 five-year-old titles.

As for the "right choice", eh, maybe from a business angle... but as a gamer, iOS games suck. They probably have that revenue mostly from lootboxes, not actual gameplay. I don't know that Apple should be applauded for turning video gaming into online gambling. That's not really a hardware/OS stack question anyway though, but a business decision. And to be fair, many of the actually curated titles (like the ones on Apple Arcade) are pretty decent -- though nothing close to the thriving indie scene on Steam/x86 Windows.

iOS is more like a console in that they're creating a new market segment, not necessarily competing with traditional PC gaming (which has taken a turn for the worse by adopting mobile lootboxes and such). On the other hand, OSX and Linux both tried the purist gaming route with their own APIs and got nowhere. It took WINE and Proton to really make the Steam Deck a viable platform (and barely that).

Do I like this situation? No, I'd rather just have games be properly cross-platform to begin with. I don't really understand how cross-platform works in Unreal and Unity, but if those engines can add native Apple Silicon support and make it easy for publishers to cross-publish, hopefully we'll see Macs on future titles alongside PC/PS/Xbox/Switch. Till then...

Look at where the mobile gaming revenue is today:

https://www.giffgaff.com/blog/mobile-gaming-overtakes-pc-and...

On top of that, you can carve out the percentage of “PC Gaming” that is “browser based” since you can run those on a Mac. The industry is moving toward browser based streaming games.

https://www.marketdataforecast.com/market-reports/game-strea...

> There is a reason that Apple was able to port the core of iOS and many of the APIs to

Microsoft can do this and just exclude the compatibility patches. All of those various windows versions and non-desktop OSes (eg windows phone, Xbox) are certainly the same thing. Porting an OS already means you’re picking what you want, and reusing the kernel. This isn’t that special.

Regarding maintainability, I’m not sure it’s “better”. It’s a liability to depend on mac software and update your mac. Ask how many photographers (or pick a profession) keep an old mac lying around for that one version of photoshop (pick your software) they need that doesn’t work on new macs. What’re the odds old mac is getting security updates and is well maintained?

(Also a nit, the monitor has 64gb of storage not ram).

Apple has ported its entire OS - not just parts - since the introduction of OS X to three different architectures. Should Apple still keep a PPC compatibility layer? If they had ported Carbon to 64 bit, would Adobe have ever moved over to modern MacOS frameworks?

Even further back, should Apple keep supporting OS 9? 68K processors?

How is the ARM transition for Windows working out no matter how hard Microsoft tries?

I mean, Windows on ARM (first 32bit and later 64) has been a thing for years now. I don't the issue is the architecture per se. What made the M1 Macbooks so good wasn't just because they were ARM based but specifically Apple's custom M1 chip.
A thing - barely.

Windows on ARM runs faster on Macs than Windows PCs

https://www.lifewire.com/your-m1-mac-can-run-windows-faster-...

https://www.androidauthority.com/windows-on-arm-2023-predict...

> Most Windows on Arm products offer slower CPUs than today's flagship smartphones

Apple also routinely breaks software compatibility with zero apologies.
This is the right decision.
64 GB of storage, 4 GB of RAM.
By changing the system they have a flag they can turn on for any applications that would be helped by a similar hack. It's not like use after free was a particularly rare event in mid 90s code.
You mean, like watch for an install of SimCity, and modify the game's files? I don't have enough experience in hardware and PCs to know if that was at all possible or practical.
>like watch for an install of SimCity, and modify the game's files?

Yes exactly! Technically easy, a Lawyers thing maybe?

Could also be interesting in a world where most PCs ran anti-virus tools of various different vendors.

Imagine Microsoft adding a magic “we’re the good guys” handshake to their OS that would all those anti-virus tool say “go ahead and do whatever you want”.

Honestly you could probably do it today, but back then it would have been a lot harder. You’d have to find every buggy use after free. Just easier to change the allocator for it. Probably how you’d do it today under emulation.
Legal reasons.