Somehow, with 12GB of RAM, I can't get my iPhone 17 Pro to keep more than a few safari tabs open without having them refresh when I come back from an app or two, and it makes me want to throw my phone across the train (Where the internet often cuts out!).<p>A lot of software has been squandering the massive hardware gains that have been made. I hope this changes when it becomes a lot harder to throw hardware at the problem.<p>I also wonder what this means for smartphone-esque devices like the Switch 2. If this goes on long enough I won't be surprised if they release a 'lite' model with less RAM/Storage and bifurcate their console capabilities, worse than what they did with 3DS > 2DS .
I was trying to upload a 300mb video via the local police's web interface, a very important matter. I had to set my phone screen to stay on for 30 minutes and then leave the web browser open without touching it. Disabling all power saving measures makes not difference. This was the only way I could get it to finish uploading. I'm on a pixel 8 pro with grapheneos. Same thing in both Firefox and vanadium. I don't think it runs out of ram, the system is just too trigger happy. The battery still doesn't last all day anyway.
It's really nuts how much RAM and CPU have been squandered. In, 1990, I worked on a networked graphical browser for nuclear plants. Sun workstations had 32 mb memory. We had a requirement that the infographic screens paint in less that 2 seconds. Was a challenge but doable. Crazy thing is that computers have 1000x the memory and like 10,000x the CPU and it would still be a challenge to paints screens in 2 seconds.
Yes, the web was a mistake; as a distributed document reading platform it's a decent first attempt, but as an application platform it is miserable. I'm working on a colleague's vibe-coded app right now and it's just piles and piles of code to do something fairly simple; long builds and hundreds of dependencies... most of which are because HTML is shitty, doesn't have the GUI controls that people need built in, and all of it has to be worked around as a patch after the fact. Even doing something as simple as a sortable-and-filterable table requires thousands of lines of JS when it should've just been a few extra attributes on an HTML6 <table> by now.<p>Back in the day with PHP things were much more understandable, it's somehow gotten objectively worse. And now, most desktop apps are their own contained browser. Somehow worse than Windows 98 .hta apps, too; where at least the system browser served a local app up, now we have ten copies of Electron running, bringing my relatively new Macbook to a crawl. Everything sucks and is way less fun than it used to be.<p>We have many, many examples of GUI toolkits that are extremely fast and lightweight. Isn't it time to throw the browser away, stop abusing HTML to make applications, and design something fit for purpose?
> the web was a mistake;<p>It's not "the web" or HTML, CSS, or JavaScript. That's all instant in vanilla form. Any media in today's quality will of course take time to download but, once cached, is also instant. None of the UX "requires" the crap that makes it slow, certainly not thousands of lines to make a table sortable and filterable. I could do that in IE6 without breaking a sweat. It's just people being lazy in how they do it, Apparetnly now just accepting whatever claude gave them as "best in show".
You are describing Wirth’s Law.<p><a href="https://en.wikipedia.org/wiki/Wirth%27s_law" rel="nofollow">https://en.wikipedia.org/wiki/Wirth%27s_law</a>
Resources have certainly been squandered, but there are also a lot of apples vs. oranges comparisons that overlook advances in UX/DX and security.
> A lot of software has been squandering the massive hardware gains that have been made. I hope this changes when it becomes a lot harder to throw hardware at the problem.<p>Considering how many people are so averse to programming that they use LLMs to generate code for them? Not very likely IMO. I would like to see it happen, but people seem allergic to actually trying to be good at the craft these days.
I feel like my 3GS was way better about resuming where I left off than any fancy new iPhone I’ve had in the past few years.<p>Big name apps like Facebook, YouTube, Apple Music, Apple Podcasts seem totally disinterred in preserving my place.<p>YouTube being the worst where I often stack a bunch of videos in queue, pause to do something else for a while and when I return to the app the queue has been purged.
YouTube will literally resume back to exactly where I was, then seemingly noticing that I switched back to it, <i>go ahead and close the video I was watching</i>. With all sorts of animations too, it's not just a case of having showed a cached screenshot. YouTube seems to intentionally forget where in a video I was, often after having been paused in the background for only a minute or two.<p>Why??
See if turning off your ad blocker makes a difference. I've noticed that sometimes YouTube has parts of the site the apparently can look to ad blockers like they are part of an ad (maybe intentionally to annoy people with ad blockers?).
Likely some kind of complex refresh operation that kicks off when entering the foreground and takes a few seconds to complete before overwriting your state.
YouTube on TVs will often keep closed captioning on when switching accounts, then notice that CC is on and turn it off. Even though every account in the household always has CC turned on.
I feel like that's definitely a choice for Facebook at least - there's no technical reason the app couldn't remember at least the post you were looking at. I think they literally don't care if you were halfway through reading something when you flicked out of the app and go back in - refreshing the page and showing you all new stuff is probably measurably "better for 'engagement'" by whatever silly metrics they use.
Youtube/Google just make these shitty small annoying decisions just to make the iOS experience that little bit more annoying than it has to be.<p>Case in point — Youtube background play doesn’t pause when Siri makes an announcement, so if you’re listening to something you get two voices over each other.<p>I gave it the benefit of the doubt and figure it must be some kind of iOS thing, until I was listening to Audible one day and it paused automatically. So it’s just a google thing, not a third-party apps thing.<p>i have the same issue with the Youtube queue — this is something that could easily be persisted, but they just choose not to.
Too slow to edit. But also now playing just seems to go away after a while. Why isn’t this written to some nonvolatile place and just preserved? It feels like it must be on purpose but I wonder what the purpose is.
I assume the purpose of the Now Playing clearing after a while is the idea that when people start a "new session" with their device it should be "clean". Like, if Now Playing <i>didn't</i> randomly disappear then for most people it would <i>always</i> be on, indicating some paused music or podcast playback. It would also never give a chance for that elusive "start playing" experience that shows up in its place sometimes to recommend that I listen to one of four songs/podcast episodes.
I find myself saving a ton of stuff to my Watch Later list, because I can’t trust the Back button when using YouTube. This issue exists on the phone, web, and AppleTV. YouTube just likes to randomly refresh everything. It’s the most annoying “feature”.
Brave is a very good YouTube app. You can download videos for offline viewing, build a local playlist of said videos, and bypass ads all in one go.
Even system apps like Photos have completely given up on state restore. I'm deep in an album comparing a photo to something on the web? Sorry, Safari needs all that RAM, Photos all is kicked out, and Photos can't possibly remember you were inside an album (despite, you know, all the APIs Apple specifically has to manage this [0]). They USED to care about these things and made it seamless enough that you weren't supposed to know that the the app was killed in the background, but they just don't seem to care anymore<p>[0] <a href="https://developer.apple.com/documentation/SwiftUI/restoring-your-app-s-state-with-swiftui" rel="nofollow">https://developer.apple.com/documentation/SwiftUI/restoring-...</a>
Now is bad too, but my recollection is that the iPhone 3G-era task killer was EXTREMELY aggressive and required "tricks" to keep your state in the one app you could run
On a tangent how about those sweet app updates with patch notes reading <i>bug fixes</i> every week or so from the likes of Xiaomi and Anker weighing in at 600-700mb.<p>It's all gone to $hit, efficiency is gone it's just slop on top of more slop.
I feel like this might be intentional to a certain degree, at least on YouTube or Facebook.<p>If you switched off the app while looking at a certain post or watching a certain video, that's a negative engagement indicator, so the app wants to throw you back into the algorithmic feed to show you something new instead.
Conveniently, if you're watching a youtube video with an ad, switch apps and youtube reloads, you have to watch the ad again
Very specific complaint that has nothing to do with the amount of ram you have, that’s a software choice in iOS. Kinda a tangent for a top comment.
I really dont understand that at all. Web Pages are mostly static, you would think the iPhone would cache websites reasonably well.<p>I remember on Android I dont recall the app name specifically, but it would let me download any website for offline browsing or something, would use it when I knew I might have no internet like a cruise.<p>Heck there used to be an iOS client for HN that was defunct after some time, but it would let you cache comments and articles for offline reading.
It's the js that does it, because so many webpages are terribly optimized to integrate aggressive ad waterfalls into them. Or have persistent SPA framework's doing continually scope checks.<p>That being said, there's no reason the Safari context shouldn't be able to suspend the JS and simply resume when the context is brought back to the foregrown. It's already sandboxed, just stop scheduling JS execution for that sandbox.
Obviously it depends on what you're consuming, but popular sites are rarely static web pages.<p>Safari suspends backgrounded tabs. I think that's what we're observing here rather than strictly memory pressure.
Web pages that make sense are mostly static. But these days articles need to load each paragraph dynamically, so in order to save 3kb in case you wouldn't finish the article you need to download 5mb of js to do that, plus a bunch of extra handshakes.
iOS I think has really aggressive background task killing, and it also drives me insane. I know they do it for battery life but I'm about ready to switch to Android, and would have a long time ago if I that didn't also mean replacing my watch, headphones, etc.<p>Is it too much to ask for me to manage my own background processes on my phone? I don't want the OS arbitrarily deciding what to pause & kill. If it actually does OOM, give me a dialog like macOS and ask me what to kill. Then again, if a phone is going OOM with 12GB of RAM there's a serious optimization problem going on with mobile apps.
> iOS I think has really aggressive background task killing, and it also drives me insane. I know they do it for battery life but I'm about ready to switch to Android, and would have a long time ago if I that didn't also mean replacing my watch, headphones, etc.<p>Android does all sorts of wacky stuff with background tasks too... Although I don't feel like my 6 GB Android is low memory, so maybe there's something there, but I also don't run a lot of apps, and I regularly close Firefox tabs. Android apps do mostly seem well prepared for background shenanigans, cause they happen all the time. There's the AOSP/Google Play background app controls, but also most of the OEMs do some stuff, and sometimes it's very hard to get stuff you want to run in the background to stay running.<p>I dunno about watches, but Airpods work fine with Android, as long as you disconnect them from FindMy cause there's no way to make them not think they're lost (he says authoritatively, hoping to be corrected).
I recently started learning how to do iOS apps for work and the short answer is: you don't.<p>Apple seemingly wants all apps to be static jpegs that never need to connect to any data local or remote, and never do any processing. If you want to do something in the background so that your user can multitask, too damn bad.<p>You can run in the background, for a non-deterministic amount of time. If you do that, iOS nags your user to make it stop. If you access radios, iOS nags your user to disable it.<p>It's honestly insane. I don't know why or how anyone develops for this platform.<p>Not to mention the fact that you have to spend $5k minimum just to put hello world on the screen. I can't believe that apple gets away with forcing you to buy a goddamn Mac to complile a program.
You can get a brand new Mac for < $600<p>People develop for iOS because iOS users spend more money. End of story.
I've never felt nagged. Every time I get one of those popups, which isn't too often, I think "neat, good to know."<p>It's inconvenient that apps can't do long-running operations in the background outside of a few areas, but that's a design feature of the platform. Users of iOS are choosing to give up the ability to run torrent clients or whatever in exchange for knowing that an app isn't going to destroy their battery life in the background.
> If you do that, iOS nags your user to make it stop. If you access radios, iOS nags your user to disable it.<p>These are features, because we can't trust developers to be smart about how they implement these. In fact, we can't even trust them not to be malicious about it. User nags keep the dveloper honest on a device where battery life and all-day availability is arguably of utmost importance.<p>> you have to spend $5k minimum just to put hello world on the screen.<p>Now that's just nonsense.
Oh, indeed, that's premium brand experience right there for you: all the basic stuff is broken, would you like to more apple services to go?
It’s not just mobile safari, safari on desktop does the same thing even with lots of memory available. Whatever they’re doing to limit a tabs resources needs to go, it’s so frustrating.
I am on my $110 android device from 2022 (4GB RAM), and I have never faced the browsing related issues that you mentioned.
My phone came with stock android 11 ROM with no bloats, so that might've helped too I guess.
Settings > Apps > Safari > Reading List: Automatically Save Offline<p>“Save webpages to read later in Safari on iPhone” <a href="https://support.apple.com/guide/iphone/save-pages-to-a-reading-list-iph1a4721132/ios" rel="nofollow">https://support.apple.com/guide/iphone/save-pages-to-a-readi...</a>
You're just adding a step that doesn't fix the primary issue (you can already manually save any page you want without adding it your reading list). Someone should be able to go to their translate app, then their photo galley, and back to Safari without it needing to refresh the context.
That doesn’t save the current dynamic state of the page. It’s at most useful for static content, but even on a Wikipedia page you’ll lose your current state of expanded/collapsed sections and hence your reading position.
Wasn't the 2DS just a 3DS minus the lenticular screen, and especially minus the front-facing camera that did face tracking to improve the quality of the 3D?<p>My understanding was that market research showed a lot of users were turning off the 3D stuff anyway, so it seemed reasonable to offer a model at lower cost without the associated hardware.
> My understanding was that market research showed a lot of users were turning off the 3D stuff anyway<p>It was also because young children weren't supposed to use the 3D screen due to fears of it affecting vision development. You could always lock it out via parental controls on the original, but still that was cited as a reason for adding the 2DS to the lineup.<p><a href="https://www.ign.com/articles/2013/08/28/nintendo-announces-2ds" rel="nofollow">https://www.ign.com/articles/2013/08/28/nintendo-announces-2...</a><p>> Fils-Aime said. “And so with the Nintendo 3DS, we were clear to parents that, ‘hey, we recommend that your children be seven and older to utilize this device.’ So clearly that creates an opportunity for five-year-olds, six-year-olds, that first-time handheld gaming consumer."
IOS or safari issue then, I also have 12GB ram on my S25+, with 25 open tabs, and I quickly did a test, there was non that were un-loaded that I had to reload<p>It happened a lot on my previous phone with only 4GB ram though
It’s more likely related to choices involving making the battery last long.
Android Firefox with ad blockers - life changing.
Mine (Android Firefox) does it when I have a YouTube video paused and do something else for a bit. Whenever I stop watching a video, I have to screenshot it so I know the timestamp to try to get back to later :-/<p>App battery usage is unrestricted, so it's not that.
Memory uses power, this is a major factor in why aggressively stopping things helps.<p>There is a strong argument modern mobile goes too far for this.
With dram, you have to refresh every cell within a periodic interval. Usually this is handled in hardware. It would be a crazy optimization if unused pages weren’t refreshed. There would have to be a decent amount of circuitry to decide that.
I'm not suggesting it exists, but I could plausibly see something where the range to refresh could be changed at runtime. If you could adjust refresh on your 8 GB phone in 1 GB intervals (refresh up to 1/2/4/8 GB etc; or refresh yes/no for each 1GB interval), the OS could be sure to put its memory at low addresses, and the OS could do memory compaction into lower addresses and disable refresh on higher addresses from time to time. Or ... I think there's apis for allocations for background memory vs foreground memory; if you allocate background memory at low addresses and foreground memory at high addresses, then when the OS wants to sleep, it kills the process logically and then turns off refresh on the ram ... when it wants to use it again later, it will have to zero the ram cause who knows what it'll have.<p>I don't work at that kind of level, so I dunno if the juice would be worth the squeeze (sleep with DRAM refresh is already very low power on phone scales), but it seems doable.
I can't imagine the iphone is entirely powering down memory. Otherwise just unallocating memory won't change the power consumption.
This is an argument for having less memory on a hardware level. But once the DRAM is there, it uses power, whether or not it stores useful data or useless data.<p>There's a reason why we say unused RAM is wasted RAM.
Powering down unused physical RAM is absolutely a thing on some systems. For one thing, it's required if you ever want to support physical memory hotplug. The real issue however is that the gain from not doing DRAM refresh is clearly negligible: it's no more than the difference between putting a computer to sleep (ACPI S3), or putting a phone to sleep in airplane mode - and powering it off.
Am I too much of an idealist to hope that AI leads to less buggy software? On the one hand, it should reduce the time of development; on the other hand, I'm worried devs will just let the agents run free w/o proper design specs.
The message with AI from execs is that you have to go fast (rush!). Quality of work drops when you rush. You forget things, don’t dwell on decisions and consequences, just go-fast-and-break-things.
> The message with AI from execs is that you have to go fast (rush!). Quality of work drops when you rush.<p>Sure, but otherwise, the competition will be first to market, and the exec may lose their bonus. So, the exec keeps their bonus, and when the tech debt collapses, the exec will either have departed long ago or will be let go with a golden parachute, and in the worst case an entire product line goes down the drain, if not the entire company.<p>The financialization and stonkmarketization of everything is killing our society.
The average LLM writes cleaner, better-factored code than the average engineer at my company. However, I worry about the volume of code leading to system-scale issues. Prior to LLMs, the social contract was that a human needs to understand changes and the system as a whole.<p>With that contract being eroded, I think the sloppiness of testing, validation, and even architecture in many organizations is going to be exposed.
The social contract where I work is that you’re still expected to understand and be accountable for any code you ship. If you use an LLM to generate the code, it’s yours. If someone is uncomfortable with that, then they are leaning too hard on the LLM and working outside of their skill level.
Considering that AI still can't even reliably get basic programming tasks correct, it doesn't seem very likely that turning it loose will improve software quality.
It might actually turn out like that. A lot of bloat came from efforts to minimize developer time. Instead of truly native apps a lot of stuff these days is some react shaped tower of abstractions with little regard for hardware constraints.<p>That trend might reverse if porting to a best practice native App becomes trivial.
Considering how many companies that have adopted AI led to disastrous bugs and larger security holes?<p>I wouldn't call it an idealist position as much as a fools one. Companies don't give a shit about software security or sustainable software as long as they can ship faster and pump stocks higher.
That is an Apple problem and keep in mind that iPhone doesn't do multi-task, the fact that you are having problems with 12GB is not surprised to me.<p>I have to use a Macbook M4 at work with 24GB, I have an AMD Lenovo Ryzen7 with 32GB running Linux Mint Cinnamon.
It is infuriating how slow this Macbook is, even to shut it down is slow asf.<p>macOS is not different than Windows, I cannot wait for COB to get back to my Linux laptop.
I have a personal 16 GB M4 Macbook Air and my wife’s work computer is a 24 GB M4 Macbook Pro. My laptop runs circles around her work’s.<p>Companies install so many invasive shit in the name of security theater and employee control that there is lots of waste going on.
24GB is not enough, it will keep swapping, compressing etc. I had such device at work. 32GB is a night and day difference.
That said my workflows are such that I need at least 128GB now...
> and it makes me want to throw my phone across the train (Where the internet often cuts out!).<p>Spotted the German lol<p>The general problem is that many people don't bother testing their apps outside of their office wifi with low latency, low jitter, low packet loss and high bandwidth. Something like persisting the state when the OOM/battery-save killer comes knocking onto some cloud endpoint? Perfectly fine on wifi... but on a mobile connection that might just be EDGE, cut entirely because the user is just getting a phone call and the carrier does not do VoLTE, or be of an absurd latency? Whoops. Process killer knocks a -9 and that's it, state be gone.<p>Side note: Anyone know of a way to prevent the iPhone hotspot from disassociating with a MacBook when the phone loses network connectivity? It's darn annoying, I counted having to reconnect <i>twenty times</i> on a train ride less than an hour.
but think of all your battery life gains
Removing docking functionality could possibly reduce RAM usage by never enabling 4K screen output. This would be similar to the switch lite.<p>Although, for a $450 device that doesn’t need to make much of a profit on its own, I also don’t think they’re heavy on memory in the first place (12GB). You can buy top quality Chinese Android handhelds with more RAM and better Qualcomm processors than the Switch 2 for about the same price, and those companies are making $0 in software royalties (e.g., AYN Thor Max is $450 with a 16GB/1TB configuration).
> Removing docking functionality could possibly reduce RAM usage by never enabling 4K screen output. This would be similar to the switch lite.<p>Every version of the Switch 1 had 4GB of RAM, they didn't cut that on the Lite. Going back and patching every game to ensure it ran on less RAM it was originally designed for would have been a nightmare.<p>> (e.g., AYN Thor Max is $450 with a 16GB/1TB configuration).<p>AYN just announced that the Thor will get a price increase soon for obvious reasons.<p><a href="https://www.reddit.com/r/SBCGaming/comments/1rf5gxq/to_thor_or_not_to_thor_pricing_increase_in_april/" rel="nofollow">https://www.reddit.com/r/SBCGaming/comments/1rf5gxq/to_thor_...</a>
Oh yeah, I accidentally implied the switch lite cut down RAM when it didn’t.<p>Of course the Thor Max will have a price increase, but also, obviously 16GB/1TB is a massively bigger bill of materials than the Switch 2’s 12GB/256GB configuration.<p>And I forgot to mention that Nintendo has far more pricing leverage in terms of their volume.
I honestly think the memory shortage kills the possibility of a Switch 2 Lite.<p>Nintendo can't realistically take memory budget away from developers after the fact. The 2DS cut the 3D feature from the 3DS, but <i>all</i> games were required to be playable in 2D from day 1, so no existing games broke on the cost-reduced 2DS.