The best counterargument I know to "Apple should support every app forever" is Windows.
Microsoft did that, and modulo 16-bit Windows 3.1 stuff still more or less do. The four or five different flavors of Control Panel UI, reaching all the way back to Windows 2000 in a totally inconsistent and barely comprehensible farrago, is the very least of what came of it.
The underpinnings of the OS are, by all appearances and accounts, just alike: so totally fragmented and incoherent that it'll take them another 20 years to do anything about that even if they start the day before yesterday. That makes it nigh impossible to do anything both new and worth having - hence Windows 8, 10, and I assume 11 as well as whatever the next at least three to five versions are called.
(I'll have to assume, because after Windows 10 I will never willingly buy another consumer product from Microsoft for the rest of my life.)
I don't see a counterargument here. "Microsoft did that". Yes, and they still lead the global market share for desktops and laptops. I would like to wager that most breaking API changes don't actually need to happen. If you look at the Win32 API they have some of the best forward thinking APIs that I've seen. That means you have a lot of weird stuff like having to pass the size of a the struct you're using to use a function, but it means that they can safely upgrade those functions without making a breaking change.
In an ideal world, you would think developers had learned how to make a stable API for an OS over the past 25 years. If that were true then we could nail down a stable API and have a well defined input and output, and then simply change the internals to make a non breaking change. I think backwards compatibility should be something developers prioritize, because it forces you to think about how to structure a program in a forward thinking manner and focus on clear requirements (easier said than done).
Anyways, I highly doubt windows would be the preferred gaming platform today if they didn't value this backwards compatibility. God knows that the OS sucks in so many areas. Most people would love to switch to something better, but the fact that windows makes it so easy to develop something and have it just work for 25 years clearly has a large impact on how many developers it attracts.
Put another way, who wants to develop for somebody that says "anything you make on my platform will be obsolete in 2-3 years?". And I can guarantee you, that mentality does not appeal to a lot of people.
> Yes, and they still lead the global market share for desktops and laptops.
Which means little, because no one is competing with them.
> who wants to develop for somebody that says "anything you make on my platform will be obsolete in 2-3 years"?
Anyone who wants access to Apple's base of high-value mobile users.
Note too that "obsolete" is inaccurate here. Those who've bought an app can continue to download and use it as long as it still runs on their devices, as I do with several apps that have aged out of purchasability. What's accurate is that devs need to update their app at least once every couple of years or so to keep it available to new customers. If I were running a business that depended significantly on app installs for revenue, I think that would be a reasonable bar to clear - at any rate, it's posed no problem for those businesses I've worked with that do.
> Anyone who wants access to Apple's base of high-value mobile users.
This high-value user is getting increasingly tired of Apple's shit and is actively looking for an alternative. Their stewardship of the App Store is increasingly abysmal. Their promotion of subscription pricing over other business models is anti-consumer. And "it just works" is increasingly a punchline (try using Time Machine in 2022).
Apple still has two advantages though: excellent hardware and a focus on privacy. The former was at-risk in the 2016-2020 keyboard era, but they have course-corrected somewhat. The latter seems increasingly at risk with moves like the recent CSAM kerfuffle.
Apple's once small but excellent stable of third party software has grown increasingly unpalatable. There are many more apps, sure, but when it seems like 9/10 are either outright scams or subscription services for things as simple as calculators and notes apps it's hard for me to look at their marketplace with anything other than disgust.
Well, I'm not about to try to argue you out of conclusions you've derived from analysis of your own experience; aside from the insult so implied, it would be a waste of both our time.
> Their promotion of subscription pricing over other business models is anti-consumer.
It's funny you should mention this, because Apple's compatibility treadmill is one of the biggest things driving developers towards the subscription model! If you have to put in work every year just to keep your app working on newer iOS versions, you have to collect revenue from your users every year to pay for that work.
Nobody wants to do the groundwork of a stable API. It’s a very difficult and thankless job because what people see are the brilliant apps built on top of it.
> Anyways, I highly doubt windows would be the preferred gaming platform today if they didn't value this backwards compatibility. God knows that the OS sucks in so many areas. Most people would love to switch to something better, but the fact that windows makes it so easy to develop something and have it just work for 25 years clearly has a large impact on how many developers it attracts.
This is interesting as a comment, because trying to run older games on Windows 10 is actually very difficult and is not tremendously successful without third party/fan patches & compatibility layers.
eg: take an at the time very popular game like The Sims 2, and try to run that on Windows 10. If you have a disc copy, SafeDisc/SecuROM probably no longer function and you can't start it at all (this affects lots of older titles).
Get past that and you'll get it to run, but it won't recognise your hardware and will lock itself to super low settings, and modern GPUs & modern GPU drivers have a tendency to make it just crash or render incorrectly. Fixing those requires fan patches or the use of DXVK.
Running it on CPUs with multiple cores can make it just crash.
This is just one game, but the story is pretty similar for a lot of games from 10+ years ago - there's an amount of backwards compatibility, but it's not nearly as rosy a story as it first appears, and older games seem to be a particularly bad case for it. There's a whole wiki about getting games to work right - https://www.pcgamingwiki.com
We can always find technical reasons and deficiencies in the original apps that explain why these games break, but "someone didn't write it right 15 years ago but it kinda worked then by accident" doesn't help the end user.
edit: oh, and from my personal experience, it's worse on Windows 11 than Win10!
Is there any good argument that backward compatibility is what holds Windows back compared to other Microsoft faults? So there are a few variants of the Control Panel. That should not have prevented MS from porting every setting that mattered to the new panel already at Windows 8 (while keeping the old panel for apps that used it), and it isn't clear why they did not.
I don't have time to dig it back up right now, but not too long ago there was a fairly detailed discussion, either on or linked from HN, of what the build process and organizational structure around Windows development is actually like, and the astonishing degree of friction it imposes. The tl;dr: as I recall it is that full RC builds via their bespoke hierarchical build scheme take weeks from start to finish, and organizational incentives produce a hoarding of features and areas of responsibility that massively further complicate actually shipping even the smallest thing because of the enormous range of stakeholders whose buy-in you need to get and maintain for even the smallest thing to actually become doable.
I regret I didn't save a link to that discussion, but I believe my summary here is accurate. If so, it's no surprise that nothing new and good seems ever to get done, because how can it? In that kind of environment it's such a Sisyphean misery to do anything that the only things worth doing are those you'll die if you don't.
Windows backward compatibility is something I cast a jealous eye on. It leads to the idea that a platform can actually transcend sand-castle transience and get to a place where it’s sufficiently stable to provide decades-long investments in tools.
How often do you need a new roof? That’s the level of intervention we should be shooting for. Maybe longer considering bits don’t literally rot or rust and all most software needs to run is compatible system calls.
Wouldn’t even stop those who decide they want to learn new apps every 5 years.
Oh, I'm not knocking back compat for its own sake! A hundred years from now, Windows will probably provide sufficient case-study fodder for at least half a yearlong course in engineering for it, assuming we've figured out by then how to teach in a systematic way what we actually do.
It's terrible how Microsoft took Windows and turned it into a piece of "modern" software. The constant drive to change, update, alter, combined with the unquenchable thirst for more data has driven Windows to be a polished turd on top of a solid core. The Windows 10 and 11 kernel designs are amazingly impressive but the "Windows" part of Windows seems to get worse and more inconsistent with every release.
I wish I could run the Windows 7 GUI, with all its settings and visuals, on top of the Windows 11 kernel. I didn't need hamburger menus and giant "touch-friendly" buttons everywhere, I needed better HiDPI support and less kernel-mode drivers that can take down the entire system, like Windows 10 and 11 delivered. Nobody wanted whatever the hell Microsoft Edge is these days, we wanted advancements like modern DirectX and HyperV.
I miss Aero and GUI elements that felt distinct from the background instead of this "modern" flat design. There's still no Linux theme that mimics Aero and I hate that. Now even GNOME is moving away from the old bolded style, going for the ugly flat libadwaita theme instead.
This narrative bothers me because it conflates API support and UI consistency and also doesn't ring true. Between Windows 95 and Windows 7, Microsoft was able to maintain pretty good consistency in its internal UI. Yes, some more pro-oriented parts of the OS were very old (regedit), but it was overall pretty cohesive. What happened next was a series of half-hearted attempts to change windows' UI paradigm. This created a set of competing UI frameworks and styles - Windows 7 and older "classic" style, Windows 8 "Metro" style, then the "somewhere in the middle" Windows 10 style, and finally the rounded Windows 11 style we see today. Oh and "ribbon" vs toolbar fits somewhere in there too.
I think the real problem is Microsoft has failed to commit to any of these, and each change has left behind a bunch of OS elements that were just rewritten and is hard to justify rewriting again.
Contrast this to macOS, which has had mostly consistent UI concepts since 10.1. The cosmetic appearance has changed somewhat, but usually not in a way that requires a rewrite. I still use macOS apps dating back to 2010 and they look fine. iOS had a big change with iOS 7, but has had a mostly consistent direction since then as well.
I think the problem is that Apple's decision here seems arbitrary. They're not culling apps that are broken because of API changes. They're culling apps that still work and look fine but just haven't been updated.
Apps that are broken because of API changes eventually cull themselves too, but much more messily. Especially so when Apple runs the storefront and at some point touches every return - most especially when the original dev is gone or doesn't answer support requests and process refunds, and Apple is the only recourse.
I don't know that I'd do it quite this way if it was my call to make, but I don't know what it's like to run the iOS app store, either. Presumably from that perspective this is likely to solve more problems than it creates. Maybe whoever made the decision is wrong about that, but are they more likely to be wrong than I am, with my more or less maximally uninformed perspective on how best to run the business they are actually running?
> Between Windows 95 and Windows 7
Windows 7 hit RTM in 2009.
> This narrative bothers me because it conflates API support and UI consistency
That's sort of fair, I think, but I don't run the Windows 10 or 11 kernel and libraries alone in a headless install; I'm stuck with their godawful UI, too. And their intolerable update scheme, as biddable as a cat but offering far less to make up for it. And WSL2, which is a shiny new wrapper over precisely the same experience I daily had with Virtualbox in 2008 - except where it somehow manages not to be as good. Others can go on, I'm sure, but I can't because that was as far as I got before I gave up and got a Mac Mini to do that work on instead.
I'll grant that the back compat counts for something, sure. I've worked with lots of folks in other engineering disciplines who care a lot about it because they really do still use software from 2002 - usually with hardware that's even older. Does it count for as much as every Windows user seems to have to pay for it? That I'm not so sure about.
I'll grant, too, that WSL2 makes web development a lot more accessible to a lot more people than ever before, especially folks who are just starting and benefit most from being met where they are. No matter how lacking in comfort I personally may find the way they go about it, I wouldn't give that expansion of access up for anything.
But no one I know who uses Windows 10 likes it - and I'm not a member of Silicon Valley-style or any other monoculture, so that "no one" actually counts for something when I say it, and it really is no one. Ultimately, for most such folks I've talked with about this, their reasons are mostly similar to mine, or at least overlapping.
I think I have some sense of why that is, and I've explained my view, but maybe I'm wrong about it; I don't suppose I really know that much more about the Windows business's culture than I do that of the App Store. Could be they know exactly what they're doing, but it sure doesn't look that way to me.
> I don't know that I'd do it quite this way if it was my call to make, but I don't know what it's like to run the iOS app store, either. Presumably from that perspective this is likely to solve more problems than it creates.
In pretty much every topic about the App Store, I feel like we a always converge to the same issue : yes Apple is forced to do things (like remove old apps or comply to authoritarian governments) but they put themselves in those situations because they don’t want to lose control over app installation on iOS devices.
On Windows, Microsoft could remove an app for any reason they would : there would be minimal impact on users and developers. Developers could choose to update their apps (to comply to new APIs if necessary) or to let them as abandonware for anyone to rediscover them in decades, even if it means some hacking or restoring an old environment : it’s technically doable.
When Apple removes your app from the App Store, it’s gone basically forever.
That's essentially true, and it is a real tradeoff. Which side of it is worth more to a given person is probably more of a value judgment than anything, I suspect.
Aside from forced updates, and a few bugs that may be as much the proprietary app's fault as the OS, I don't see an issue here. When I use Windows, it generally works.
It's not as nice for developers as mainstream Linux, where you can just build your deb package with a dependency on PyQt and the system can figure it out, but from a user perspective... stuff seems to mostly just work.
Linux Mint is just a bit better in recent years, but Windows is mostly OK and still does some stuff better than others.
I think the point this article proves is actually not that apps have a limited lifetime or that breakage should be expected. It proves that mobile APIs are terrible designed and each new version comes with its own terrible design.
Microsoft has gone above and beyond to keep applications working properly but in many instances where the APIs were used properly, user mode applications are nearly impossible to make incompatible. Basic system APIs were standardized almost thirty years ago and to this very day you can take a Windows 3 Hello World program, compile it, and run it.
If I can run twenty year old Windows applications on Windows 11 but I can't run a calculator that hasn't been updated for two years, the problem is clearly not with the concept or with development. iOS APIs, as well as Android APIs, have been atrocious from the beginning and every release deprecates some of that terrible, badly-designed old behavior. The biggest breakage for userland code was that the assumption that all code was running as an admin was challenged way back in 2006 with the release of Vista, and even that was easy to overcome by marking the shortcut as an admin only program.
Someone should look into getting Wine running on mobile (well, Android, iOS probably wouldn't allow such a subsystem to execute) so we can run some Windows CE/Windows Mobile/Windows Phone? applications. The Win32 API has been the most stable API in the history of consumer computers. It's a real shame that old Microsoft, the comic book villain of the tech industry before Jeff Bezos made his first billion dollars, is outperforming modern API designers. This is not a tragedy of lazy app developers littering the app store with their cruft, this is a story of badly management by the surviving mobile tech giants.
UNIX/POSIX has had an even better track record, but Linux is in a constant state of helper application API shift, be it X11 vs Wayland, PulseAudio vs Pipewire, systemd vs initv. The parts that count for the experience, like GUI elements, are all non-standard with their own tastes and preferences, which is Linux's power and weakness. Yes, Windows 8+ and recent macOS have been going more "move fast and break things", but both of those platforms still maintain their old APIs without too much of a sweat. The real challenge is the drive model and other kinds of superprivileged code, and Microsoft deciding it needs a new GUI API every time the CEO sneezes.
Politics aside, Microsoft does some things light years better than anyone.
Linux is my preferred OS, but most of my favorite features are the ones people accuse of being "Too Windows like".
I kinda would have liked to see what would happen if Linux Standard Base had really taken off.
Move fast and break things sucks. Modern windows mostly sucks because of forced updates, which are in a way kind of the same idea.
Tech should work. Every time you turn on the computer you should.be confident it will work, even if you updated yesterday after not updating for three months. Even if there's a hardware issue it should still work if software can work around.
Reliability should not be sacrificed for beauty or simplicity or keeping developers from getting bored.
Pipewire does it right. It's backwards compatibile with Pulse/JACK/ALSA. Just like systemd is partly backwards compatibile with sysvinit.
this is why you seperate out the software makers from the hardware makers....it requires the other side to play niceley....apple is a bully and sadist.
Apple, if you don't want to support old apps, let people build apps with APIs that are actually forwards compatible and designed with thought. The web!
And no, not some web view wrapper app. A legitimate web only app.
iOS is 15 years old now! It's pretty bad engineering to make breaking changes 15 years in a row. If they can't create a stable subset of their platform by now, will they ever have the competency to design something stable?
Meanwhile, a website from 20 years ago will still run just fine.
The software written for the earliest versions of iOS are now basically lost to history. The software people run on iOS today will probably last for even less time. Decades from now, people will have virtually no insight into what it was we did on our phones all that time.
In comparison, the archived web will survive as long as someone maintains some version of some browser.
In the future, people might wonder why the mobile web was so limited on iOS. What they'll observe is the afterimage of the native apps whose APIs received Apple's attention instead, for all the good that will have done.
I wouldn’t care about this change if App Store developers could host apps outside of the store. It would be fine if “old” versions of an app could only be found on a companies website instead of being given “free” advertising through the store.
However since this isn’t true, then I feel this change is unfair.
It’s unfair to developers because of the reasons in the article. It’s unfair to customers because suddenly their older phones are neutered by having less apps.
It’s a good example of why it’s not good to have a single company dictate the use of a platform.
I think what this argument misses is the complete monopoly Apple has over distribution. This is not about backwards compatibility and tech debt, this is about distribution.
Yes, you can keep an old device around to use old apps or play old games. But to do that you must have preinstalled the old app, and that device can never be broken or reset, lest you lose the app.
The analogy to VHS is not a bad one, but when VHS players (and DVDs, and BluRays) stopped being current, all the old players and tapes didn’t stop working. That is the power that Apple has right now - to remove old apps from existence even for devices and operating systems that support them completely.
Same as the argument about the Mac - sure, new macs don’t run PPC software. But old ones do. And importantly, I can still install old software on an old Mac.
Remember the reports of phones with Flappy Bird selling for a premium of hundreds and hundreds of dollars? For a digital good that has no nominal cost, that shouldn’t be possible. It is only possible because of Apples monopoly on app distribution for the iPhone. You will not see a premium on a Windows 3.1 machine with Doom preinstalled, or a DVD player that comes with a copy of Lord of the Rings in it. Only Apple can do that, and it’s that power that people are upset by.
But those old apps are still available for download to those who have purchased them before. So doesn’t that mean that Apple needs to keep the support for those old SDKs? If so, these SDKs can’t be the reason for this old app purge (the point of this article).
This is a really good point. The only explanation I can come up with is that while past purchases are at least visible to those that bought them, it could be that when they try to install it, they'll get an error prompting them to alert the developer that it needs to be updated. This seems like a poor UX, but I can imagine someone inside Apple pointing out the optics of removing folks' past purchases in the context of the current "only one app store" debate, so this might have been a compromise they settled on.
If this is the situation, one way Apple could make it seem less egregious is to space it out over time by performing the culling of apps now, and altering the SDKs in 6-12 months or so, which would then trigger the breakage for past purchases. Folks will feel comfortable defending that because everyone had warning that change was afoot, and they'll likely make the the case that users that lost their old apps can't expect them to work forever. Or, in the words of this post, "old apps sometimes die".
One problem with the "old apps are inherently bad and must be updated" mentality is that it accelerates the obsolescence of old devices. It used to be only Apple ones, where if the latest version of iOS available on the device is too old, apps that have always worked on that device can no longer be [re]installed because meanwhile they've been updated and now require a later version of the OS. Currently an iPhone 6 that we have as a child's toy is in that situation, with some apps no longer installable.
Android was better - you could install modern "Play Services" on the most ancient devices and then modern apps would work, albeit slowly sometimes. But that seems to have changed. Now we also see "not compatible with your device" on lightweight apps that have no real reason not to work on that hardware.
Of course we can afford to just move to a later device for the grownups. But we have a child who "wears out" devices at an alarming rate.
35 comments
[ 3.5 ms ] story [ 79.4 ms ] threadMicrosoft did that, and modulo 16-bit Windows 3.1 stuff still more or less do. The four or five different flavors of Control Panel UI, reaching all the way back to Windows 2000 in a totally inconsistent and barely comprehensible farrago, is the very least of what came of it.
The underpinnings of the OS are, by all appearances and accounts, just alike: so totally fragmented and incoherent that it'll take them another 20 years to do anything about that even if they start the day before yesterday. That makes it nigh impossible to do anything both new and worth having - hence Windows 8, 10, and I assume 11 as well as whatever the next at least three to five versions are called.
(I'll have to assume, because after Windows 10 I will never willingly buy another consumer product from Microsoft for the rest of my life.)
In an ideal world, you would think developers had learned how to make a stable API for an OS over the past 25 years. If that were true then we could nail down a stable API and have a well defined input and output, and then simply change the internals to make a non breaking change. I think backwards compatibility should be something developers prioritize, because it forces you to think about how to structure a program in a forward thinking manner and focus on clear requirements (easier said than done).
Anyways, I highly doubt windows would be the preferred gaming platform today if they didn't value this backwards compatibility. God knows that the OS sucks in so many areas. Most people would love to switch to something better, but the fact that windows makes it so easy to develop something and have it just work for 25 years clearly has a large impact on how many developers it attracts.
Put another way, who wants to develop for somebody that says "anything you make on my platform will be obsolete in 2-3 years?". And I can guarantee you, that mentality does not appeal to a lot of people.
Which means little, because no one is competing with them.
> who wants to develop for somebody that says "anything you make on my platform will be obsolete in 2-3 years"?
Anyone who wants access to Apple's base of high-value mobile users.
Note too that "obsolete" is inaccurate here. Those who've bought an app can continue to download and use it as long as it still runs on their devices, as I do with several apps that have aged out of purchasability. What's accurate is that devs need to update their app at least once every couple of years or so to keep it available to new customers. If I were running a business that depended significantly on app installs for revenue, I think that would be a reasonable bar to clear - at any rate, it's posed no problem for those businesses I've worked with that do.
This high-value user is getting increasingly tired of Apple's shit and is actively looking for an alternative. Their stewardship of the App Store is increasingly abysmal. Their promotion of subscription pricing over other business models is anti-consumer. And "it just works" is increasingly a punchline (try using Time Machine in 2022).
Apple still has two advantages though: excellent hardware and a focus on privacy. The former was at-risk in the 2016-2020 keyboard era, but they have course-corrected somewhat. The latter seems increasingly at risk with moves like the recent CSAM kerfuffle.
Apple's once small but excellent stable of third party software has grown increasingly unpalatable. There are many more apps, sure, but when it seems like 9/10 are either outright scams or subscription services for things as simple as calculators and notes apps it's hard for me to look at their marketplace with anything other than disgust.
It's funny you should mention this, because Apple's compatibility treadmill is one of the biggest things driving developers towards the subscription model! If you have to put in work every year just to keep your app working on newer iOS versions, you have to collect revenue from your users every year to pay for that work.
This is interesting as a comment, because trying to run older games on Windows 10 is actually very difficult and is not tremendously successful without third party/fan patches & compatibility layers.
eg: take an at the time very popular game like The Sims 2, and try to run that on Windows 10. If you have a disc copy, SafeDisc/SecuROM probably no longer function and you can't start it at all (this affects lots of older titles).
Get past that and you'll get it to run, but it won't recognise your hardware and will lock itself to super low settings, and modern GPUs & modern GPU drivers have a tendency to make it just crash or render incorrectly. Fixing those requires fan patches or the use of DXVK.
Running it on CPUs with multiple cores can make it just crash.
This is just one game, but the story is pretty similar for a lot of games from 10+ years ago - there's an amount of backwards compatibility, but it's not nearly as rosy a story as it first appears, and older games seem to be a particularly bad case for it. There's a whole wiki about getting games to work right - https://www.pcgamingwiki.com
We can always find technical reasons and deficiencies in the original apps that explain why these games break, but "someone didn't write it right 15 years ago but it kinda worked then by accident" doesn't help the end user.
edit: oh, and from my personal experience, it's worse on Windows 11 than Win10!
I don't have time to dig it back up right now, but not too long ago there was a fairly detailed discussion, either on or linked from HN, of what the build process and organizational structure around Windows development is actually like, and the astonishing degree of friction it imposes. The tl;dr: as I recall it is that full RC builds via their bespoke hierarchical build scheme take weeks from start to finish, and organizational incentives produce a hoarding of features and areas of responsibility that massively further complicate actually shipping even the smallest thing because of the enormous range of stakeholders whose buy-in you need to get and maintain for even the smallest thing to actually become doable.
I regret I didn't save a link to that discussion, but I believe my summary here is accurate. If so, it's no surprise that nothing new and good seems ever to get done, because how can it? In that kind of environment it's such a Sisyphean misery to do anything that the only things worth doing are those you'll die if you don't.
How often do you need a new roof? That’s the level of intervention we should be shooting for. Maybe longer considering bits don’t literally rot or rust and all most software needs to run is compatible system calls.
Wouldn’t even stop those who decide they want to learn new apps every 5 years.
I wish I could run the Windows 7 GUI, with all its settings and visuals, on top of the Windows 11 kernel. I didn't need hamburger menus and giant "touch-friendly" buttons everywhere, I needed better HiDPI support and less kernel-mode drivers that can take down the entire system, like Windows 10 and 11 delivered. Nobody wanted whatever the hell Microsoft Edge is these days, we wanted advancements like modern DirectX and HyperV.
I miss Aero and GUI elements that felt distinct from the background instead of this "modern" flat design. There's still no Linux theme that mimics Aero and I hate that. Now even GNOME is moving away from the old bolded style, going for the ugly flat libadwaita theme instead.
From your keyboard to God's inbox...
I think the real problem is Microsoft has failed to commit to any of these, and each change has left behind a bunch of OS elements that were just rewritten and is hard to justify rewriting again.
Contrast this to macOS, which has had mostly consistent UI concepts since 10.1. The cosmetic appearance has changed somewhat, but usually not in a way that requires a rewrite. I still use macOS apps dating back to 2010 and they look fine. iOS had a big change with iOS 7, but has had a mostly consistent direction since then as well.
I think the problem is that Apple's decision here seems arbitrary. They're not culling apps that are broken because of API changes. They're culling apps that still work and look fine but just haven't been updated.
I don't know that I'd do it quite this way if it was my call to make, but I don't know what it's like to run the iOS app store, either. Presumably from that perspective this is likely to solve more problems than it creates. Maybe whoever made the decision is wrong about that, but are they more likely to be wrong than I am, with my more or less maximally uninformed perspective on how best to run the business they are actually running?
> Between Windows 95 and Windows 7
Windows 7 hit RTM in 2009.
> This narrative bothers me because it conflates API support and UI consistency
That's sort of fair, I think, but I don't run the Windows 10 or 11 kernel and libraries alone in a headless install; I'm stuck with their godawful UI, too. And their intolerable update scheme, as biddable as a cat but offering far less to make up for it. And WSL2, which is a shiny new wrapper over precisely the same experience I daily had with Virtualbox in 2008 - except where it somehow manages not to be as good. Others can go on, I'm sure, but I can't because that was as far as I got before I gave up and got a Mac Mini to do that work on instead.
I'll grant that the back compat counts for something, sure. I've worked with lots of folks in other engineering disciplines who care a lot about it because they really do still use software from 2002 - usually with hardware that's even older. Does it count for as much as every Windows user seems to have to pay for it? That I'm not so sure about.
I'll grant, too, that WSL2 makes web development a lot more accessible to a lot more people than ever before, especially folks who are just starting and benefit most from being met where they are. No matter how lacking in comfort I personally may find the way they go about it, I wouldn't give that expansion of access up for anything.
But no one I know who uses Windows 10 likes it - and I'm not a member of Silicon Valley-style or any other monoculture, so that "no one" actually counts for something when I say it, and it really is no one. Ultimately, for most such folks I've talked with about this, their reasons are mostly similar to mine, or at least overlapping.
I think I have some sense of why that is, and I've explained my view, but maybe I'm wrong about it; I don't suppose I really know that much more about the Windows business's culture than I do that of the App Store. Could be they know exactly what they're doing, but it sure doesn't look that way to me.
In pretty much every topic about the App Store, I feel like we a always converge to the same issue : yes Apple is forced to do things (like remove old apps or comply to authoritarian governments) but they put themselves in those situations because they don’t want to lose control over app installation on iOS devices.
On Windows, Microsoft could remove an app for any reason they would : there would be minimal impact on users and developers. Developers could choose to update their apps (to comply to new APIs if necessary) or to let them as abandonware for anyone to rediscover them in decades, even if it means some hacking or restoring an old environment : it’s technically doable.
When Apple removes your app from the App Store, it’s gone basically forever.
It's not as nice for developers as mainstream Linux, where you can just build your deb package with a dependency on PyQt and the system can figure it out, but from a user perspective... stuff seems to mostly just work.
Linux Mint is just a bit better in recent years, but Windows is mostly OK and still does some stuff better than others.
https://news.ycombinator.com/item?id=31135972
Microsoft has gone above and beyond to keep applications working properly but in many instances where the APIs were used properly, user mode applications are nearly impossible to make incompatible. Basic system APIs were standardized almost thirty years ago and to this very day you can take a Windows 3 Hello World program, compile it, and run it.
If I can run twenty year old Windows applications on Windows 11 but I can't run a calculator that hasn't been updated for two years, the problem is clearly not with the concept or with development. iOS APIs, as well as Android APIs, have been atrocious from the beginning and every release deprecates some of that terrible, badly-designed old behavior. The biggest breakage for userland code was that the assumption that all code was running as an admin was challenged way back in 2006 with the release of Vista, and even that was easy to overcome by marking the shortcut as an admin only program.
Someone should look into getting Wine running on mobile (well, Android, iOS probably wouldn't allow such a subsystem to execute) so we can run some Windows CE/Windows Mobile/Windows Phone? applications. The Win32 API has been the most stable API in the history of consumer computers. It's a real shame that old Microsoft, the comic book villain of the tech industry before Jeff Bezos made his first billion dollars, is outperforming modern API designers. This is not a tragedy of lazy app developers littering the app store with their cruft, this is a story of badly management by the surviving mobile tech giants.
UNIX/POSIX has had an even better track record, but Linux is in a constant state of helper application API shift, be it X11 vs Wayland, PulseAudio vs Pipewire, systemd vs initv. The parts that count for the experience, like GUI elements, are all non-standard with their own tastes and preferences, which is Linux's power and weakness. Yes, Windows 8+ and recent macOS have been going more "move fast and break things", but both of those platforms still maintain their old APIs without too much of a sweat. The real challenge is the drive model and other kinds of superprivileged code, and Microsoft deciding it needs a new GUI API every time the CEO sneezes.
[0] https://dl.winehq.org/wine-builds/android/
Linux is my preferred OS, but most of my favorite features are the ones people accuse of being "Too Windows like".
I kinda would have liked to see what would happen if Linux Standard Base had really taken off.
Move fast and break things sucks. Modern windows mostly sucks because of forced updates, which are in a way kind of the same idea.
Tech should work. Every time you turn on the computer you should.be confident it will work, even if you updated yesterday after not updating for three months. Even if there's a hardware issue it should still work if software can work around.
Reliability should not be sacrificed for beauty or simplicity or keeping developers from getting bored.
Pipewire does it right. It's backwards compatibile with Pulse/JACK/ALSA. Just like systemd is partly backwards compatibile with sysvinit.
Edit: Why downvotes? There have barely been new apps in these categories. What’s in the store is years old.
And no, not some web view wrapper app. A legitimate web only app.
iOS is 15 years old now! It's pretty bad engineering to make breaking changes 15 years in a row. If they can't create a stable subset of their platform by now, will they ever have the competency to design something stable?
Meanwhile, a website from 20 years ago will still run just fine.
In comparison, the archived web will survive as long as someone maintains some version of some browser.
In the future, people might wonder why the mobile web was so limited on iOS. What they'll observe is the afterimage of the native apps whose APIs received Apple's attention instead, for all the good that will have done.
However since this isn’t true, then I feel this change is unfair.
It’s unfair to developers because of the reasons in the article. It’s unfair to customers because suddenly their older phones are neutered by having less apps.
It’s a good example of why it’s not good to have a single company dictate the use of a platform.
Yes, you can keep an old device around to use old apps or play old games. But to do that you must have preinstalled the old app, and that device can never be broken or reset, lest you lose the app.
The analogy to VHS is not a bad one, but when VHS players (and DVDs, and BluRays) stopped being current, all the old players and tapes didn’t stop working. That is the power that Apple has right now - to remove old apps from existence even for devices and operating systems that support them completely.
Same as the argument about the Mac - sure, new macs don’t run PPC software. But old ones do. And importantly, I can still install old software on an old Mac.
Remember the reports of phones with Flappy Bird selling for a premium of hundreds and hundreds of dollars? For a digital good that has no nominal cost, that shouldn’t be possible. It is only possible because of Apples monopoly on app distribution for the iPhone. You will not see a premium on a Windows 3.1 machine with Doom preinstalled, or a DVD player that comes with a copy of Lord of the Rings in it. Only Apple can do that, and it’s that power that people are upset by.
If this is the situation, one way Apple could make it seem less egregious is to space it out over time by performing the culling of apps now, and altering the SDKs in 6-12 months or so, which would then trigger the breakage for past purchases. Folks will feel comfortable defending that because everyone had warning that change was afoot, and they'll likely make the the case that users that lost their old apps can't expect them to work forever. Or, in the words of this post, "old apps sometimes die".
Android was better - you could install modern "Play Services" on the most ancient devices and then modern apps would work, albeit slowly sometimes. But that seems to have changed. Now we also see "not compatible with your device" on lightweight apps that have no real reason not to work on that hardware.
Of course we can afford to just move to a later device for the grownups. But we have a child who "wears out" devices at an alarming rate.