5 ms·
The entire settings app rewrite is the canary of how Apple's software development process is broken, especially for the mac.
by madeofpalk 2y ago
The entire settings app rewrite is the canary of how Apple's software development process is broken, especially for the mac.
- tacker2000 2y agoI mean ok, the old one was already a bit overloaded and unwieldy, so a redesign was probably overdue and Ill give them the benefit of the doubt here but WTF is with the 1-2 second delay when switching between the menus in there? Are they doing web requests upon opening every settings page or what? This is real amateur hour.
- lotsofpulp 2y agoI use an iPhone 13 mini, and I experience no delays within the settings app.
- tacker2000 2y agoI was talking about the settings app in macOS.
- lotsofpulp 2y agoOh, I see. There is a slight delay (closer to 1 second or less) switching menus inside of Settings on my M3 Air.
- il-b 2y agoThere is no reason for the delay to be more than 100ms. The 1 sec delay must be due to some extremely inefficient lazy init or a bunch of io happening when you switch between screens
- mananaysiempre 2y agoWe’re (largely) not running OSes from spinning metal anymore, so even if there were some I/O that needs to happen (there shouldn’t be), a second would be an indication that the app was doing it badly. A modern SSD will read multiple gigabytes in a second, if the reads are sequential and you don’t wait for each one to complete before starting another. Unfortunately, we as a species have not figured out the programming tools necessary to make that natural.
- brailsafe 2y agoThey appear to be launching each settings screen as a separate app and retaining it until Settings is quit. How many resources this requires, or how much this contributes to the lag, I don't know, but... Open Activity Monitor, and type in System Settings into the search. Then open the Settings app and press the down arrow key through all of the menus. You'll notice that each one of them appears as their own line item in Activity Monitor until you quit Settings, and if you keep going up and down through the menus, it'll (probably) get slower and slower; it seems like there's a memory leak or something going on there, and my hunch is that each old settings menu was thinly wrapped in a SwiftUI view and gets launched as soon as you click its nav item.
- wpm 2y agoThat’s not too different than the old app, but instead of .app bundles, the UIs and stuff were bundled in .prefPane bundles.
- saagarjha 2y agoThey're not .app bundles, they're .appex (extension!) bundles from /System/Library/ExtensionKit/.
- tacker2000 2y agoYea some other commenter mentioned that they most likely re-wrote the whole thing Swift. So is Swift just too crappy for this kind of UI, that accesses low level system stuff? or are the devs just incompetent? Who knows…
- throwaway290 2y agoSwiftUI is not swift. It's about framework not language. But even that doesn't matter I think Apple has decent QA for low level stuff (remember how they quietly converted every iphone to APFS and back just to test that it will work later) but bad QA for final GUI. Most of cocoa/objc stuff was written long ago and back when QA was better. If this was cocoa and objective c today it would be equally buggy.
- userbinator 2y agoAre they doing web requests upon opening every settings page or what? At least some of them are actually web pages: https://blog.jim-nielsen.com/2022/inspecting-web-views-in-macos/ https://blog.jim-nielsen.com/2022/inspecting-web-views-in-ma...
- OkGoDoIt 2y agoHmm, and using React even! No wonder it’s slow and bloated.
- ngcazz 2y agoYou gotta wonder if this has been a reaction to a shrinking Cocoa/ObjC and SwiftUI talent pool
- tacker2000 2y agoCould be that nowadays a lot of UI code will probably converge on web-first stuff like React, since it has a larger talent pool, as you said, and is inherently cross platform. Microsoft's newer apps like Teams are also built in React.
- progmetaldev 2y agoTo be fair, Windows really had the same type of issues going from the old Control Panel to Settings. I still get large delays for some of the screens in Windows Settings.
- rqtwteye 2y agoI think it's pretty crazy how slow a lot of the newer things in Windows 11 are. Explorer is super slow, Settings are slow. Sometimes I think even if I wanted to make things that slow (without using sleep statements), I wouldn't know how do it.
- _carbyau_ 2y agoMake opening a settings page require multiple queries to Microsoft servers. That way you get lag with a bonus of variability and in the case of broken wifi, extreme lag as it waits for the connections to time out. I'm not saying this is what happens. But it's scarily plausible and it really shouldn't be.
- pjerem 2y agoIf it was happening, they could at least spy us asynchronously.
- drumttocs8 2y agoYou can certainly test the theory pretty easily with Wireshark
- _carbyau_ 2y agoI was lazy that day. But today! I just used procmon, filtered to include "systemsettings.exe", turned off all the other guff and just saw network packet meta data (no content). And yes, as you browse around system settings there are TCP connections to MS servers. I don't know that they are "blocking" though and have run out of care factor.
- 2y ago
- ChrisMarshallNY 2y agoThey rewrote many of their tools in SwiftUI. So far, I am not willing to ship anything in SwiftUI. I don't think it's up to the task.
- MichaelZuo 2y agoAnd it's still missing certain things Cocoa had well before 2015...
- internetter 2y agoThat’s ok because it’s simple enough to escape SwiftUI. Use SwiftUI for the simple bits and UIKit for the harder parts. It’s not a nice solution, but it works
- ChrisMarshallNY 2y agoI consider use of UIViewRepresentable to be a kludge, and basically removing the advantages of SwiftUI. I know that SwiftUI has some native wrappers, like maps, but the way that SwiftUI works, is so radically different from UIKit, that I think mixing them is problematic.
- kingds 2y agoit's comically bad. the UI is a mess, the search functionality is broken, you can't resize the window horizontally. it's feels like a hello world first project in a new language type of app. also - it's such a bummer that they have decided to shit the bed so hard on software at a moment when their hardware lineup is arguably at its pinnacle. like, the hardware has been firing on all cylinders since M1 but the software degradation is making it less and less pleasant to use.
- nullpoint420 2y agoright on the money.