Hacker News new | ask | show | jobs
by jwells89 961 days ago
Is that really a fair comparison, though? The changes seen by smartphones (both hardware and software) in that period of time are much more dramatic than PCs saw in the same period. In 2009, PCs as a device category were mature already while smartphones were just getting started.

Windows (and thus anything mimicking it) is also a bit of on outlier when it comes to backwards compatibility anyway. There aren’t too many other systems still being developed that a 14 year old binary will run on, let alone run correctly.

5 comments

> Is that really a fair comparison, though?

GP is highlighting a problem with Apple, and it's quite true. I have a licenses to Macomedia Fireworks (from 2010) for macOS and Windows. Windows version works still flawlessly. macOS dropped 32-bit support after Mojave (2018). I paid good money for Fireworks, and more importantly I loved that app.

I can run x86 Steam games on Windows for Arm because Microsoft added x86 emulation.

I can't run Mac Steam games on Mac because Apple dropped 32-bit support.

Binaries from just a few releases ago may not run on macOS due to OS changes, but Apple isn’t alone in this. With a Linux system, your distro may change so rapidly that something from 6 months ago may not run. In both cases, an adept user may be able to make most things work, but it is annoying.

The flip side of this is that both Linux and macOS are typically a bit more reliable than Windows. The heavy focus on backwards compatibility limits what Microsoft can do to push NT forward. Also, Microsoft should more heavily leverage NT’s personalities… that’d be fun.

Not much of a problem though outside of archiving concerns. Anyway, this is also the main reason windows sucks ass to use. Or used to be anyway; no idea if they've fixed the keybindings or reliance on the registry yet.
> The changes seen by smartphones (both hardware and software) in that period of time are much more dramatic than PCs saw in the same period.

They certainly got a lot more powerful, but the fundamental software architecture hasn't radically changed. An iPhone OS app from 2008 can be recompiled for 2023's iOS and will still work. iPhone OS inherited its whole architecture from OS X, which gave it room to grow into more powerful devices without radical changes. Pre-iPhone smartphones were a different beast.

Perhaps it's a matter of priorities. Given how much more powerful today's iPhones are compared to those from 2009, Apple could run older apps in an emulator.
There’s nearly 0 demand for this why is why you can’t do this. If there was this would either be an OS feature or a very popular third party app.
Here's a data point: I am demanding it. I purchased software and I'd like it to continue to work.

The Ace Attorney collection was excellently packaged for iOS, and I want to keep playing one of the best-published versions of this trilogy, but now the UI doesn't render properly.

I'm not saying that it's trivial, but we both know it is absolutely possible. Apple keeps putting the focus on "gaming" in its iPhone keynotes, but if they were serious about gaming, they'd make the games I already bought continue to work.

The original iOS release is widely regarded to be the worst version of ace attorney, they have a remaster for iOS now released recently.
Idk man. It might be time to move on.
It's not an OS feature because Apple has an aversion to maintaining any kind of compatibility layer for more than a few years, it's not a third party app because Apple doesn't allow JIT code (eg. high performance emulators) in third party applications on iOS.

Demand isn't the only reason to make a feature, sometimes customers might want something only after they're given the opportunity to recognize it's value.

There are hacky ways to get JIT to work and you can run Dolphin and other emulators that way.
Not productizable and not something that you could rely on working in the longer term.
Designing an app to emulate iOS games would be extemely difficult, let alone allowed on the app store. Backwards compatibility requires deep forethought and careful engineering as well as draconian enforcement. I think the technical difficulty plays a huge role here, when weighed against Apple's culture (sleek, minimalist) and the impact it would have on profit.
A modern iPhone sure but what about the iPhone 2/3G? That’s basically a low power ARM chip and we have Nintendo Switch emulators with very good performance. Anything pre-security chip should not be that difficult to emulate.
My guess is that while it may not be too much effort to get a mostly accurate emulator that works well enough for hobbyist use, it'd be a lot of effort to get something up to the compatibility and usability standards of an official product.

Many older apps may use undocumented functionality or non obvious quirks of the system that an emulator may miss, which means you'd need to have a QA team testing individual apps for compatibility.

Part of Apple's brand is usability and a lack of rough edges. The downside of that is that building a tool like this up to their standards would be prohibitively costly.

I think the main problem would actually be the added storage consumption of hauling around old iOS system images, as would probably be necessary to keep the mainline version of iOS unencumbered from the constraints placed by backwards compatibility — it’d probably just be virtualizing old versions of iOS similar to how Mac OS 9 was virtualized in the early days of OS X.
Sure but even then storage space isn’t that terrible. The iPhone 4S had 8 GB of storage and supported iOS 5-9 as an example.
Emulators aren't allowed on the App Store, so it couldn't be a third-party app.
> Is that really a fair comparison, though? The changes seen by smartphones [..]

I am pretty sure this is referring to the Mac App Store, and would also apply to Steam for Mac or really trying to run any mac software from more than a couple of years ago. Apple's aggressive deprecation of Carbon and 32-bit have personally caused me maddening frustration a very large number of times. As much of a technical achievement as Rosetta 2 is, I also expect them to drive a nail through its heart at the first opportunity. I think Apple should have allowed their compatibility layers and deprecated libraries to flow into open source or community maintained projects instead of simply being abandoned.

Apple seems to see compatibility layers as exclusively transitionary, being something that’s kept around only long enough to give devs a chance to move over to the new thing.

Carbon was likely kept alive longer than Apple wanted to due to heavy usage from major players (MS, Adobe, etc). In fact I wouldn’t be surprised if the short lifetimes and hard cutoffs on newer compatibility tech is a result of their experience with Carbon… they really don’t want devs leaning on these things for significant amounts of time, and as nice as it would be if they open sourced those technologies it’d run counter to their goals of getting devs migrated over to the current stack.

On the one hand, yeah, Windows can claim compatibility back so far that it does extend into the PC platform's early-ish days. After that, we quickly fall into emulators; a copy of dosbox will happily run the great hits of the 90s... I'm not actually sure how to count that, though, since it is an emulator, but also it's a relatively easy emulator to support because the platform was so much more open than iPhone (and also just simpler).