https://github.com/electron/electron/issues/48311#issuecomme...
It's really fucking obnoxious that somehow a goddamn web app in a wrapper is managing to cause system wide hangs.
"Application should use all cores and all available memory."
In the past few years, the only applications i've seen run amok with memory usage at least were of course Electron based.
However, note that this problem is on Mac OS "users had too much contrast so we ruined it" 26 Tahoe. It's part of the early adopter experience.
But Spotlight file search is completely broken, rebuilding the index doesn't help, and web results are the only thing it returns. After 20 years of intense research, Apple finally caught up to Microsoft in race to make search broken and useless.
I had the same issue; killing Spotlight processes fixed it. (A reboot would probably do the job too.)
(Killing the process, ofc)
Aside from that, the Settings menu memory leak (or whatever it the problem is) is very much more apparent on the older mac than it is on the new one, but it's still reproducible. Neither computer is running Tahoe yet, these issues were already present, but based on on your comment, they might now be functionally worse in addition to being a performance and user experience joke.
I’ve been part of the public beta and it’s been so weird going from “this sucks but it’s a first beta” through “it really isn’t improving much as time goes by” to “we’re a week from launch, there’s no way they release this after the Apple Intelligence fiasco”.
And yet here we are. Performance issues, ui inconsistencies and garish design everywhere.
Hasn’t it always had horrible problems? I’ve never heard a good thing about it in use.
Hasn't that been Apple's norm for a few years now?
Not trying to land a cheap dunk here; I've honestly been running into rough edges and bad design with every major release for a long time.
Not to this degree.
I’ve had 3 memory leaks in native apps, including the calculator. There’s basic alignment errors pretty much everywhere. In many places text can become fully unreadable (black on black, white on white, text over a transparent background with overlapping text below…).
It’s not slightly lowered quality, it’s the kind of inconsistency you expect mixing custom launchers and icon packs.
defaults write com.google.Chrome NSAutoFillHeuristicControllerEnabled -bool false
https://issues.chromium.org/issues/446481994#comment17That command’s equivalent is being patched into Chrome and will have to ripple downward into Electron apps; directing complaints to each electron app impacted with a link to the relevant Google issue workaround will give them sufficient data to mitigate it, if they bother to.
Apple is already aware — https://x.com/ian_mcdowell/status/1967326413830472191 (apologies for the Twitter link, but it’s an Apple employee). EDIT: Someone else has traced the issue to Electron messing with internal OS APIs! Courtesy of https://news.ycombinator.com/item?id=45377253 —
> It turns out Electron was overriding a private AppKit API (_cornerMask) to apply custom corner masks to vibrant views.
ps. This issue was discussed a week ago here:
https://news.ycombinator.com/item?id=45292019
pps. Manually applying this workaround without scheduling its future removal has a slight but non-zero risk of someday breaking OS-linked autofill in your electron apps in weird or unexpected ways.
ppps. I don’t work for anyone, school for another three years minimum.
https://xcancel.com/ian_mcdowell/status/1967326413830472191
FTFY :)
Not awesome if you're in a large company where you have to communicate with others and don't get to choose the medium.
The most inefficient solution (in both space and time complexity) being suggested to build desktop apps is now shown to be causing widespread sluggishness.
So much for interviewing developers for algorithms and data structures. Also Rust won't save you or make Electron faster either.
2. What better cross platform GUI alternative do you suggest?
The most inefficient solution (in both space and time complexity)
Those are not the only qualities / metrics to optimize for. Developer eXperience, cross platform, open standards, easy compatibility with websites, easiness to keep updated etc. can be far more importanthttps://github.com/neovide/neovide/issues/3225
Other Tahoe issues with non-Electron apps:
I've had this issue on my M1 and now my M4 mac for about a year now, and I can't figure it out. Uninstalling and reinstalling hasn't helped.
Literally, someone can reliably send me a slack notification in a meeting (even when DND is on) and cause my Zoom outbound video to get gummed up.
Edit: I ask because I wonder if it has to do with this.
kccqzy•1h ago
If this comment is to be believed, it's not Apple's fault. It's the apps mucking around with the internals of AppKit.
This example just happens to illustrate two of my least favorite software engineering practices: (1) despite one piece of code making a method private, another piece of code still overrides it/modifies it/calls it, an affront to the idea of encapsulation; (2) a piece of code has different behavior depending on the identity of a function, contrary to the principle of extensionality.
wk_end•1h ago
tom1337•59m ago
asqueella•31m ago
pavlov•59m ago
wk_end•52m ago
The recent stagnation of the OS has nothing to do with attempting to maintain backwards compatibility.
acdha•42m ago
I think it’s fair to question whether the decisions around backwards compatibility have been worth the cost but I’d imagine they’re already doing that. Enterprise IT departments love Windows but nobody else does, and the generation of people who grew up using iOS/Android and macOS/ChromeOS for school aren’t going to jump at the chance to bring that enterprise IT experience into their personal lives.
cyberax•24m ago
It's the new stuff that is slow and unusable.
wk_end•22m ago
The file system is a great example of how Windows has evolved, actually. Windows 95 was (initially) still using FAT16! NT4 was using NTFS 1.2, we're now on NTFS 3.1. To the file system itself MS added (per Wikipedia): disk quotas, file-level encryption, sparse files, "reparse points" (dunno), journaling, "distributed link tracking" (also dunno), "the $Extend folder and its files" (ditto), and better MFT recovery. Also, apparently not part of the file system itself: symbolic links, transactions, partition shrinking, and self-healing. And that's just what I gleaned from the History section on Wikipedia's NTFS article; I'm sure there's more.
Apple specifically was much slower catching its file system up with Microsoft, despite their disinterest in backwards compatibility. And if Apple jumped ahead a little with APFS, well, NTFS holds its own just fine against APFS for 99% of users. And for when it doesn't, there's also ReFS, an entirely new next gen file system used on Windows Server, and is now slowly making its way onto the desktop.
sgjohnson•26m ago
Now imagine if you could get rid of all that legacy crap to make it work in the first place. Microsoft CAN’T do that, because the entire premise of Windows is backwards compatability.
Apple? They don’t care. Killing 32bit apps? Just make an announcement saying that in 2 major macOS releases, macOS won’t be able to run 32 bit apps. It cuts down bloat, and it cuts down on the potential attack surfaces for malicious actors.
Obviously just about everyone would agree that Windows 1 -> 7 was progress. I don’t think you’ll find too many people who’ll say the same about Windows 7 -> 11.
wk_end•21m ago
What would be the consequence of this? What harm does this do? Would it be worth Spotify and Slack breaking when I upgrade my OS?
cosmic_cheese•58m ago
wk_end•44m ago
cosmic_cheese•36m ago
If I were building a FOSS platform, I wouldn't give a second thought to third parties making use of my platform's private APIs. They're private for a reason, whether that be because they're not yet fully baked or because using them can have unintended consequences, they're not intended for public consumption. I especially wouldn't want somebody else's platform to depend on my private APIs, because I am then effectively locked into keeping that API frozen in time by the numerous others building on this other person's platform.
It's generally poor practice to build upon such brittle things as under-the-hood tinkering anyway.
Aurornis•51m ago
Standard practice for any mobile or desktop software is to start testing on the betas as soon as they're available. Unless this was a last-minute change before the final release, it's on the software developers to use the betas to prepare their software for upcoming releases.
cosmic_cheese•1h ago
x0x0•57m ago
Also, this in the comment:
> [a user] Please try any way of getting in touch with Apple engineers you can. As a project, we don't have a better connection to Apple than you do.
>
> One approach might be the engineer who replied to the Bluesky post that someone linked to above about the input issue.
Pure incompetence. Major projects have no way to do anything but ping randoms on socials.
marcosdumay•55m ago
That's inherent on the way current computers manage the memory. And I don't know if the gains are enough to pay for the loses of guaranteeing encapsulation.
One could reach for static analysis, but that would imply some restrictions on the machine's assembly. Those are probably worth it.
> a piece of code has different behavior depending on the identity of a function
I have written my quota of "find the latest caller on the stack with property X, verify if it has access", on different languages. Some times a function can't in any way be just a function.
btown•41m ago
How do you distinguish between a superclass that always returns null/noop, vs. a subclass that happened to return null in this specific case?
Sometimes this is useful/vital for setting expectations to the user what functionality the instance is likely to have.
Now, you could refactor everything to have the superclass's implementation either throw a NotImplementedError, or return a sentinel value... but changing every call site might be a gargantuan task. Similarly, adding static metadata to every subclass might not be feasible. But checking whether the function's (pre-bound) identity is different is a very easy hack!
Ironically, this might indeed be exactly what Apple is doing here, and they're doing it in a tight loop.
ryandrake•34m ago
stalfosknight•29m ago
I don't get it.
cyberax•28m ago
thfuran•6m ago
kccqzy•15m ago
snarfy•41m ago
cosmic_cheese•33m ago
SkiFire13•40m ago
Note that most definitions of extensionality don't consider the number of steps to achieve the result as an observable property, although in practice it is.
cyberax•34m ago
stalfosknight•24m ago
1. They don't know how to do it the right way
or
2. They can't be bothered to do it the right way
#1 I can understand. We all make mistakes as we learn and grow as developers. #2 is just arrogance / laziness on the part of the developer. Compounding it by blaming the platform owner that clearly and explicitly told you not to go that route is gross.
cyberax•23m ago
3. There is no documented way to do it.
stalfosknight•16m ago