5 ms·
Backward compatibility is Apple's job, not developers. (This debate is as old as computers, but I'm strongly in Raymond Chen's camp.)
by bambax 4y ago
Backward compatibility is Apple's job, not developers.
(This debate is as old as computers, but I'm strongly in Raymond Chen's camp.)
- naniwaduni 4y agoWorse, developers need forward compatibility. Predicting the future is widely considered harder than inspecting the past.
- musicale 4y agoIn theory if you follow Apple's guidelines then you should maximize your app longevity; in practice Apple is going to break you eventually, and quite possibly in the next OS release.
- tonmoy 4y agoUnreasonable backward compatibility is how we end up with windows vista
- musicale 4y agoWindows Vista was painful, but consider that: 1) Compatibility wise it wasn't worse than macOS Catalina or iOS 11, which both killed off 32-bit apps; actually a typical iOS release is probably worse than Vista in terms of backward compatibility 2) Vista's security improvements (such as sandboxing device drivers, requiring app permissions, etc.) were beneficial and persist to today – and were arguably the predecessor to modern app permissions systems in macOS and iOS (and Windows 10/11) 2a) Microsoft eventually largely addressed compatibility by providing an XP compatibility mode (really an XP VM); they could have/should have managed this better 3) Vista got the UI for app permissions wrong, and users hated it; I think Apple did it better but Apple is generally better at UI and also had the chance to learn from Microsoft's mistakes. At the end of the day, Vista's woes were largely from not paying enough attention to backward compatibility, combined with poor UI design. It was a rough transition, but Microsoft seems to have learned somewhat from the experience (although Windows 8 also had some UI issues.)
- scarface74 4y agoThe tradeoff with killing 32 bit apps was that Apple could remove support for 32 bit code in ARM processors. Apple knew they were moving to 64 bit ARM processors. But should Apple have kept support for PPC support forever? 68K? Why not keep a 65C02 emulator around so I can run Oregon Trail from the 80s?
- musicale 4y ago> Why not keep a 65C02 emulator around so I can run Oregon Trail from the 80s? Sounds good to me! Pretty sure Apple 2 system software and an emulator would only be a few megabytes, and it would be awesome as something you could install for free like GarageBand etc.. Apple might also be able to acquire the rights to a bunch of classic Apple 2 apps and games... Maybe we can convince Apple to do it for their 50th birthday. Or maybe a Mac emulator for the 40th anniversary of the Macintosh in 2024. ;-)
- int_19h 4y agoWindows 7 had a better backwards compatibility story than Vista, and it's arguably the best version of Windows to date, ever. So whatever the problem was with Vista, it sure wasn't back-compat.
- musicale 4y agoI agree. Unfortunately they've abdicated their responsibility and dumped the maintenance/compatibility burden upon developers. It seems like a multiplicative trade-off: Apple saves a small number of hours but offloads a support burden onto thousands of developers. I think you have to be careful about this. Apple benefits from lower costs and having more time to improve the platform; but developer time/focus/creativity is also being taxed by a constant support burden.
- andrewxdiamond 4y ago> It seems like a multiplicative trade-off: Apple saves a small number of hours but offloads a support burden onto thousands of developers. Backwards compatibility is not a trivial effort, and can severely constrain the future evolution of a product. Keep in mind you’re asking for a completely backwards compatible embedded device OS. Being willing to make breaking changes is part of why Apple’s software is the quality that it is. If you want a counter example, Windows is notorious for strange undocumented behaviors and special case handling. These are consequences of Microsofts choice to fully embrace backwards compatibility. This leads to a complicated platform that is continually more and more expensive to maintain, polish, and secure. That expensive polishing cost is what tips the scales here for Apple. Backward compatibility can get in the way to get the level of polish that they call acceptable.
- alerighi 4y agoAndroid to me is better regarding of backward compatibility. Of course everything is easier since it has a much more flexible architecture, being based on bytecode and a JVM (contrary to iOS where applications are actual native binaries). The problem is that iOS is not all that well designed in that regards. > If you want a counter example, Windows is notorious for strange undocumented behaviors and special case handling. These are consequences of Microsofts choice to fully embrace backwards compatibility. This leads to a complicated platform that is continually more and more expensive to maintain, polish, and secure. Yes, and macOS (and iOS) a POSIX operating systems that maintains backward compatibility with something from the 80s. In that regards Windows is much more modern.
- arcticbull 4y agoHard disagree. Letting your platform stagnate by ossifying bugs and poor API choices is not what I want to see from any platform provider, and I for one am happy Apple is aggressively pruning the old to make room for the new and not allowing themselves to be beholden to past mistakes. I'm sorry this developer spent a couple hours hitting "build" until their app started working. If they'd done it earlier it would have been far less painful. Their sacrifice improves the community. I say this as an iOS engineer since like 2012 and a macOS developer since ... 2004? Carbon [1] should never be allowed to happen again. If you really want an old system, you should be allowed to virtualize it, but the world must move forward. [1] https://en.wikipedia.org/wiki/Carbon_(API) https://en.wikipedia.org/wiki/Carbon_(API)
- guhidalg 4y agoI don't understand this comment, do YOU actually ship breaking changes to your users and expect them to continue using your code or programs? Just because Apple does it doesn't mean it's actually a good idea.
- arcticbull 4y agoI, like anyone with a project sporting a major semver number >1 definitely ship breaking changes to my API customers.
- guhidalg 4y agoCan you not? I understand sometimes you absolutely need to change a signature or deprecate a feature, but that should absolutely be the exception and not the norm. Going back to the original post, I find it ridiculous that Apple regularly ships breaking changes (to their APIs) and developers just put up with it. In my minds, it's like being in an abusive relationship where you think if you try a little harder and stay up to date with the latest API version maybe Apple will treat you better (they won't). Apple can get away with it because they own the whole iOS/macOS tower top-to-bottom, but if you want to build trust with your users breaking changes should be the absolute last choice.
- scarface74 4y agoI know this isn’t an issue for the author. But for Apple to keep backward compatibility for ever, they would still be using die space for 32 bit support and have duplicate versions of every shared library both in memory and on disk. Last time I checked, because MS worships at the alter of backwards compatibility, there are nine ways to represent a string in Windows in C and you constantly have to convert between them depending on which API you’re calling. Every piece of code in your operating system is another vector for security vulnerabilities and something else to maintain and in Apple’s case port to a new processor. How slow has Microsoft been entering new markets because of the albatross of legacy code?
- desindol 4y agoNope, cull it all. I don't need zombie apps in store because one guy in Australia really likes it and I really don't need 10 years backward compatibility in OSes. This whole debate let ie6 go on for over 21 years... 21 years because businesses couldn't be asked to update their apps. Sorry if you need old shit emulate it.
- NavinF 4y agoI'd be on board if Apple allowed alternative app stores or internet downloads. Right now you either get curated or nothing.
- trap_goes_hot 4y agoI'm advocating for me, and users like me, not for the interests of a greedy corporation. I just want the things that I paid for to continue working. I don't want to re-buy things just so Apple can line their own pockets. I don't want to chase developers to provide updates, or if they have gone out of business, be stuck. I use technology as a tool to get stuff done. I don't need Apple to come and disable my investment in software. https://lkml.org/lkml/2012/3/8/495 https://lkml.org/lkml/2012/3/8/495
- desindol 4y agoIf you bought the apps they will still be available to download… You can use them at least for another 2 years with a ios16 device and probably later on. You just can’t buy them anymore if you really need spacebar heating it’s on you.
- trap_goes_hot 4y agoAs per Apple's support, you can't. https://discussions.apple.com/thread/252735331 https://discussions.apple.com/thread/252735331
- desindol 4y agoThat’s not apple support that’s the answer of your neighbor that made himself a little police badge…this is the support article… https://developer.apple.com/support/app-store-improvements/ https://developer.apple.com/support/app-store-improvements/
- newtritious 4y agoThis is just wrong. Some older APIs are simply insecure or inefficient for example, and of course there are things that apps must now ask permission for where they didn’t in the past. Apple can’t make these things compatible, nor should they try.
- jxramos 4y agoI learned of this working at Apple that they don’t really strive for backwards compatibility. I think I upgraded some internal tool and discovered this MO. This was in such a contrast to Microsoft where I heard crazy stories of incredibly old software still being able to run. What exactly is the overhead to achieving such astonishing backwards compatibility as Microsoft has?