[HN Gopher] Outdated vs. Complete: In defense of apps that don't...
       ___________________________________________________________________
        
       Outdated vs. Complete: In defense of apps that don't need updates
        
       Author : ingve
       Score  : 301 points
       Date   : 2022-09-26 19:13 UTC (3 hours ago)
        
 (HTM) web link (vivqu.com)
 (TXT) w3m dump (vivqu.com)
        
       | crazygringo wrote:
       | Hate away, but in this case I'm on Apple's side here. The author
       | may be the exception where no updates are actually needed, but
       | that does seem to be the exception. In my experience, most iOS
       | apps I've tried downloading that were last updated 2-3 years ago
       | simply don't work.
       | 
       | Apple requires an update in the past 3 years or else a minimum
       | threshold of downloads. Presumably the latter is required so
       | there are simply enough newer reviews to indicate whether it's
       | broken (lots of 1-star) or not. These seem like pretty reasonable
       | indicators that it's still working.
       | 
       | > _My old code simply did not work anymore with the latest
       | versions of Xcode. So I had to spend four hours on Saturday
       | upgrading all my platform libraries simply so that I could
       | compile the damn app._
       | 
       | Honestly that's just good hygiene. Because if they waited another
       | 2 years, it might have taken 4 days to get the thing working. New
       | versions of libraries come with all sorts of improvements,
       | whether it's for accessibility or security or a hundred other
       | things.
       | 
       | It doesn't seem unreasonable to me that if you're maintaining
       | software in a public app store, you should be able to compile it
       | semi-regularly with new versions of packages.
        
         | lapcat wrote:
         | > Presumably the latter is required so there are simply enough
         | newer reviews to indicate whether it's broken (lots of 1-star)
         | or not. These seem like pretty reasonable indicators that it's
         | still working.
         | 
         | You think App Store ratings and reviews are accurate?
         | 
         | They're incredibly easy to fake and buy. Scam artists are doing
         | it all the time.
        
         | masklinn wrote:
         | > In my experience, most iOS apps I've tried downloading that
         | were last updated 2-3 years ago simply don't work.
         | 
         | Not sure what category of software that was but e.g. for games
         | it's usually not an issue. I used to have a bunch of games and
         | game-adjacent software from the first AppStore year, we're
         | talking the time when you'd pay a buck for a virtual rain stick
         | which's use the accelerometer.
         | 
         | They kept working until the 64b switch killed them. Rebuilding
         | them would undoubtedly have been difficult for the author even
         | if they'd not moved away from them, but because those'd use
         | only minimal is features (raw-ish inputs, and setting up
         | opengl) there's basically nothing to break which would not be
         | flagrant.
        
           | musicale wrote:
           | I also had many games killed off by the 64-bit switch (on
           | both iOS and macOS), but even after that a number of games
           | that still worked were removed from the app store.
        
             | TedDoesntTalk wrote:
             | Games are definitely "complete" after a while., sometimes
             | on first release. If they continue to work on the OS, the
             | only reason Apple is dropping them is because they want the
             | developer to give them another $99. The busywork this
             | creates is a headache for everyone except Apple.
        
               | arcticbull wrote:
               | $99 from a few developers is meaningless to both Apple
               | and the developer of a game. It's like 40 minutes of
               | wages for an average engineer. Apple doesn't want to have
               | to support old bugs and poor API choices in perpetuity.
        
               | TedDoesntTalk wrote:
               | What makes you think it's only a few and not large scale?
               | And why would forcing a developer to update their
               | feature-complete game result in stopping support of "old
               | bugs and poor API choices"? There is no requirement to
               | update the API level. Read the article.
        
               | arcticbull wrote:
               | Simply rebuilding and resubmitting the app with a new
               | version of Xcode will yield a significantly different
               | binary artifact today than a few years ago.
               | 
               | It isn't necessarily about API level, it could be (from
               | time to time) about going from arm32 to arm64, to adding
               | better-optimized builds for new microarchitectures,
               | getting bitcode that's recompiled by Apple to support app
               | thinning. Apple may deprecate or remove APIs from time to
               | time that should also be addressed.
               | 
               | That there wasn't necessarily, specifically, a change
               | this time doesn't mean that this program isn't about
               | supporting that over time. It's much easier to make such
               | changes if developers are in the habit of periodically
               | making updates vs. being told to make a breaking update
               | out of the blue.
        
               | scarface74 wrote:
               | You really think the $99 a year from developers would
               | incentivize anything?
               | 
               | And before you quote the number of "registered
               | developers", all of those aren't _paying_ developers.
        
               | TedDoesntTalk wrote:
               | 1,000,000 paying developers is $99 million in revenue --
               | every year. This is easily an incentive for Apple.
        
               | scarface74 wrote:
               | In your grandparent comment, you said it costs everyone
               | but Apple. Apple has manual reviewers. It would be much
               | cheaper if all those apps didn't have to go through the
               | app review process. You think Apple changes their APIs
               | willy nilly just to collect $99 a year?
        
         | nemothekid wrote:
         | > _Apple tells me I could have avoided all this pain if my app
         | was being downloaded above a "minimum download threshold". The
         | policy is completely silent on what this download number needs
         | to be to avoid getting flagged as outdated-is it hundreds or
         | thousands or hundreds of thousands of downloads a month?_
         | 
         | I think this is a fair policy as well. From Apple's POV how can
         | they ensure many apps in the app store still work on the latest
         | phones? If the developer has been updating the app, they can be
         | relatively sure. If the developer hasn't, but the app continues
         | to be downloaded with success they can also be sure the app
         | works. But for an app the developer has (seemingly) abandoned
         | and and nobody downloads? It's most likely broken. You could
         | argue that that Apple should test the app before sending such a
         | message but I think it's probably likely that (1) the majority
         | of apps that are abandoned are broken and (2) the developers
         | don't actually respond. It's easier to tell all the devs to get
         | up to speed and those that actually care will submit the app
         | for review (even if all you have to do is change a version
         | number).
         | 
         | What actually sucks is if you have to rewrite parts of your app
         | because even though the iPhone 22 Pro Max Plus w/ Turbo &
         | Knuckles supports the same SDKs as the iPhone 4, Apple won't
         | let you resubmit your app as is.
        
           | yamtaddle wrote:
           | It also makes sense because it might not be a good idea to
           | apply the same criteria everywhere. In an app category with
           | 10,000,000 downloads per month, an app pulling 500 downloads
           | a month might be a drop-worthy also-ran that's mostly just
           | directing a few people away from better options & cluttering
           | results. In a category with 1,000 downloads a month, the app
           | with 500 dl/m is likely _the_ best and most-popular app in
           | that category and dropping it would be tantamount to dropping
           | the whole category.
        
         | bambax wrote:
         | Backward compatibility is Apple's job, not developers.
         | 
         | (This debate is as old as computers, but I'm strongly in
         | Raymond Chen's camp.)
        
           | musicale wrote:
           | I 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 wrote:
             | > 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 wrote:
               | Android 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 wrote:
           | Hard 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)
        
             | guhidalg wrote:
             | I 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 wrote:
               | I, like anyone with a project sporting a major semver
               | number >1 definitely ship breaking changes to my API
               | customers.
        
               | guhidalg wrote:
               | Can 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.
        
           | desindol wrote:
           | Nope, 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.
        
             | trap_goes_hot wrote:
             | I'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
        
             | NavinF wrote:
             | I'd be on board if Apple allowed alternative app stores or
             | internet downloads. Right now you either get curated or
             | nothing.
        
           | newtritious wrote:
           | This 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.
        
           | scarface74 wrote:
           | I 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?
        
           | naniwaduni wrote:
           | Worse, developers need _forward_ compatibility. Predicting
           | the future is widely considered harder than inspecting the
           | past.
        
             | musicale wrote:
             | In 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 wrote:
           | Unreasonable backward compatibility is how we end up with
           | windows vista
        
             | musicale wrote:
             | Windows 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 wrote:
               | The 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 wrote:
               | > 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. ;-)
        
         | matchagaucho wrote:
         | Agreed. Apple is not asking for more features, but a recompile
         | of the app against the latest iOS and SDKs.
         | 
         | That's generally a good practice as buffer overflows and all
         | kinds of entropy accumulates on an OS.
        
         | kkfx wrote:
         | Mh, changing the "ecosystem" so much means the ecosystem is not
         | stable, witch means is a crappy mass of bugs/a working
         | prototype not a commercial product.
         | 
         | Oh, I like of course _innovation_ but if we talk about mobile
         | stuff, so something tied by choice to hw, their real update
         | rates behind security related patches, should be very calm.
         | 
         | Anything must evolve to be alive, but also anything must NOT be
         | stressed to change just some crap to prove that something have
         | changed. That's not evolution.
         | 
         | Beside that, I fail to see any tangible improvement in ALL
         | modern software to a point that I almost quit using mobile
         | crapware of any vendor and kind, for real. I can't avoid it
         | completely, unfortunately, but that's is.
        
           | newtritious wrote:
           | Quite a few changes over the past few years have been
           | reducing access to data that can be used for fingerprinting,
           | and requiring apps to ask permission for access to user data.
           | 
           | This is squarely the fault of developers abusing the users
           | trust.
        
         | alpaca128 wrote:
         | > In my experience, most iOS apps I've tried downloading that
         | were last updated 2-3 years ago simply don't work.
         | 
         | The linked article already answered this:                   For
         | instance, the App Store could factor in:           - App Store
         | ratings and reviews           - Active developer membership
         | - Historical behavior of the developer (ie. updating other
         | apps)           - Number of crashes           - Number of
         | active sessions, especially for the latest devices and platform
         | versions         These are all metrics that the Apple already
         | automatically tracks
        
           | scarface74 wrote:
           | Apple just like most sane platforms have a deprecation
           | policy.
           | 
           | First they deprecate APIs and then remove support entirely.
           | She said herself that she had to make changes to update her
           | code to the latest SDK.
        
         | fny wrote:
         | You know what doesn't have this problem? Web apps. I have a
         | site up from 2001 that still functions perfectly.
        
           | stonemetal12 wrote:
           | I doubt it. Web browsers of today can't pass the old acid
           | tests because the spec changed.
        
       | t_mann wrote:
       | Frankly, isn't that just what you signed up for as a mobile
       | developer? The WorldAnimals app would probably have worked
       | perfectly fine as a web app, but then the author would have had
       | to figure out payments and discoverability himself. That's what
       | the App Store offers, and in exchange Apple gets tremendous power
       | to tweak every nook and cranny to maximise their profit. I'm sure
       | Apple has good commercial reasons for the process that the author
       | has experienced.
       | 
       | I think the real answer here isn't to try and beg Apple to be
       | nicer to the small fish, but to instead use the "old", non-walled
       | version of the web.
        
       | NaOH wrote:
       | As a user, there are two issues I could face from this type of
       | culling. First, I keep older devices--maybe just for RSS or news
       | apps or podcasts or in-car music or video players. Relatively
       | simple, straightforward uses. If I have additional uses in mind,
       | apps won't be available. Similarly, the same would be true for
       | someone who wants to let a child use an older device for
       | something like games.
       | 
       | The other issue is the number of iOS hiccups which can lead to
       | support documents saying to reinstall the OS. Doing that will
       | make older, removed apps unavailable after reinstallation of the
       | OS if the user relies on iCloud backups. This risk necessitates
       | iTunes backups to insure such apps remain available after
       | reinstalling the OS.
       | 
       | I doubt a situation like this contradicts the overall value of
       | the culling. But I do know it has an effect on me and there are
       | some people--certainly, a small number--who will lose apps
       | because of the shortcomings in iCloud backups.
        
       | alberth wrote:
       | Don't forget "Feature Complete".
       | 
       | It's a real thing especially when you're building something under
       | the unix philosophy of "do one thing only, really well".
        
       | dkarl wrote:
       | > The impact of the App Store Improvement policy is nonexistent
       | for VC-funded companies.
       | 
       | Not true. More often than not, our iOS releases get delayed hours
       | if not days, while our long-suffering iOS lead patiently walks
       | yet another green reviewer through the policies and our previous
       | interactions with reviewers to convince them that our app is in
       | compliance. Among other things, our app repeatedly gets flagged
       | for failing to comply with rules that don't apply to it. This is
       | usually resolved with a simple message to the reviewer, but
       | depending on the turnaround, that can effectively add a day to
       | the time it takes to get a bug fix out.
       | 
       | Dealing with these bogus issues probably accounts for 5% of the
       | productive time of our iOS lead. And this is despite keeping our
       | release cadence slow (every two weeks except for the most
       | critical bugs) and after we've made many reasonable low-to-medium
       | effort changes in our app to stop triggering false positives in
       | their tools.
       | 
       | God help us if Apple ever went the Google route. Apple reviewers
       | might be inexperienced and undertrained, but at least they're
       | human and capable of talking through issues.
        
       | ineedasername wrote:
       | _> I think the asymmetry of App Review is still lost on Apple.
       | For indie developers our hopes and dreams (and sometimes our
       | finances) hang in the balance, for the App Review team it's just
       | another app rejection among tens of thousands. I know they think
       | they get it, they just don't._
       | 
       | I really don't think it's lost on Apple or the app review team.
       | They simply have no incentive to change and a captive audience in
       | both developers & app users/buyers. Better customer service (to
       | devs) on the app review process when there are issues, and
       | continuing support for older SDK's, cost time and money and Apple
       | does not see the value in that investment.
       | 
       | Absent competition there's also no pressure to change this.
       | There's effectively a duopoly in mobile software between Apple &
       | Google. They don't even need to explicitly communicate with each
       | other to act as a cartel, they just need to silently follow each
       | other's lead.
       | 
       | Android is at least marginally better for allowing-- through a
       | few scare-tactics hoops to jump through-- sideloading of apps,
       | but I don't consider that sufficient competition to overcome the
       | duopoly label. Neither is Android's allowance of alternative app
       | stores, no more than MS allowing users to install alternate
       | browsers was sufficient to overcome their uncompetitive practices
       | when it came to IE. The primacy of the Play store on initial
       | setup & its extremely deep integration in the OS is difficult to
       | overcome.
       | 
       | Alternatively, I am slightly conflicted on this due to the
       | security aspects of app installation. Mobile certainly isn't
       | perfect, but the prevalence of malware seems significantly
       | reduced from what is seen in PC's. (well, windows. MacOS is not
       | as bad as Windows, but I've always considered that to be a
       | produce of it's lower market share & therefore lower cost/benefit
       | ratio for attackers.)
        
       | faeriechangling wrote:
       | I don't know why Apple is doing this if they want to maintain
       | their monopoly, I only see them throwing fuel on the fire of the
       | breaking up of the App Store for some pretty marginal benefits
       | for themselves. They are literally targeting the smallest and
       | poorest developers explicitly.
        
       | GuB-42 wrote:
       | Hey, Apple, people still play Super Mario, they didn't change a
       | single bit since it was released, 37 years ago.
       | 
       | But there is one reason I somehow understand Apple stance. First
       | is security, almost all apps are online now, and new
       | vulnerabilities are found regularly. Super Mario has bugs, be no
       | one cares, in fact, speedrunners have fun with them, because a
       | NES is not online and there is nothing sensitive in there to
       | begin with. Second is Apple's own fault: they break their own
       | system and want you to make sure you keep up.
        
         | bena wrote:
         | I don't think the Super Mario comparison is entirely fair here.
         | 
         | Super Mario Bros runs on a single piece of unchanging hardware.
         | Even when you play it on any other platform, you're playing it
         | through an emulator designed to mimic the original hardware.
         | 
         | And that's the case with all video game consoles. Even when the
         | physical hardware changes, you're given the guarantee that it
         | won't be breaking to the software. The few times that has not
         | been the case has been notable.
         | 
         | iOS devices don't have that guarantee. The hardware can have
         | breaking changes. You software now has to contend with the fact
         | that there is no guarantee that certain features may or may not
         | be present. Things that were previously not customizable, now
         | are. If you want your software to run on the latest iOS, it is
         | at least partly your responsibility to ensure that it does.
        
       | meesles wrote:
       | I couldn't really accept this blog post because the author
       | doesn't even realize they benefit from Apple's walled garden:
       | 
       | > Most people are trying to build well-designed, useful mobile
       | apps
       | 
       | and then proceeds to say how the review process is not helpful
       | because they don't weed out many malicious apps. First,
       | confirmation bias. Second, do they have any idea how things are
       | in Android land? It's a constant struggle against nefarious app
       | devs trying to abuse new technologies or means of getting
       | ad/install revenue. It's one of the things I like the least about
       | the ecosystem I use.
        
       | WesolyKubeczek wrote:
       | In an ecosystem like npm, having such thing is next to
       | impossible. The useful libraries that don't depend on anything
       | else from npm are rare, and those that are need to review their
       | lockfiles and run npm audit and whatnot every once in a while,
       | even if their own code doesn't change. Otherwise it's quite a
       | pain to integrate them with newer codebases.
       | 
       | In any ecosystem at all: if it speaks HTTPS, it's either never
       | complete, or it ceases to function past some date.
       | 
       | I get the sentiment very much, but there are cases when you can't
       | have nice things.
        
       | Kwpolska wrote:
       | Eh, this is Apple you're talking about. They don't know what
       | backwards compatibility means, and your app might randomly break
       | on the newest version of iOS. Or it might be slightly ugly around
       | the Dynamic Island(tm) and Apple users would hate that.
        
         | musicale wrote:
         | > They don't know what backwards compatibility means
         | 
         | Platforms are supposed to absorb developer pain, but Apple
         | offloads a continuous and multiplicative update burden onto all
         | of their developers.
        
           | Gigachad wrote:
           | Because Apple prioritises the best user experience.
        
       | 0x37 wrote:
       | I've personally witnessed several unnecessary and costly
       | refactorings in my job that were done due to this weird
       | perception the blog is talking about. All those weeks and months
       | that were spent removing a perfectly fine tool that was working
       | without issues.
        
       | layer8 wrote:
       | God, the UX in that karalof video is so much better than what iOS
       | has become today.
        
       | renewiltord wrote:
       | In a world with security concerns, can anything be complete?
        
         | detaro wrote:
         | yes. (especially but not only on mobile, where the platform is
         | responsible for a lot of it)
         | 
         | Security concerns are very clustered around limited attack
         | surface, that many apps just don't have.
        
         | hmcamp wrote:
         | Yes. The ls Unix command.
        
           | renewiltord wrote:
           | Haha you got me, but I wouldn't be surprised if there were
           | Unicode issues etc as you have to support modern filesystems
           | 
           | Like this https://www.exploit-db.com/exploits/33508
        
             | Gigachad wrote:
             | I'm not sure the ls command has to do much if anything to
             | support new file systems since the file system driver
             | should present a standard interface for them.
        
       | User23 wrote:
       | I've never even heard of anyone getting promoted by saying "this
       | app is perfect, let's leave it alone except for bug fixes." The
       | overwhelming incentive for everyone involved in most commercial
       | software work is to continually make changes, necessary or not.
        
       | jmbwell wrote:
       | Looking at the metrics Apple tracks in the App Store, it seems to
       | me that "engagement" is all that really matters. You could have
       | some huge number of happy users, but if they open the app only
       | occasionally, you get numbers in red. Or you could have an app
       | that solves an important issue but only for a small number of
       | users, and you get numbers in red. If you're not releasing hits
       | that people use all the time, you sink. If tons of people don't
       | spend tons of time in your app, you sink.
       | 
       | Author complains about the time required to update libraries, and
       | that's an aggravating process, but that's just an unfortunate
       | part of maintaining an app. The real issue, again it seems to me,
       | isn't that you have to do a lot of work just to increment the
       | version string; it's that, ultimately, modern content ecosystems
       | are designed according to engagement-driven revenue models. And
       | solid, simple, quiet, long-lived, useful or fun little apps
       | simply can't thrive when all the sunlight is blocked by towering
       | marketing-tech giants.
       | 
       | IMHO.
        
         | klabb3 wrote:
         | > Looking at the metrics Apple tracks in the App Store, it
         | seems to me that "engagement" is all that really matters.
         | 
         | This has been the name of the game in ad tech like fb, Google
         | and social media in general. I think two worlds are clashing
         | with each other, where consumer tech is somewhat aware of the
         | problems around mindless scrolling and addiction, but the
         | growth & engagement mindset of the 2010s is cemented in the
         | culture. Apple has little reason to follow this model because
         | they primarily make money from selling hardware. Having a
         | software platform that protects the user from this crap is a
         | competitive advantage against Google, who depends on ad-based
         | revenue. Apple seems to have an identity crisis, fearing they
         | lose out on sweet subscription fees and ad revenue, now that
         | most apps are free. This in turn is creating conflicts of
         | interest, where they end up fighting their own customers.
         | 
         | If regulators would bark and bite harder around anti-
         | competitive behavior, it might actually force corporations to
         | focus on what they're good at instead of everyone building
         | their own mediocre walled gardens that grow like a cancer and
         | eats the company from within. At least, that's my wishful
         | thinking..
        
         | kitsunesoba wrote:
         | Additionally, updating libraries periodically is inescapable
         | for any app involving network connections or handling arbitrary
         | user content, because doing otherwise means exposing your users
         | to vulnerabilities.
         | 
         | Fully offline, totally self-contained apps are a different
         | matter, but those represent an increasingly small percentage of
         | apps.
        
       | armchairhacker wrote:
       | I hate to see a piece of open-source software abandoned and
       | broken. But I love to see a piece of software "abandoned" and
       | still working because it has been designed for long-term use and
       | simply doesn't need updating.
       | 
       | That is how open-source grows. Because you can't grow a codebase
       | if you have to keep updating and fixing what you've already done.
       | As you have to keep updating and fixing stuff, new progress slows
       | and eventually stops. It's the same for "codebases" like
       | ecosystems/package repos and open-source in general
        
       | TillE wrote:
       | This is another case where Apple fundamentally doesn't "get"
       | games. They had a plan for clearing out crap from their store
       | which probably sounded reasonable, but nobody even thought about
       | an entire class of programs.
       | 
       | Lots of stumbles and missed opportunities - like, what if they
       | had actually been serious about making the Apple TV a Wii-style
       | games console? They have the hardware expertise to do that at a
       | reasonable cost, but they just have no idea about the market, and
       | apparently no desire to learn.
        
         | themagician wrote:
         | Oh, they get it.
         | 
         | Apple products very much have a time and a place. Their plan is
         | recurring revenue. Something that happened 3 years ago is
         | almost entirely irrelevant to them. It's true with both
         | hardware and software.
         | 
         | Wii-style games on AppleTV would not be a win for them. They
         | don't want to sell a few million copies of Wii Sports once
         | every 3-5 years. They want you buying a new 99C/ game at least
         | once a month. They want you spending $5-10 in micro-
         | transactions a month. They want you subscribed to AppleOne for
         | $15-30 a month. They want you to buy a whole new iPhone every
         | 2-3 years and start the process all over again with some new
         | AirPods, cases and bands in between.
         | 
         | Apple doesn't want to sell you a new game for $59 every 2
         | years. They want to sell you what amount to an average of $59
         | worth of goods and services a month... forever. And while that
         | sounds like a lot, that's a low target. If you have your TV
         | subscriptions through Apple and Apple Care you can _easily_ be
         | contributing $100 /mo or more to Apple's bottom line.
        
         | musicale wrote:
         | I understand that Apple is trying to deal with the sort of
         | shovelware/accumulation problem that the Wii had, but the
         | blanket approach of culling games based on release date seems
         | wrongheaded.
         | 
         | If Nintendo took that approach then they'd end up throwing away
         | Super Mario Odyssey and Zelda: Breath of the Wild.
        
           | spullara wrote:
           | Probably not since they get plenty of downloads...
        
       | stabbles wrote:
       | On a related note, I feel that some websites at are a point where
       | they're complete, and adding new features makes the experience
       | worse.
       | 
       | Take Github: to me it feels that it's now at an optimum where
       | adding new features that make it more social or more "fun" would
       | simply make it worse.
       | 
       | Similarly Youtube: tons of good material, user interface is fine.
       | Then they introduced shorts, and to me it feels like these type
       | of video's are simply not part of youtube's identity, adding them
       | only makes it worse.
       | 
       | At some point it might be best to stop adding new features and
       | just agree that things are fine now as they are.
        
         | koreth1 wrote:
         | Surely it's possible for GitHub to add features that aren't
         | related to making it more social or "fun," though? For example,
         | they could improve their support for stacked PRs in a number of
         | ways; that's an area that is far from fine at the moment IMO.
        
         | _dain_ wrote:
         | they could show the linecount of each file in the repo browser
        
       | _jal wrote:
       | Apple is starting to remind me of auditors, but instead of trying
       | to keep people honest/push trendy practices, they're pushing
       | whatever's trendy in Apple's management class this month.
       | 
       | When do we get to the point of companies hiring "review
       | specialists" who used to work for Apple?
        
         | jaywalk wrote:
         | Anyone who could afford a "review specialist" is probably
         | already getting the white glove treatment this post describes,
         | and wouldn't actually need one.
        
       | plorkyeran wrote:
       | > So I had to spend four hours on Saturday upgrading all my
       | platform libraries simply so that I could compile the damn app.
       | 
       | I sort of assume this is the actual point? Apple presumably wants
       | to drop support for older versions of the SDKs, and that requires
       | that app developers update to the newer versions. I think you can
       | make a reasonable argument that dumping work on third-party
       | developers to simplify things for themselves is bad, but the
       | author's belief that it was simply pointless busywork is probably
       | incorrect from Apple's perspective.
       | 
       | I suspect the minimum download threshold to be exempt from this
       | is _very_ high. Maintaining backwards compatibility for a small
       | fixed set of apps doing things an old way is a categorically
       | different problem from maintaining backwards compatibility for
       | every app out there.
        
         | dahfizz wrote:
         | If they have specific libraries or APIs that they wanted to
         | deprecate, I think developers would understand that. But the
         | current implementation of "anything 2 years old is too old" is
         | arbitrary.
         | 
         | If this was really about deprecation, they wouldn't have a
         | "minimum monthly downloads" exemption either. This policy is
         | just a way to clear out old, unpopular apps from the store
        
           | shadowgovt wrote:
           | Traditionally, this is a significant philosophical difference
           | between Apple and Microsoft that goes quite a ways towards
           | explaining how Microsoft gained and held dominance for so
           | long in the business sector.
           | 
           | Businesses don't _want_ to be told that their working
           | software needs to be updated to make a vendor 's bottom-line
           | cheaper. They recognize cost-shifting when they see it and
           | respond by backing towards the exits. Microsoft maintained a
           | philosophy for decades that it was their responsibility to,
           | if at all possible, maintain backwards compatibility with
           | older Windows software as a market differentiator. The
           | primary times I remember them breaking this policy were
           | security related.
           | 
           | (That having been said, I got out of active development of
           | Windows software around Windows 8, so this may have changed).
        
             | skrtskrt wrote:
             | it seems like that on a long enough timeline however,
             | promising that legacy cruft will always keep crufting as it
             | did before seems like a huge burden that leaks into your
             | ability to deliver quality in your current offerings.
             | 
             | Sure there are old things that are good and "complete" but
             | far more old stuff is just old and could well be burnt to
             | the ground, except for the fact that you have some customer
             | somewhere relying on its oddities and unintended behaviors
             | as an essential feature of their integrations.
        
             | dahfizz wrote:
             | Again, I don't think people would have as much of an issue
             | if it was clearly about deprecation.
             | 
             | Something like Google's minimum sdk version is annoying,
             | but understandable. It's technical and concrete - you must
             | link against version X because version X-1 is going to
             | disappear.
             | 
             | This is not that. It's culling apps that are arbitrarily
             | too old _and_ arbitrarily not popular enough. They must be
             | keeping around old sdk versions if those old but popular
             | apps are allowed to continue on.
        
           | tomxor wrote:
           | > This policy is just a way to clear out old, unpopular apps
           | from the store
           | 
           | Except popularity doesn't correlate with utility when it
           | comes to apps. Probably only addictive games and social
           | network apps will pass whatever arbitrary threshold has been
           | set.
           | 
           | This will harm any one off apps built to satisfy a niche
           | purpose downloaded by a small set of users. Which Apple
           | probably think are not important, like all of the little high
           | street shops, except cumulatively they might affect a
           | majority of users. Also if it's measured by "downloads"
           | rather than "installed", then it could take out larger more
           | widely used apps that are considered complete by both authors
           | and users, but don't have enough daily new users to pop up on
           | their radar as important enough... this is similar to the
           | "maintenance" fallacy of NPM, where frequent patches =
           | better, even though if your package is small and well written
           | you should be making _no patches_ as a sign of quality.
        
         | bsuvc wrote:
         | This is a great point, but if true, Apple should do a better
         | job of communicating the reason, including specifics, not just
         | say "your app is rejected because it is outdated".
        
         | lapcat wrote:
         | > I suspect the minimum download threshold to be exempt from
         | this is _very_ high.
         | 
         | You can suspect based on no evidence, but nobody knows, and
         | Apple refuses to say.
         | 
         | The crazy thing is, if Apple truly wants to drop support for
         | older version of the SDKs, then how in the world does it make
         | sense to exempt the most used apps???
        
         | dheera wrote:
         | I've had a few apps on the Google Play Store automatically
         | removed because I didn't update them for some new policy or
         | some such.
         | 
         | If they paid me maybe I would have. Otherwise I don't have time
         | to keep dealing with their requests every 6 months. Is it such
         | a hard thing to ask that if shit works, just leave it be?
        
           | [deleted]
        
         | throwaway292939 wrote:
         | I agree that this may be the point. Software changes, and being
         | able to compile with latest libraries is somewhat of a minimum
         | requirement.
         | 
         | To Apple's defense, are they supposed to wait until the app
         | breaks, starts receiving many complaints from customers, before
         | it triggers the review process for them (which they would be
         | forced to look at as somewhat high priority) before they then
         | take action to remove the offending app? That hurts the
         | customer experience from their perspective.
         | 
         | Better for them to institute a policy preemptively addressing
         | these issues (arbitrary as the timeframe may be).
         | 
         | And four hours is a good chunk of time, but what percent of
         | time is it compared to the amount of time for the app to be
         | designed and implemented in the first place?
        
           | lapcat wrote:
           | > To Apple's defense, are they supposed to wait until the app
           | breaks, starts receiving many complaints from customers
           | 
           | Except that Apple is exempting apps with more downloads, and
           | only punishing apps with fewer downloads, which is the
           | opposite of worrying about "many complaints".
        
       | mattgreenrocks wrote:
       | I am convinced the world doesn't understand the concept of
       | something being "complete." It's like part of their brain can't
       | comprehend that something is functionally whole, and any changes
       | would actually detract from what is there.
       | 
       | Related: open source devs fret if a library hasn't been updated
       | in the last month, even if it is feature complete with no bugs.
        
         | electroly wrote:
         | For open source code, I think the concern is practical: bit rot
         | is real, and libraries with no recent updates are more likely
         | to have suffered bit rot. It's not that a library can't be
         | finished, but that the world in which it lives never stops
         | moving. It can be a bigger or smaller problem depending on the
         | ecosystem. Old C89 libraries have a good chance of still
         | working, because the ecosystem isn't moving so much any more.
         | Old C# libraries almost definitely don't, because the ecosystem
         | is moving quickly.
        
           | forgotmypw17 wrote:
           | Perhaps the solution is a monthly "NOOP" release?
        
             | twicetwice wrote:
             | maybe commit to a log indicating that the test suite has
             | run correctly as of <today's date>?this assumes you have a
             | useful test suite but also at least indicates that you're
             | still paying attention & trying to ensure your library
             | works
        
               | forgotmypw17 wrote:
               | Great idea!
        
               | svieira wrote:
               | _quid custos ipsos custodiet_ still applies. The fact
               | that your test suite ran in Esolang v27.8 successfully
               | doesn 't mean what you-the-consumer want it to mean if
               | the last supported version of Esolang is v96.2. It just
               | means someone down-stack of you is committed to backwards
               | compatibility.
        
               | travisjungroth wrote:
               | That future version won't be on the supported versions
               | list anyway.
        
               | forgotmypw17 wrote:
               | I think this varies by project.
               | 
               | I personally support every version of my projects.
               | 
               | My goal is not to minimize the effort to myself but to
               | facilitate the use of my software.
        
               | travisjungroth wrote:
               | I meant the new version of Esolang, v96.2, wouldn't be
               | explicitly supported by your project.
        
             | ep103 wrote:
             | I would assume a noop is automated, and the library is no
             | longer maintained.
             | 
             | If, however, I saw a statement at the top of the README
             | that said:
             | 
             | "Update as of 2 months ago: We believe this project to be
             | complete. We are not adding new features at this time, but
             | if you see any issues, please open a ticket, as this
             | project is still under active development as needed"
             | 
             | then I would feel very confident.
        
               | forgotmypw17 wrote:
               | Thanks, that's a good point.
        
             | budoso wrote:
             | Agreed but this definitely isn't in the interest of library
             | maintainers. If they did so it'd mean they are
             | acknowledging all the currently open issues and deciding to
             | do nothing, which would sometimes cause backlash.
        
               | bliteben wrote:
               | I mean most projects just auto close all issues now.
               | Dunno where this desire to have 0 open issues came from.
               | Seems like in the past projects would mark the issue as
               | unconfirmed and ignore it, now they all want to close the
               | thread and not allow further comments. Almost as if
               | someone is going to judge their open source project
               | negatively for having open issues, which if that has ever
               | happened that person is more insane than the devs
               | practicing this.
        
           | ryandrake wrote:
           | Bits don't rot--vendors break things. If my code built with
           | yesterday's SDK and ran on yesterday's OS, and it doesn't for
           | today's, that's not some supernatural phenomenon where
           | digital media rots away--let's clearly blame who's causing
           | it: SDK and OS vendors making changes that break backward
           | compatibility and dump the maintenance burden on developers.
           | The term "bit rot" is an attempt to shift the blame away from
           | those who are causing the rot in the first place.
           | 
           | Whether or not it's good to have a moving ecosystem is
           | another story, but I request we not use the term "bit rot"
           | when we mean "vendors breaking compatibility."
        
         | hwbehrens wrote:
         | > _feature complete with no bugs_
         | 
         | I suppose for simple libraries this might be possible (e.g.
         | left-pad) but how would you know in general that something is
         | bug-free? `units` was introduced in 1979 and is still one of
         | the canonical examples used in automated program repair
         | research to show that new bugs can be found even in extremely
         | well-studied codebases.
         | 
         | I think people might be:
         | 
         | 1. Implicitly assuming that all nontrivial code has bugs, and
         | 2. Using recent commits as a signal that means, "If I ran into
         | a bug, there is someone who might fix it (or at least accept a
         | fix PR) to take away my immediate pain.
        
           | __turbobrew__ wrote:
           | That reminds me of the overflow bug in the JDK binary search
           | that was present for quite a while.
        
           | dotancohen wrote:
           | I've never used or heard of the left-pad library, but I'm
           | willing to bet that I could find an RTL bug in a library with
           | that name.
        
         | sorisos wrote:
         | I like that so many unix command tools (like cat, ls...) is
         | rarely updated. Often comes with a man page written in 30 years
         | ago. Same with a lot of C libraries.
        
         | mey wrote:
         | If a library is not updated in some capacity "recently" (coming
         | from the Java land, "recent" is a different timescale than
         | Javascript), then I have little confidence that a security
         | issue can be resolved if discovered. Even if a library is
         | complete, it may depend on libraries downstream that _do_ have
         | security issues that are no longer supported, which means it
         | needs to swap to newer versions, etc.
        
         | bsaul wrote:
         | About open source lib not being updated :
         | 
         | The thing is, even if the lib is "feature complete", it's
         | pretty rare to not have to update anything, since the ecosystem
         | in which this lib evolves will undoubtely have changed.
         | Programming language, hardware, OS, etc. everything evolves all
         | the time.
        
           | smt88 wrote:
           | Security threats also evolve all the time. A library that
           | hasn't been updated in months is very likely an insecure
           | library.
        
             | bromuro wrote:
             | Updates may be a security threat too... didn't log4j become
             | a security treat _because_ it had been updated?
        
             | FpUser wrote:
             | I use an ancient library to perform some math. It's been
             | working just fine for more than 10 years without any need
             | for update. Can someone explain why is it insecure and what
             | updates are needed to complex algos to make them so? When
             | looking at the code it is pure computation.
             | 
             | I think what you are saying is simply FUD when taken as a
             | blanket statement.
        
               | smt88 wrote:
               | > _I use an ancient library to perform some math._
               | 
               | Anyone can cherry-pick examples to try to disprove a
               | security principle. A pure, functional math library isn't
               | representative of the vast, vast majority of libraries
               | that are imported every day.
               | 
               | The most-used libraries across languages are for things
               | like database access, logging, package management, HTTP,
               | and (de)serialization. All of those things need to be
               | kept updated for security.
               | 
               | > _Can someone explain why is it insecure and what
               | updates are needed to complex algos to make them so? When
               | looking at the code it is pure computation._
               | 
               | You didn't specify the language or library.
               | 
               | Most libraries that people import are going to be JS,
               | just because of the number of JS users and the minimal
               | standard library in that language. Many are also going to
               | operate on user input, which means they can have
               | vulnerabilities.
               | 
               | The mathjs package in NPM, for example, has had tons of
               | vulnerabilities[1].
               | 
               | 1. https://security.snyk.io/package/npm/mathjs
        
               | FpUser wrote:
               | C++ Library, forgot the name, need to look.
               | 
               | NPM system is security abomination I agree. But I am not
               | using it. I look at things from my own perspective. If
               | 90% of the world programmers are bound to NPM ecosystem
               | (doubt it) it is their problem. Not mine. I do not
               | "import" half of the Internet for my "hello worlds".
        
               | x3n0ph3n3 wrote:
               | Are you passing user input into it? Does it interact with
               | anything on the system? Poorly sanitized inputs present a
               | very serious risk for RCE vulnerabilities.
        
               | FpUser wrote:
               | As already said it is pure computational lib. It does not
               | interact with anything and I use it from my code. There
               | are tons of libraries like this. They work just fine, do
               | not pose a security risk and have no need for update.
               | 
               | But thanks for trying anyways.
        
           | layer8 wrote:
           | This is only true if the ecosystem doesn't care about
           | compatibility, so this is just a symptom of a deeper issue.
           | Say what you will about Wintel, but the long-term
           | compatibility of x86 and Windows still lets me run a lot of
           | win32 applications written two decades ago without issues.
        
           | 7speter wrote:
           | Theres a good chance the documentation could say things in a
           | better way...
        
         | ako wrote:
         | Everything you use continuously improves. What do you use that
         | has seen improved versions since you bought it?
         | 
         | Our knowledge, our abilities, our raw materials continuously
         | improve, and everything is expected to advantage of this.
         | Things that don't improve, are soon outdated and fall behind.
         | 
         | Everything continuously improves: cars, bicycles, windows,
         | houses, refridgerators, tv, etc, etc.
        
         | layer8 wrote:
         | Imagine TeX becoming unavailable because Knuth didn't update it
         | for three years.
        
         | thenerdhead wrote:
         | I mean a heartbeat is needed sometimes to make sure something
         | is still alive and can address critical issues if they do
         | happen. But I do agree that libraries and apps don't need to
         | "update" to show that.
         | 
         | Maybe some other way like "Hey, we're still here just the thing
         | we're working on doesn't need an update" would suffice for most
         | things.
        
         | aposm wrote:
         | By "the world" I think you mean a specific subset of people:
         | investors/execs/the business side. I don't particularly believe
         | that average end users or competent engineers feel that way...
        
           | naniwaduni wrote:
           | In fact, average end users infamously don't voluntarily
           | update things that aren't visibly broken.
        
         | zeroonetwothree wrote:
         | I would love to see this theoretical world in which libraries
         | have no bugs.
         | 
         | Thing is, even if there are no _known_ bugs, having rare
         | updates means if I do find a new bug it's less likely to get
         | addressed quickly.
        
         | Lutger wrote:
         | One word: security updates. Ok that was two. Most software had
         | dependencies, those tend to surface vulnerabilities over time.
        
         | musicale wrote:
         | Other game platforms (game consoles, Windows) seem to have
         | drastically better backward compatibility and API stability.
         | 
         | If you look at the Nintendo DS/3DS (for example), the platform
         | had many hardware revisions (about every other year) and dozens
         | of firmware revisions, yet games from 2004 still worked on a
         | brand new 3DS in 2020.
         | 
         | On the Sony side, PS4 games from 2013 still work fine on a PS5
         | in 2022 (and probably through 2029.)
         | 
         | Steam has tons of old games that work great on Windows (but the
         | Mac side took a major hit with macOS Catalina's 32-bit
         | apocalypse.)
        
         | donatj wrote:
         | A PHP library I use and used to help maintain had a bit of a
         | fight break out in the Issues on GitHub a couple weeks ago.
         | 
         | They were dropping support for older versions of PHP despite
         | getting nothing from it and using none of the newer features.
         | Just needlessly limiting the audience, and churn for churns
         | sake.
        
           | shagie wrote:
           | I am reminded of the libressl - 30 days in report.
           | https://youtu.be/oM6S7FEUfkU?t=1073
           | 
           | Removing support for old versions is a simplification of what
           | needs to be considered. It is a reduction of complexity. If
           | someone is running a PHP version that has been EOLed, it is
           | perfectly reasonable to discontinue support for it in a
           | library - even if new features that weren't available in the
           | EOL'ed version haven't been added yet.
        
             | unity1001 wrote:
             | > If someone is running a PHP version that has been EOLed,
             | it is perfectly reasonable to discontinue support for it in
             | a library
             | 
             | Its not. Large Linux distributions support those PHP
             | versions for a long time in their LTS releases, and
             | majority of web hosts and infra providers use those distros
             | in their infra.
        
               | shagie wrote:
               | So what version of PHP are we talking about?
               | https://www.php.net/supported-versions.php and
               | https://www.php.net/eol.php
               | 
               | That some provider is still hosting old EOL'ed and no
               | longer supported versions shouldn't prevent a library
               | author from saying "I'm not going to deal with something
               | that had its last release nearly 4 years ago."
        
           | taftster wrote:
           | I hear you and I get what you're saying. However, to argue
           | the other side, maybe it's a decision based on the
           | possibility of long maintenance going forward. Keeping track
           | of, in your example, PHP and all of its various versions is
           | mentally daunting. What's wrong with a project just saying,
           | "Hey look, we're not saying it won't work for you, but if
           | you're running these older versions, we just don't give you
           | any guarantees that it does. YMMV."
           | 
           | e.g. say a bug comes up in the library, and say that it only
           | affects older versions of PHP. Why can't the project just
           | shrug its shoulders and be truthful that it doesn't have
           | interest in maintenance/support against those old versions?
           | It's better that the project declares this intention now,
           | before the bug comes up, then later having to part ways with
           | the old versions more abruptly.
           | 
           | This is why OSS is great, as you can decide if, at the time
           | said bug is found, that you want to provide legacy support
           | for older PHP versions, maybe through a fork or other means.
           | Have at it, it's your software too.
        
         | sodapopcan wrote:
         | The Elixir ecosystem is quite good for this. I've found smaller
         | libraries that haven't been update in a long time but still
         | work just fine since Elixir itself hardly ever changes in a
         | breaking way (the recurring phrase in the community being:
         | "There will probably never be a version 2"). It's weird to get
         | used to at first but it's actually quite refreshing.
        
           | OkayPhysicist wrote:
           | I used an Erlang library in my Elixir project a while back
           | that hadn't had an update in a decade. If a language's
           | semantics don't change (and they really, really shouldn't
           | change without either A) a very good reason or B) a really,
           | really good backwards compatibility story) then there's
           | really no reason for a library that does a job well to ever
           | update.
        
       | jeffalyanak wrote:
       | I think there's something to be said about this in regards to
       | consumer electronics as well. One of the oldest electronic
       | devices that I still use on a daily basis is my ereader, which is
       | a very early model. It simply does everything it needs to do,
       | it's feature-complete.
       | 
       | Unfortunately there aren't many consumer electronics that fall
       | into that category and a huge portion of consumer electronics
       | that end up in the dump are not physically damaged in any way,
       | but simply can't run the latest software, firmware, or OS. Or
       | else they're missing the latest wifi or cellular radios, high end
       | cameras, wireless charging protocols, etc.
        
         | SilasX wrote:
         | Similar thoughts about my PlayStation 2 from 2004[0] that I
         | still play Dance Dance Revolution on. I don't have to worry
         | about anything changing that breaks the experience. (Except
         | finding a TV that minimizes upscale lag but that should have
         | been a trivial thing for TV makers to get right.)
         | 
         | [0] The PS2 platform is from 2000 but I use a miniaturized PS2
         | slim which was released and probably manufactured in 2004.
        
       | logicalmonster wrote:
       | I would advocate for Apple and other app marketplaces to adopt
       | the carrot and not the stick.
       | 
       | Incentive App developers who make good and substantial updates,
       | whether its new features or updating to newer system APIs, with a
       | positive % modifier to their search results in the App store.
       | 
       | This way well-maintained Apps should show up higher in search
       | rankings and there's a natural incentive for developers to keep
       | their programs maintained. But at the same time, this would allow
       | developers to call a program "finished" and leave it on the store
       | without being scared of having their hard-work destroyed. Their
       | hard-work might not be as visible, but that would be on them.
        
       | musicale wrote:
       | I don't think culling games/apps based on age is the right
       | approach to improving discoverability.
       | 
       | I don't see Nintendo removing old Switch games from the eShop.
       | 
       | I don't see Apple Music removing the Beatles because they haven't
       | updated recently.
       | 
       | My recommendation, which Apple's (obnoxious) ad business would
       | never accept, would be to
       | 
       | 1. Remove the obnoxious and generally useless ads which eat up
       | the top half of the first page of app search on the iPhone.
       | 
       | 2. Improve app search with more options and a fast, responsive
       | UI. Also they might consider allowing you to consider ratings
       | from other sources such as critical reviews vs. user reviews (a
       | la metacritic.)
       | 
       | 3. Better human curation with more categories. This is the same
       | approach that Apple Music takes and it seems to work well. Games
       | should have Artist/Studio/Developer pages as well as Essentials
       | lists to facilitate discovery. Same with genre/category
       | essentials, which have a rotating list that can be
       | saved/bookmarked.
        
         | scarface74 wrote:
         | APIs change, hardware changes, the comparison is relatively
         | silly.
        
           | meltedcapacitor wrote:
           | Rectangle with capacitive screen is just that. Well designed
           | apps should be robust to improved screen resolution, faster
           | processors or network connectivity.
        
             | Gigachad wrote:
             | Older apps don't properly fit with the curved corners and
             | notch.
        
               | kps wrote:
               | The 2022 SE3 has the same 750x1334 rectangle as the 2014
               | iPhone 6.
        
               | Gigachad wrote:
               | The 2018 iPhone X does not.
        
             | newtritious wrote:
             | > Rectangle with capacitive screen is just that.
             | 
             | If you think that's all a smartphone is, then it's natural
             | to come to the conclusion that the only thing that has
             | changed is speed and resolution.
             | 
             | It also happens to be simply wrong.
        
             | scarface74 wrote:
             | Back in the iPhone 4/iPad era, there was no facility within
             | iOS to have responsive screens.
             | 
             | Apple introduced size classes and then you needed to adjust
             | for different views for iPads once they supported more than
             | one app being displayed on the screen.
             | 
             | Apple rightfully got rid of 3/ bit app support on the
             | actual die. It introduced new permission models, design
             | aesthetics change, new accessibility options are added,
             | better APIS are written, etc.
        
         | II2II wrote:
         | The missing point is that they are culling apps based upon age
         | _and downloads_. I think this is a reasonable criteria if Apple
         | is trying to make space for popular and potentially upcoming
         | apps. Yes, space is an issue if you think of it in terms of the
         | customer 's attention span.
         | 
         | The real problem is that developers have no choice except to
         | offer their app through Apple's store. There is no room for the
         | developer to offer their labour of love or niche product in a
         | storefront that better serves their needs, or even from their
         | own website.
        
           | gernb wrote:
           | > Yes, space is an issue if you think of it in terms of the
           | customer's attention span.
           | 
           | By that argument they should also get rid of most old music,
           | old books, old movies.
        
           | musicale wrote:
           | > The real problem is that developers have no choice except
           | to offer their app through Apple's store
           | 
           | How is this different from other walled garden game
           | systems/game stores like Nintendo's eShop?
           | 
           | Yet they seem to keep older games and apps, even niche titles
           | for a limited audience (such as music production apps or
           | BASIC programming apps) which I greatly appreciate.
           | 
           | I would agree that discoverability isn't great on the eShop,
           | but there are dozens of enthusiast web sites which are pretty
           | good for game discovery (also aggregators like metacritic.)
           | 
           | And, as I noted, I think Apple already has a good approach
           | which they're using with Apple Music - better human curation
           | including category/genre/time period/artist/etc. playlists.
           | Podcasts/radio shows also help.
           | 
           | Many games (at least ones that aren't in the "live service"
           | category) are more akin to movies, music, or books than to
           | some sort of perishable produce, so a curation approach that
           | balances older content with new content makes sense.
        
             | dahfizz wrote:
             | It depends on how you view your phone. Is it a single use
             | appliance? Or is it a general use computer?
        
             | II2II wrote:
             | Consoles are different because they have a limited shelf
             | life. For example, I dug out my PS3 the other day and took
             | a peek at their eshop. The most recent title was three
             | years old. It also sounds like they're going to shut down
             | the PS3 eshop, effectively ending the sale of old games
             | anyhow. Something similar appears to be true for Nintendo.
             | I pulled up their eshop on my 3DS and they have a message
             | saying that it will be impossible to add funds to an
             | account after March 20223. Presumably that means sales will
             | end.
             | 
             | As for other media, brick and mortar retailers were always
             | selective about what they offered. I suspect that we will
             | see something similar happen with their digital variants in
             | the coming years. I also suspect that it will be sales
             | numbers, not human curation, that will be the basis of
             | their decisions.
        
           | r00fus wrote:
           | Virtual space only makes sense in terms of floorspace. If you
           | want to access a backroom special-order item (virtually
           | unlimited space here), you should be able to get it by
           | searching for a specific item (or URL).
           | 
           | Removing apps based on downloads or lack of updates is
           | troubling.
        
           | mcherm wrote:
           | > Yes, space is an issue if you think of it in terms of the
           | customer's attention span.
           | 
           | I don't hear independent developers griping that Apple is
           | failing to advertise their apps and bring those apps to the
           | attention of iPhone users. Instead, I hear independent
           | developers griping that Apple is preventing their apps from
           | being run on iPhones.
           | 
           | Therefore, I completely disagree. This is purely a matter of
           | data storage space (cheap and nigh infinite), not a matter of
           | limited attention.
        
             | newtritious wrote:
             | I hear the opposite of you. There are very few serious apps
             | whose code Apple is preventing from being run.
             | 
             | There are huge numbers of good apps on the store that don't
             | get visibility.
        
           | jonathankoren wrote:
           | > if Apple is trying to make space for popular and
           | potentially upcoming apps
           | 
           | "Make space"? This isn't a shelf. There's always enough space
           | for digital items.
        
             | ghaff wrote:
             | So do you want to sift through a bunch of apps that don't
             | work on the current version of the operating system or are
             | otherwise significantly dated?
             | 
             | Even in a less wall gardened environment, I'm mostly not
             | interested in running 10 year old applications unless
             | they're something fairly simple that really does do
             | everything required for the purpose and still runs
             | reliably.
             | 
             | In any case, as a user, I probably figure that if an app
             | hasn't been updated in five years, it may or may not work
             | and I'll probably at least subconsciously resent the
             | store's owner a bit for clogging up the store with old
             | stuff.
        
               | trap_goes_hot wrote:
               | >I'm mostly not interested in running 10 year old
               | applications unless they're something fairly simple that
               | really does do everything required for the purpose and
               | still runs reliably.
               | 
               | The 10 year old version of AutoCAD still runs, and you
               | can use it today to do a ton of high-value CAD work.
               | Thanks to Microsoft for not arbitrarily blocking it from
               | running.
        
               | ghaff wrote:
               | Yes. But that's a case of having an old version of a
               | program that you know still runs on a given platform.
               | That's rather different from looking for a CAD program
               | and deciding to take one that hasn't been updated for ten
               | years for a spin.
        
         | anothernewdude wrote:
         | Apple should just have fewer apps. I don't see why developers
         | should cater to their customers. They buy less and require more
         | support. They are the worst segment to support.
        
           | NavinF wrote:
           | Are you serious? There's way more revenue to be made on iOS.
           | A lot of Android users spend $0/yr on paid apps.
        
             | metadat wrote:
             | > A lot of Android users spend $0/yr on paid apps.
             | 
             | As do a lot of iOS users. I think the stat you are looking
             | for is that, on average, iPhone users purchase more apps.
             | 
             | Don't fail to take into account Android's massive installed
             | user base. Even if Droid users convert to paid at 1/4 the
             | rate of iOS, you can make it up in sheer bulk.
        
           | newtritious wrote:
           | You're just wrong. The reason developers support iOS is that
           | iOS users buy more apps.
        
       | jaimex2 wrote:
       | Another day, another Apple rant about the walled garden.
       | 
       | They know you wont leave, they know you'll put up with it.
        
       | jongjong wrote:
       | I can relate to the frustration of the author. I wrote an open
       | source library which gets downloaded 50K+ times per week. At one
       | point, I hadn't updated it in several months and people started
       | asking if the project is dead... In fact, it wasn't updated in a
       | while because it had been working perfectly and was built in a
       | forward-compatible way; that makes it more healthy and therefore
       | more alive than probably 99% of libraries on the internet.
       | 
       | The expectation that software libraries or frameworks should
       | break every few months is disturbing. I think this may be due to
       | the fact that many of the most popular frameworks do this. I find
       | that React-based apps tend to break every few months for a range
       | of reasons; often because of reliance on obscure functionality or
       | bundling of binaries which aren't forward-compatible with newer
       | engine versions.
        
         | tinalumfoil wrote:
         | I don't know the details of your particular library but I think
         | 50k/week downloads and no problems is an outlier. In my
         | experience even projects with small audiences tend to
         | accumulate outstanding bug reports faster than they're fixed.
        
           | oliveshell wrote:
           | I'm sure you're right, but it sounds like it's an outlier not
           | by random chance, but because it was built carefully.
           | 
           | I think there's a useful lesson there.
        
             | jongjong wrote:
             | I can confirm that this is the norm for all my open source
             | projects. Forward-compatibility issues can be easily
             | avoided by not using too many dependencies and by carefully
             | checking dependencies before using them.
             | 
             | I check for things like over-engineering and I check out
             | the author (check their other libraries if there are any).
        
           | jongjong wrote:
           | It's an open source pub/sub and RPC server/client (similar to
           | gRPC) - It has a client and server component written with
           | JavaScript and Node.js. I avoided using any dependency which
           | relied on pre-built binaries. Also, I skim-read the code of
           | all dependencies and made sure that they were well written
           | and didn't use too many sub-dependencies. The trick is to
           | minimize the number of dependencies and maximize their
           | quality.
        
       | api wrote:
       | The use of recency as a proxy for quality or usefulness is one of
       | the more perverse trends of recent years, but it's
       | understandable. There is just _so much_ of everything that a
       | strong demand is created for any method of filtering.
       | 
       | Of course I have to add that it does matter a lot for certain
       | types of software. Anything that interacts with ever-changing
       | APIs, hardware specs, and protocols needs to be kept up at least
       | frequently enough to stay useful.
        
       | colonwqbang wrote:
       | "Planned obsolesence" as a matter of official policy. Any
       | cultural expression older than a few years is not worth the bits
       | encoding it. Meanwhile, GTA V from 2013 is still one of the top
       | selling games on Steam.
        
         | crazygringo wrote:
         | GTA V has been updated countless times since 2013, including
         | entire re-releases for two newer console generations.
        
           | colonwqbang wrote:
           | The Windows port being sold at Steam is from 2015. But of
           | course you have a point; there have been updates in the
           | meantime. It's conceivable that those updates are what's
           | keeping the game marketable.
           | 
           | Still, I don't think Steam would confess to deleting a game
           | just because it is old. They carry a lot of games which
           | haven't been updated in years and which still sell.
        
             | notriddle wrote:
             | https://wiki.winehq.org/Cygwin_and_More
        
       | bsdetector wrote:
       | > My old code simply did not work anymore with the latest
       | versions of Xcode.
       | 
       | In other words if there was some actual reason to do an update,
       | like a security flaw or serious bug, she wouldn't have been able
       | to readily do so.
       | 
       | This seems to support Apple's policy to make developers update
       | the app every once in a while.
        
         | lapcat wrote:
         | > In other words if there was some actual reason to do an
         | update, like a security flaw or serious bug, she wouldn't have
         | been able to readily do so.
         | 
         | (1) There wasn't.
         | 
         | (2) "After 4 hours of work to re-compile my app and 44 hours
         | waiting in the review queue"
         | 
         | The biggest obstacle here isn't the developer, it's Apple.
        
         | layer8 wrote:
         | Apple is causing this issue in the first place by breaking
         | compatibility and requiring projects to be updated for each new
         | Xcode version.
        
           | newtritious wrote:
           | That's because the platform is actually changing.
        
             | layer8 wrote:
             | That's not a reason, unless the platform is changing in
             | incompatible ways, which is exactly the problem, and a
             | largely avoidable one, as other platforms demonstrate.
        
               | newtritious wrote:
               | Other platforms don't care if applications fingerprint
               | the device without the user's consent.
               | 
               | Closing off APIs that facilitate fingerprinting is just
               | one of many incompatible changes Apple has been making.
               | 
               | Some other reasons are deprecating power hungry
               | technologies and asking for more permissions to access
               | private data.
               | 
               | These are changes that benefit users on a massive scale.
               | Why shouldn't a developer be expected to respect users
               | needs?
        
               | layer8 wrote:
               | There are ways to still maintain API compatibility in
               | that case (Windows does it all the time), and it's also
               | not a reason to require projects not affected by those
               | changes to recompile with the newest Xcode version each
               | year. I'm maintaining a Swift library/framework that
               | doesn't use any iOS APIs at all, only basic Swift
               | standard library calls, and I still have to produce a new
               | build each year from unchanged source code so that the
               | library can be consumed with the new Xcode version.
               | That's just insane.
        
               | newtritious wrote:
               | Why is it insane? Do you not test your library with new
               | versions of the OS?
               | 
               | Also - "windows does it" is obviously irrelevant when we
               | are talking about a mobile OS.
        
               | RedShift1 wrote:
               | The whole point of an OS is to provide a stable API to
               | use.
        
               | layer8 wrote:
               | Testing with a new OS version shouldn't (and usually
               | doesn't) require rebuilding the project. The need to
               | rebuild is imposed primarily by the Xcode releases here,
               | not by the OS. And that seems entirely unnecessary. Note
               | that breaking compatibility and having to rebuild for new
               | Xcode versions are two independent and orthogonal issues
               | here.
               | 
               | I won't continue this discussion about maintaining
               | compatibility. This is fundamentally a philosophical
               | issue. I agree with the sibling comment that it is the
               | job of an OS to provide stable APIs across versions. It
               | requires some effort (as a long-term library maintainer,
               | I'm very well aware of this), but it is not an
               | impossibility at all.
        
       ___________________________________________________________________
       (page generated 2022-09-26 23:00 UTC)