Windows 11's built-in Weather app wastes more than 1 GB of RAM
notebookcheck.net
notebookcheck.net
https://en.wikipedia.org/wiki/Dennis_Fong#/media/File:John_C...
I made a little conference schedule app a few weeks ago for a conference I was at. I used my own rust UI toolkit, which calls in to cocoa to make use of native UI components. The resulting binary is about 500kb and it uses a couple megs of ram while running. It looks and feels like a totally native iOS app. As far as the OS is concerned, it is.
Even 500kb feels too big for what it is. I’m rewriting the core at the moment, and I think it’ll be more efficient as a result. But I’m still pretty happy with it.
I'm curious if you use winit for windowing, or something lower level that's just mac specific.
UI library is here: https://github.com/josephg/leptos-native
And here's the schedule viewer app I made with it. It runs silky smooth on device: https://github.com/josephg/dweb-sched
The whole project is currently experimental & vibe coded. It's missing a lot of components, and it has bugs. I'm currently rewriting it by hand to do it properly.
I tried to learn SwiftUI a few years ago. XCode was horribly slow, and it would hang and crash all the time, even when working on small example projects. I'm excited by the thought that I can use any rust IDE to write UI code. Rust's compiler, toolchain and IDEs seem way more reliable.
The view! builder macro at the moment is designed to look like JSX, since it was ported directly from leptos. But I'm considering dropping the jsx and using a fluent API. Something like this:
let count = RwSignal::new(0u32);
let view = vstack().padding(16.0).gap(12.0)
.child(label().text(move || format!("Count: {}", count.get())))
.child(
hstack().gap(8.0)
.child(button()
.on_click(move |_| count.update(|c| *c = 0))
.text("Clear"))
.child(button()
.on_click(move |_| count.update(|c| *c -= 1))
.text("-1"))
.child(button()
.on_click(move |_| count.update(|c| *c += 1))
.text("+1"))
);
Code is a bit less readable like this, but autocomplete and cmd+click all works out of the box in your IDE.The program that I use to manage my small business, basically a GUI wrapper on an sql DB is a total delight to use, because everything happens instantly. Even opening it is instantaneous.
Modern software is such a bloated mess that you kind of get used to a 20 second start-up and a .25-1 second delay on every action. Then you use something that isn't bloated junk and it feels like actual magic.
"memory usage is important": creates a 1TB binary
"take multiple steps": uses so much power, extreme global warming, it will just print "hot"
"think outside of the box": it will enslave you so you will not care about weather
Yeah, people get upset when you spew out total bullshit.
I work as a performance specialist and "AI writes code like that" is utter nonsense. AI writes the same terrible performing code that was the mediocre developer standard on Stackexchange and other codebases it ate.
You still need a lot of vigilance and time to make well performing software and most software engineers just don't give a damn if we don't outright block their PRs/feature launches before passing performance tests.
To this day I never saw an AI write anything less than a 3Mb binary. Do you have specific examples in mind, and if so, can you share them?
It's fully vibecoded, and quite functional, although I'm still working out some bugs.
In order to push beyond that (e.g. architecture, size, performance), the human has to bring the constraints. There's only so much AI can/should default assume from "write code for me" (which I expect a lot of bad / non-HN developers are doing).
It is exciting that there's an opportunity for global improvement though! After the general model improvement pace slows, expect there will be a lot of room for code gen AI optimization, and if "write code for me" can be made to generate more efficient code... suddenly all AI-generated code (read: most code) will improve.
Shit code is out in the wild because the company decided to optimize for programmer labor cost instead of code efficiency. If instead apples:apples because AI code gen is being used both ways, everyone wins.
Feels like what I imagine were the early days of optimizing compilers, when I'm sure there were a large number of really bad assembly programmers out there.
And you need code to handle device orientation, in case the PC Tower is flipped on the side.
In fact, that seems a lot. Back in ~1996 I was running one of the EFnet servers on a Compaq with 8MB of RAM.
Fortnite, PUBG, COD, all are disgraceful in comparison.
I disagree with Fortnite and PUBG, whilst PUBG is a little clunky it did usher in a completely new game style AND importantly introduced much better situational audio which other games didn't have.
It might have popularized it, but PUBG was far from the first 'Battle Royale' game. Hell...I think it goes to those old Minecraft "Hunger Games' servers, but I'm sure it predates even that
I'll never forgive EA for C&D'ing the community efforts to revive the servers. Fuck EA.
I had just built my pc with 128gb of ddr5 ram spending less than an average android phone (I think like $300).
I would like to retract that statement. Thanks.
I stated that we should stop worrying about [X] consuming [finite resource].
Why would you ever say something like this? When was that ever true?Real programming means writing your own javascript glue, pulling in hundreds of supply-chain-compromised js libraries that you never inspect or profile, and running the whole thing in a browser engine, while making sure to store all state in the cloud.
The modern breed of programmers who don't understand programming have switched from C and C++ to Rust and Go, so they're on the right track of using more resources to improve the developer and user experience, but they haven't gone nearly far enough. They still do dumb things like write efficient code, and profile and put effort into reducing binary and resident size. They should trust in javascript and the browser and the internet, like all good programmers do.
Zig programmers have completely lost the plot. They're of the type that tries to write "hello, world" manually rather than pulling in a third party library so they can efficiently call helloWorld(). Writing single-binary apps that fit on a floppy? Who even cares? What even is a floppy? How do they call themselves programmers without css and advertising telemetry?
Troll post? Or has fanboyism really gone this far?
I'm really not a huge fan of rust as a language but it is clearly delivering results in that e.g. I find myself actively hoping that people rewrite web tooling in rust and so on. C++ is a mess that should be allowed to die.
Yeah, there are some results in Firefox and some results in Mesa and some results in the linux kernel, but that's about all.
It is clear from the article that what eats up so much RAM is not the weather app itself but the framework it runs on. There is a "Renderer", a "GPU Process",... eating most of it.
The thing that the task manager doesn't tell you is whether or not these are shared components. It may be that the 662 MB used by the "Renderer" is shared between many Windows components, so killing that Weather app may not reclaim as much space as you may hope, instead, it would require killing every user of the component, some may be core system apps.
In addition to the distinction between private and shared memory, there is also the distinction between actual RAM usage and and virtual memory. It is possible for a process to memory map a 100 GB file. If you look at the address space, it will take 100 GB more of virtual memory, even though it may be actually zero physical RAM, but it is not always zero either, the parts of the file that are currently accessed take up some space, which may later be reclaimed by the OS by committing the page to disk.
Even the most obvious "I do a big malloc()" kind of memory use is not that obvious, the OS can overcommit, put stuff into swap, use memory compression, etc... And it can do that even if the system is not overloaded, as to make more space for the disk cache for instance.
So seeing "1 GB" in the task manager is just a vague hint of how it may affect performance. And not all "task manager" tools give the same value for the same program (so Windows vs Mac may be misleading). "Process Explorer", a more advanced version of the Windows task manager can give a lot more details, with different values of memory usage depending on what you are looking at.
Fine, shutdown the weather and stock ticker apps.
From the screenshot in the article, this is the memory usage of the Renderer process spawned by the Weather App. I find it very unlikely that some other app (say, the Copilot app) can then piggyback on Weather Renderer process. Do you have a source for this?
> killing that Weather app may not reclaim as much space
Closing the weather app on my PC does in fact kill all child processes and frees up around 1GB of committed RAM. Are you not seeing the same?
As for the "piggybacking" it is not really piggybacking, it is how shared libraries work (emphasis on the "shared"), aka. DLLs on Windows. For instance, if 2 to processes load "library.dll", it will be only loaded once, and the read-only parts of the library will be shared between the processes and it is one of the big advantages of shared libraries over static linking. A major part of the Weather app bloat comes from the browser engine it comes with, something many apps do today, and it would be reasonable to think that 2 apps using a browser engines have components in common.
Anyway, if you run Process Explorer and check the weather app process, it will tell you which is which.
This, by the way is a big reason why modern apps are often so bloated. The real problem is not just that so many apps are using browser engines or other huge dependency chains, it is that they all ship with their own version instead of using what is available on the system, so you have 10 different browser engines loaded in RAM even though a single one would be enough. Traditional Linux distros do it right, but now we have containerized application that break sharing. I understand the convenience, as you don't have to deal with shared library update that break the app, but the cost in both RAM and storage space is significant.
It is the other way around, shared memory causes Task Manager to _underestimate_ memory usage. Task Manager's default views report the process private working set, no shared memory included. This means that 662MB is the _minimum_ amount of memory commit that would be released by ending the process.
> the OS can overcommit
Windows does not allow overcommit by default. It may compress or optimize memory allocations to reduce the physical working set, but the kernel will start failing memory allocations once physical + swap is exhausted regardless.
You say tomato we say tomahto
At the end of the day bloated app is a bloated app its consequences are the same.
It is not a problem of data going across process borders, it is about guaranteeing that each dependency is at the version for which the app has been tested with. From a security standpoint, it has pros and cons. The pro is that it is easier to qualify, and it makes the app less susceptible to system-level attacks and regressions. The con is that should a vulnerability be discovered in a dependency, it won't be fixed by a system update, you have to integrate the fix yourself and make a new release.
Got a bit confused by this, because nowhere in the article are the words "Renderer" or "GPU". Regardless - all processes that comprise the app are the app, not just the parent process.
When I run it locally and check in procexp it has 8 webview subprocesses and all together it's using similar if not higher levels of memory than claimed in the article. Private Bytes is over a GB in total. I expect the webview processes are sharing memory for DLLs though.
Bet one’s ass that “Renderer” sub-process is embed browser engine allocating working memory for rendering of web app page layout.
1. Install uBlock Origin in Edge.
2. Start Edge, browse to MSN Weather.
3. Click the "Add an Application" button in the address bar to get a Start Menu icon for the page.
4. Delete the in-box Weather app icon.
Now you get the same Weather app in about 130MB of RAM, with no ads. It's not as nice as a native app, of course, but it's 1000% better than the useless ads and MSN feed that you can't block from the built-in Weather icon.
(Also, go into Widget settings and turn off "Discover / Microsoft Start feed". Same crap, different surface. Get rid of it.)
not even being annoying, edge is removing manifest v2 very soon, breaking proper ad blocks just like chrome
Are you sure? I still see the "add tab to taskbar" option in the address bar and clicking it open the tab in a new window and shows a popup to pin the tab to the taskbar.
I wonder how this approach is having such an high reduction in memory usage compared to what’s stated in the article. I would assume both use the exact same WebView here.
The only explanation here that I can think of would be that the “Add an application” starts it under an existing Edge process which shares it’s memory instead of completely isolated.
> According to Windows Latest, the high memory consumption is due to the fact that Weather is not a fully native Windows application. Instead, it is essentially an MSN Weather web app built on Microsoft's WebView2 framework. Task Manager shows multiple Chromium-based subprocesses running simultaneously, which contributes to the unusually high RAM usage.
If you have Edge or Chrome open (or anything else that similarly uses Chromium) then the incremental increase in RAM usage from the Weather app is likely much smaller than the headline 1GB.
Wipe Windows from your machine. Use Arch Linux. Problem solved.
Normally though it's ~65 MiB for both clock & weather.
Also mate-screenshot is leaking RAM/processes. About ~40 MiB leaked per screenshot.
These things do tend to get fixed over time, though.
----
Highly recommend Ubuntu; I've dabbled in the past, but the fact that AMD and nVIDIA drivers are pre-installed, in a user-friendly GUI installer... is what has helped me make Linux my main desktop (over the past half-year). Bought a Microcenter prebuilt and never even booten Win11 (straight to Ubuntu installer).
Over the past three decades, I have really tried to like several Linux'es, but have always reverted to (e.g:) Win7 or MacOS. Being able to run local LLM-models is what led me to Ubuntu (RX580->VEGA64->5070Ti)... it's been a journey =P
Ubuntu is bloated now but still just about OK despite:
* Snooping on users. * Forcing people to install Snaps. * Relentlessly promoting systemd, which turned out to be a giant mistake. * Pointless fiddling about with the desktop in every release. * Canonical having a universe-class egomaniac for a CEO, even by South African tech-billionaire standards.
But if Ubuntu has been treading water for 25 years, that represents an improvement over the titanic disaster that is Windows 11, and the walled-garden den of developer hostility that is Apple.
Seems like an obvious fundraising avenue (for Ubuntu Foundation).
I've installed a few SBCs and they don't tend to have an issue booting, so I do use dd/dcfldd for those. I wonder if it's because they use SD cards that they don't have an issue.
"I know web, I deliver packaged web".
Getting off a hostile OS should be such an obvious choice we oughtn’t need to specify it, but here we are.
What a wonderful world we have created where the fix for a 1GB RAM guzzler reduces it to a mere 130MB.
Now I could start off with my old ZX80 or even my C64 (which is doing fine, thanks, and sports a USB "drive" next to its Quickshot II) but I think my first 80486 is a realistic comparison.
That ran at 25MHz, had a maths co-pro in it had 4MB RAM, a 20MB IDE HDD and I think the Orchid graphics card had 0.5MB RAM. The monitor was of course a 14" CRT VGA. OK so late 1980s!
However, that thing could run Win 3.1 and Word 2 and I think I managed to wedge a dodgy copy of Quark Express on it. I could play F117 and other games on it.
Oh well, lets see what this Linux box has on it:
/usr/bin/inxi - 1.4MB
$ inxi -w Yeovil,UK
Weather:
Report: temperature: 16.05 C (61 F) conditions: scattered clouds
Locale: Yeovil, UK current time: Mon 10 Aug 2026 01:16:05 BST
Source: OpenWeatherMap.org
Obviously, I could install a Flatpak to do that instead and waste far more resources 8)Comparing inxi to Windows Weather is like comparing vi to Autodesk. You can make 3d graphics for sure, but it's not exactly comparable.
When I run inxi -w, I get this:
Weather:
Message: Error: Your access to this resource has been blocked. Automated
requests or excessive use are not permitted. This is clearly stated in
both the help menu and man page. If you want a CLI weather tool for
routine use, try wttr.in, or use a weather widget. Remember, you never
had a "right" to this feature, it was just a little easter egg, mostly
for sys admins, which has instead been consistently abused. If you want
to know your local weather, look out your window, there it is.
Looks like something in my powerline config somewhere must be querying too much? I can't find anything on my systems, must be a very old misconfiguration on my end. I still think I prefer the Microsoft tool.Do you have VPN enabled?
Use Firefox with uBlock Origin, do not use Chrome, Chromium, Edge, Brave, Vivaldi, etc.
1. Install Linux with KDE
2. Turn on weather report widget
3. Enjoy :)
PS: You've also solved the mandatory account requirement, adds all over the OS, "Copilot" everywhere, Edge constantly coming back and much more <3
Mandatory Windows accounts can still be circumvented with a console command for Win 11 installations, but the overall enshitification package just got worse and worse.
Cinnamon is X11, but it works very well.
Heard that's patched too
At least for an install in vbox under Mint :)
But there's been some talk about them removing it though there was a more cryptic one as a replacement. Still seems to work on recent versions though.
The writing is on the wall though.
FIFY
I'm on FreeBSD and yes there's still many bugs and nasties in Wayland. It works technically but it's not great, at least alongside KDE.
But I thought on Linux it was a lot further along now.
If you want to load weather in a browser from the taskbar instead of having it available without having to open another application, I'd recommend using dillo or some such to load wttr.in or similar. A single http request that loads fast from a comparatively simple application that also loads fast. You might even be able to load it as a .hta file.
Before you scorn, doing it the opposite way, taking more to use less memory, makes you less promotable, not more.
Most people don't care about most things. I don't think much about the vast majority of products I use, because there's only so many things I can track closely. Same goes for everything else. Most people won't look and won't care.
I think they've finally made it so shit that people actually care and will look for alternatives.
Maybe it won't happen today, maybe not in the next 5 years, but it will happen.
In this specific case, is your Weather app important enough to waste 1GB on your users' PCs? Most PCs only have 16 GB.
I agree. I don't want or need a weather app on my machine.
Did not ask for it and I do not use it. Why should it be using any of my RAM?
Ironically AI could likely do better than this if prompted right.
https://tinkerdifferent.com/threads/snazzy-weather-a-snazzie...
Has a bunch of visualizations and stuff. It might all be graphical assets?
Emphasis on the “ish”. It’s an iOS app ported to the Mac (Catalyst), just like Messages, Voice Memos, Clock, and basically every other consumer-focused stock app on the Mac these days.
But if you build it natively, you should have all of Microsoft tools at your disposition, dlls and such. In theory, this should allow you to make a 1 mb app or less. But in practice, it's the worse option.
Im pretty sure most of the latency come from the software.
And to be clear, there's a ton of unnecessary bloat today as well. It's just that even a lean and mean highly hand optimized native app is gonna be way bigger today than it was then, due to compositing, higher resolution assets, higher resolution screens and different design sensibilities. But most apps aren't lean and mean highly hand optimized native apps so.
And I'm saying 98SE already had image-heavy design sensibilities all over.
You don't have to highly hand optimize to run a weather UI in a lean way.
Maybe if you were really rich and only used high end desktops. A lot of the computers I used back then were still 800x600, fancier ones were 1024x768. If you happened to also have a 2D accelerator card you'd potentially have 1280x1024. And lots of apps purposefully ran at a much lower color depth, it was common for games to run at 8 or 16 bit color mode.
And yeah lots of fullscreen-ish things ran in lower color, but this is about desktop mode and I never saw a desktop mode that struggled based on color depth.
You'd need better than perfect vision to be able to make use of it, though.
It often wasn't a limitation of your monitor, it was a limitation of your video adapter. Rattling off some common specs of monitors isn't telling the full story of what most random people were actually experiencing.
I still remember having to upgrade our main home desktop at the time of Warcraft I I'd release because it didn't have enough video memory to meet the 8MB minimum needed. That was in 2002 on a machine purchased with XP, a Pentium 4 HT with 512MB of system memory. Not necessarily a low end machine, but obviously not a gaming PC at the time and much newer than many systems sold for Windows 98.
3840x2160x3x3.5. That's 87MB, in pixel data only. And it's a very minimal example; for the parallax image, you're gonna want the image to be significantly taller than the window; you're gonna want a ton of smaller (tho still high DPI) images for icons; a few different font atlases for different font faces you've loaded at once; maybe pre rendered pixel buffers for all sorts of UI components; etc.
And lord help you if your designers want any part of this to be animated.
(I'm playing a bit fast and loose with what lives on the GPU and what lives on the CPU here. On many systems, they share a memory pool anyway. But on systems with discrete GPUs, most of this is gonna be video memory. Though applications may wanna store CPU-side copies as well for various reasons.)
Sometimes, you need to tell the designers NO. Moving background images don't help people figure out what the weather is going to be.
Not sure what you think "having an SVG renderer in memory" means exactly, typically the way an SVG renderer works is that you give it a huge chunk of memory and ask it to draw pixel data there from the SVG file. So even though the SVG is small on disk, rendering a 1000x1000 image from an SVG is gonna need a 1000x1000x3 byte pixel buffer (assuming no transparency or HDR shenanigans)
Cool, that's 3 MB
There is such a thing as overdesign, but when you’re building a modern application, you must trust your designer’s sense of aesthetics and knowledge of UX patterns—two things engineers are often notoriously bad at.
No it isn't. It isn't a word process for gods sake. It has one literally one job and 300 MB is like an order of magnitude off for that. This mentalty is the slippery slope that led us to the situation in the OP today.
Flashy beats functional nine times out of ten
Just look at the automotive industry
Yeah this is irrelevant here, windows doesn't share both in 99 of the case.
It's only been somewhat recent that I've personally seen much hardware that allows for that reservation to be dynamically defined, and not with any Intel integrated graphics so far.
* Not every app is full screen (especially not a weather widget.)
* Very few people actually have a 4K display. 1080p and 1440p cover over 75% of users already.
* You do not allocate a separate buffer for the main content and the parallax, applying a different transform does not need a dedicated buffer, just something the size of your asset. It can be a 640x480 upscaled asset for all you care.
* You also don't allocate a dedicated buffer for text rendering/hinting. Your text rendering engine keeps a texture atlas in a buffer which is eventually maaaaaybe reach a 4k texture if you display a TON of various glyphs, realistically they won't. DirectWrite will also share this atlas with other executables unless you explicitly ask for isolation.
* On windows, you write to DWM, which keeps a single buffet for all your windows. Every window does not pay that memory price. I'm pretty sure most compositors do something similar.
* Not every app is fullscreen, but I was using a maximized app as an example. If you make the window smaller then yeah obviously the numbers get smaller proportionally.
* A ton of people have 4k displays, it's difficult to find a moderately high end laptop without a 4k display these days. In any case, that was the hypothetical example I used.
* If you have a window that's roughly 4k resolution, and you want a background picture which fills the entire window, that's gonna be a roughly 4k resolution pixel buffer (unless you stretch a smaller image, but that looks ugly).
* Depends on the text renderer. I have mainly used pangocairo, which is based around CPU rendering text to a pixel buffer. I know that this is the typical recommendation for handling high quality rendering of longer pieces of text with Canvas on the web too. Maybe a typical win32 app actually does render each glyph fresh every frame from a font atlas, I'm not familiar with Windows APIs specifically. I apologise for the inaccuracy if that's the case.
* I'm pretty sure you're wrong here? If DWM has only one buffer which all windows share, how does it handle the case where a partially obscured window goes unresponsive for a bit as the user removes what obscures it? In old school non-composited X11, the answer is that the X server paints in the newly revealed area with grey pixels and asks the window's process to re-render that region, causing a lingering grey region if the app is frozen. Preeeetty sure that Windows 11 doesn't do that. But do you have documentation on this?
Terrible news for you, people work on dogshit dells given by their company and netbooks, not high end laptops. Macbook Pros, high end laptops, etc are exceedingly rare. (And can also deal with the high memory usage by virtue of having more memory).
>you want a background picture which fills the entire window
Which you rarely do, and also you don't develop for either, you're going to have a 1080p image at best, and then a bug report from that one client saying "background is blurry" in your backlog for the next 5 years.
>I have mainly used pangocairo, which is based around CPU rendering text to a pixel buffer.
Then you're using it wrong/using the wrong tool. Re-paying text layout at every render is already painful and it should be cached, your font rendering should absolutely be in a texture atlas.
>If DWM has only one buffer which all windows share
Slightly inaccurate in my answer there, but DWM only keeps one final composition buffer, which it handles itself from the various windows (that do have their own buffer, but only for their size and are only kept active if the window is visible.)
For the text rendering thing, I think we're talking past each other? Nothing I mentioned implied redoing layout every frame? You render to a pixel buffer, upload that pixel buffer to the GPU, then just draw that texture every render.
For DWM, it sounds like you agree it has one shared composite buffer (which I didn't count in my calculations) and one front buffer and one back buffer per active application. Exactly as I said
> Are you disagreeing just to disagree?
Plus, if you’re doing everything designers ask without questioning or collaboratively discussing the tradeoffs, there’s a non-zero chance that could be a you problem.
Alternate encodings like YCoCg tend to do better.
Looking at the opposite extreme, the guy that originally wrote the windows task manager (the thing that popped put when you pressed ctrl+alt+canc) posted a video about cloning the windows basic text editor in a 3kb binary: https://youtu.be/OG91c7xsNMc
Needless to say, the guy knows what he’s doing.
The rabbit was too hungry to even stop to chew you?
see File pilot as an example of what is possible when competent software engineer attempts it
A major part of why these sort of simple applications are taking gbs of memory is because the GC wants to simply grow as much as it can to avoid pauses/jank. There might be 10% of the memory which is actually live in that 1gb. But because it allocates fast enough, the extra headroom is needed.
Even if it isn't the case that the GC is universal, having a shared GC amongst runtimes would be a boon in general. If I have 3 JVMs running, I might give them all 1gb of memory even though really each of them only needs 200mb to get their job done. The extra headroom is for when a burst happens. If I could combine all 3 into 1, I could save a lot of allocation overhead and general memory.
This does sort of exist in java (war deployments), but there are limitations that make it unappealing. For example, each of the JVMs have to be the same version.
Oberon example,
https://people.inf.ethz.ch/wirth/ProjectOberon/Sources/Kerne...
Active Oberon example,
https://github.com/btreut/a2/blob/master/source/GarbageColle...
Bare metal Java, Go, .NET, Erlang, OCaml,... with bare metal deployments naturally have the runtime take the OS role.
Any marginal efficiency gains will be wiped out with more adslop. Nathan's law.
There’s very minimal state for a weather app. You should be able to sweep the whole thing pretty fast. You could probably statically allocate most of that state.
Except when it uses some kind of browser engine to render its UI?
Then C# came and said "we can't use it, we have different needs". So did Go.
It's worse than that. The WASM GC standards team was warned in advance that the proposal wouldn't work for .NET, and they moved forward with it anyway:
https://github.com/WebAssembly/gc/issues/77
They were also warned about Go (though I'm not sure if they ever actually consulted with golang devs):
https://github.com/WebAssembly/gc/issues/36
More links:
Running the GC more often wouldn't save much. Dynamic programming languages simply allocate more objects and heavier objects especially with how we use them.
If an OS were built entirely around a single instance of HiPE/BEAM similar to LING, it might be possible. For efficiency of apps, ditch GC where possible and use precise memory allocation. When that's not possible, use thread-local, immutable storage pools of objects like BEAM so GC can be concurrent and parallel. The messiest way is to do it like the JVM and other systems that throw all objects into a single pool and require pausing the world and expensive graph walks to clean up.
Really Microsoft? Do you really need all the ads revenue from the weather app?
What’s next? Ads on the start menu?
They already exist: https://www.howtogeek.com/windows-11-start-menu-ads-how-to-t...
And it makes the middle manager happy because it lets that middle manager report better numbers to their superiors again.
Etc.
It's why all large dysfunctional organisations do self destructive stuff like this.
A bad manager will accept these inconsistent, and mutually exclusive, goals as if handed down on high by the gods and find counter-productive ways to save money or increase sales - even at the expense of actual profit. There is always a way, if you don't care about the actual outcome. These people will Goodhart the company into a terrible position, as long as it means they meet their arbitrary KPI's and get their full bonus.
A good manager might instead gather some data, then come back to the executive the next day with a data backed explanation showing why meeting both goals might be possible, but still wouldn't be advisable due to the negative externalities. A good executive will actually listen, because it's backed with real data they didn't have when they made the call.
Unfortunately if either the manager OR the executive are bad or thinking with their ego's... The entire thing falls apart. Which is why it's so very common.
Obviously it's not a change that you'd be able to pin a specific human decision-maker (who was marginal on Teams) down as to this change being the difference between a sale or not, but nor is the change in revenue going to be a random number uniformly distributed in (-∞,∞).
If the change was revenue-neutral, the skip level would probably have been justified in seeing if the teams working that project could have found something to do customers actually care about instead.
Even 5 people is enough to significantly narrow the uncertainty (at least, as compared to the prior hypothesis that the true change in odds is somewhere from -1 to 1).
And like a good spam filter, you don't need to be perfect, you just need to be able to turn your initiatives into a forecast of future changes if implemented, and then measure what actually does change for those initiatives you do implement. Even simple linear regression models can be useful in tracking results compared to forecasts.
Most people would probably expect that the improvement is close enough to zero to be nearly indistinguishable from it. And this is why most enterprises don't invest much in reliability work like this, because it doesn't actually seem to move the needle for customer purchasing.
Avert ye eyes for there are no morals in these bad lands of Redmond!
They don't want you to remember that Windows XP's minimum system requirements specified 64MB of RAM. This weather app uses 20 times more memory than an entire operating system from 25 years ago.
Sad reality aside; when the new app released I was using an old AppxBundle of the last good version downloaded from a microsoft store archive website. Later I fully uninstalled the app as it got annoying to cancel the autoupdate for that specific app. I use a random website now.
Jeffrey Snover, creator of powershell, explained it decently well here: https://www.jsnover.com/blog/2026/03/13/microsoft-hasnt-had-...
Was switching to webviews the right solution to that problem? Absolutely not. But at least we can admit they were in a difficult position.
At the time this bloated weather app was probably developed, the choice that most of the rest of the shell and in-box apps were making was C++/WinRT paired with System XAML (i.e. Windows::UI::Xaml aka WinUI 2 aka UWP XAML) via the still-marked-as-experimental-in-2026 islands API (DesktopWindowXamlSource) like the taskbar/control center/file explorer/etc. Or worse, actual UWP, such as the Start Menu, Settings app, or Notification Center. This can have a decent-ish memory footprint - Control Center, for example, uses about 150MB of commit and 30MB of working set. Still not good, but not atrocious either. But even for this mediocre level of performance and efficiency, you end up paying a very high cost in terms of development time and expertise required. This stack "just works" like 70% of the time, but the other 30%, you're scratching your head figuring out where you forgot to hold a strong reference across a co_await boundary. Or figuring out why a XAML ListView corrupted its recycling pool in korea because window messages reentered a nested message loop started by XAML's outbound RPC call that's only made in the TextBlock code for east asian languages. You get a razor thin veneer of user-friendliness, i.e. MVVM, x:bind, co_await ("hey, this is just like C# + WPF!") on top of a 60% finished UI framework and a terrible programming language feature which is quite possibly one of the leakiest abstractions in the history of the world (C++ coroutines). The fact that Raymond Chen managed to write a blog series on C++ coroutines in Windows that is 60 posts long is damning: https://devblogs.microsoft.com/oldnewthing/20210504-01/?p=10...
On top of all this, Microsoft's status in the industry has dropped. And they have absolutely no structured technical training program for new employees. I guess just pray you get paired with a decent mentor. So, young employees fresh out of undergrad who are asked to work in these codebases are super unproductive and make mistakes on a regular basis that cause inscrutable memory corruption bugs.
For a time, leadership was wildly flailing around trying to find some alternative to this madness. At the time when this bloated weather app was developed, the hot idea was that we should be switching to the web stack for native experiences. There was some low effort hand waving about how WebView2 would be continuously improved, we would mitigate the memory footprint by sharing webviews, etc.
My position is that there's no reasonable choice for building efficient native UX on windows today except by targeting a lower level graphics API like DirectX, Vulkan, OpenGL, or even software rendering in GDI, rather than a GUI framework. Most serious software on windows ends up going down the route of literally building their own UI framework, i.e. web browsers, office, adobe suite. If you don't mind the dated look/functionality of win32's stock common controls, that's also a decent option. I've heard that Qt is okay, but haven't tried it.
One final note: if anyone is earnestly wondering whether WinUI 3 is perhaps, finally, an end to all the bloodshed, my take is: no It is (currently) UWP XAML wearing a trenchcoat, plus a needless namespace change that broke compat, plus the baffling choice to run a copy of the compositor in-process in order to - wait for it - be able to ship WinUI 3 apps downlevel to Windows 7 and have acrylic work correctly!!! (to their credit, they have signaled that they are reversing this decision and moving back to the system compositor). WinUI 3 has the potential to be good, but appears to be too underfunded to achieve its potential.
org_chart_with_guns.jpg
That's also bloated, couldn't they find a better comparison to illustrate the egregious waste?
But yeah, I still remember when a weather app would take 10 MB and I was complaining (1999)
The world doesn't run on personal aesthetics, when nobody is willing to pay for them.
https://en.gamegpu.com/news/zhelezo/defitsit-pamyati-zastavi...
Bwahahah!
https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
They clearly spent it on maintaining their independent Chromium instance instead.
For example, on my 5 years old laptop with integrated AMD GPU, windows 10 calculator in default state uses 33 MB system RAM, 9.6 MB dedicated VRAM. Maximized to FullHD screen, same app uses 36 MB system RAM, 13 MB dedicated VRAM. Maybe the OS counts VRAM as active private working set, maybe the app uses more than 1 buffer.
Regardless of the reason, it’s IMO unrealistic to expect a modern GUI app to consume less memory than required for the frame buffer for its window.
Not really true. Even machines with integrated graphics in Windows aren't truly using a fully shared memory pool. Usually the hardware reserves a chunk of the system memory for the iGPU.
From Vulkan API POV, the reserved portion has device local and multi instance heap flags, the main heap doesn’t. However, the memory type is identical across all heaps, all of them have device local, host visible and host coherent property flags. And I can confirm VMA library from Vulkan SDK successfully allocates way more device visible memory than the size of that reserved portion.
All that stuff would be hard to impossible with the older GDI architecture and no desktop compositor process.
Video games are the same (mostly) - everything is rendered in screen space for performance reasons, it's very, very rare, that you would render something into a temporary buffer then composite it on top of the rest of the scene - you would need exceptional reasons for that.
Maybe it's time to get back to the olden days of display servers - where applications would push a list of render commands to the 'display server', which would consist of rendering primitives, which would then take these commands and construct the whole UI on the screen, without the intermediate steps of each app drawing into its own little buffer.
You could always fall back to drawing your own applciations, then asking the display server to composite that, but that would pretty much be the exception, not the norm.
Imagine you have 3 windows visible at the same time: a videogame rendering at the refresh rate of the display 144 Hz, a video player rendering frames at 30 Hz, and a text editor rendering blinking cursor at 2 Hz. Because the videogame wants to deliver frames at 144 Hz, the desktop compositor has to deliver the entire desktop at 144 Hz. Asking the video player and especially the text editor to also deliver frames at that frequency would be wasteful. Irrelevant for desktops with fast discrete GPUs, but directly translates to battery drain on laptops.
It cost nothing to not change the pixels when you didn't press a key, no matter whether you weren't pressing keys at 60Hz or you weren't pressing them at 144Hz.
Vast majority of titles use deferred rendering, and lighting is done off screen too. Usually the only thing done to the "screen buffer" is a final post-process pass or a copy.
Regardless, video games normally update the entire screen (or window) every frame, because the screen is so dynamic. This is unlike Microsoft Excel which has a mostly static screen. Building Excel as if it's a video game is going to waste resources.
This is called 'compositing' but its similar in name only. It's a fairly efficient process where each color pixel is produced by reading these buffer targets and producing a final color in a shader.
This is entirely different from what composited apps do, where they build up the app's background into a texture, and push that onto the screen, with potentially multiple screen's worth of windows living in memory. This would be equivalent in video game terms to rendering every character and object in the level as 'stickers' and then making the final image of these cutouts, which would consume tons of RAM uselessly, and would force us to render crazy amounts of detail that would never get shown.
For an extreme example:
curl https://wttr.in/
Inside of a conky widget would do the trick, I think.https://github.com/brndnmtthws/conky/wiki/Lua:-Shell-Integra...
nautilus 177 MB
kitty 150 MB
alacritty 107 MB
mpv --idle --force-window 160 MB
winit empty window + OpenGL context 100 MB
tux-manager 69 MB
hexchat 55 MB
gnome-terminal 47 MB
st 12 MB
xterm 12 MB
All these apps are what you would consider native, good apps. Written with Qt, GTK, some in low level langs like C\C++, Rust as well. There is of course different ways to measure the usage and maybe some more testing needs to be done, but stuff like 1-10 MB seems completely unrealistic. I think any empty Qt/GTK app eats 40 MB at least. Only thing that even gets close is st at 12 MB. And mind you it's a terminal (which is 1000x simpler than any modern GUI app, doesn't load any assets etc) and it doesn't even use any GPU accel (which itself seem to add a lot of baseline cost).Honestly I was a bit surprised myself. I have a Rust winit + ash vulkan hardcoded triangle demo app and it eats 86 MB (the binary itself is 5.5 MB). I would love to know, if anyone could explain why GPU accel seems to eat up so much RAM. Like yeah, there are a bunch of images that live on swapchain, but they should all be in VRAM. Outside of that I don't see what would require MBs worth of overhead.
But I agree: using more memory is good, actually, because it means more stuff is being cached. Nautilus is probably pre-indexing directory structure so it doesn't have to read disk every single time you open your home folder. That's good. Oh, and thumbnails. Thumbnails are incredibly expensive memory wise, but very useful!
Also modern apps have A LOT built-in. Tons of font management stuff, accessibility, they work on many different environments. I mean, look at everything that goes into a modern terminal emulator.
But... a weather app is much simpler, IMO, than Nautilus or Kitty.
> These super-indexed desktop linux search functions are also dog slow
Baloo-indexed KRunner on Plasma is instant. I index my entire home folder, including hidden files, and I can substring search with imperceptible latency. I can't speak to other search implementations, but yes KRunner + Baloo is much faster than grep.
https://learn.microsoft.com/en-us/sysinternals/downloads/pro...
And take a look what DLLs have been loaded into your explorer.exe. Look for non Microsoft-signed ones.
No it isn't good, and no it probably doesn't because it is kernel's job. I'd rather they don't do double caching, and it's actually worse if they do.
But, for example, in a web application you will commonly cache requests. But then the database also has a cache. And then the filesystem the database is on also has a cache.
A fresh boot of my Windows 98 install at the time, once everything was loaded and settled, used up 27 MB of RAM, meaning that after 5 MB of allocations someone was getting paged out somewhere. That extra 16 MB made a world of difference.
Do bear in mind, though, that we're dealing with a lot more than we were back then. Our hardware is more complex, with more and more complex drivers needed to manage more things. Accessibility is different, screens are larger (my monitor now has 27 times the pixels as my monitor then) meaning more memory required for larger textures which are now composited in hardware rather than re-rendered every frame.
I agree with others that things are ridiculous these days, but it's also easy to see that our expectations also need to adjust somewhat. Still, using a webview for displaying the weather... I get why they do it, but it's a scourge. It's emblematic of their care for the customer, which is nonexistent.
Classic GTK is (much) better (RSS on Linux):
GTK2 14 MB
GTK3 24 MB
Once it was decided that a desktop application must have fancy animation effects (like on smartphones) and be rendered completely on GPU things got very different: GTK4 98 MBI also remember running nt4 with photoshop, word, and my IDE (borland delphi) all at the same time and comfortably in 128 mb of ram.
That's still a HUGE amount when you remember mplayer (which mpv was based on) ran on PCs that has had less RAM than that.
One probably could get this down way below ~1 MiB with a properly tuned straight executable written in C (best not to use any of the "modern" stuff like Rust and Go, their default binary sizes for outputting "Hello, world!\n" are already extreme :-) )
By default anything needs at least 532480 bytes RSS on OSX (I tested it with the most minimal C hello world), so that's a threshold one probably can't beat on OS X at least. We probably could kill that value on Amiga OS with the exact same functionality. :-)
Let's remember that the sprawling world of Legend of Zelda SNES (a Link to the Past), including all graphics, music, code and dialogue was 1MB.
It's bloated not because of a sneaky plan to include revenue generation. It's cheaper to make it bloated because quality is costly. They can externalize costs to users and nobody cares.
When you take away the constraints the slop emerges. You could not make mistakes in software when it was all printed on CDROMs and DVDs.
https://github.com/derac/WeatherTray
I use Linux now, so you're on your own if there are issues. It might require some windows library to be installed but I don't recall. I ran it for a long while on win11.
Not your app, it rocks.
Microsoft. It's like some decision-maker thinks it's OK to waste memory as long as it's someone (everyone) elses' memory, but it really adds up if you know anything about scale.
But what they're also doing is a non-businesslike under-utilization of their own resources.
Which is disgraceful in itself on top of that.
They're supposed to have much better AI than average and nobody even bothered to ask ChatGPT why in the world weather should take more than kilobytes?
And if their AI can't do it autonomously in under a megabyte it should be able to give a plausible explanation why not by now, and at least it would be orders of magnitude better than a gigabyte.
I assume yours went smoothly as prompted and it surely is an excellent example :)
My friend, you're giving them way too much credit.
Nobody, especially no decision-maker involved with this, has ever spent a single thought anywhere near any concept related to memory.
It just literally never crossed anyone's mind.
I suspect there will be a bit of revelation once people realise how much better AI can make software if prompted correctly. Of course a lot of slop will always exist, but things like https://news.ycombinator.com/item?id=49226923 show that it can be a powerful force multiplier if used right.
Don't get me wrong, I imagine one could get close to the same featureset while using <600+ MB of RAM, but an app that just shows a table of numbers and a static PNG for a radar isn't really the same.
FWIW, while your compiled binary is 233kB, when its running its using 2.5-4.5MB.
- ~45 MB on buffers for animated backgrounds
- ~10 MB used for the Swift language runtime (runtime type information)
- ~44 MB used for system libraries: libSwiftCore, CoreFoundation, libobjc, Metal, VFX
- ~21 MB used on GPU buffers (GPU memory is also part of used system memory because of unified memory)
- ~6.3 MB for the weatherd daemon that actually collects the weather info and makes it available to the weather app and to widgets
- ~6.2 MB used for the display color pipeline (to handle color gamuts proprtly)
- ~7 MB runtime caches (shader compiler cache, libobjc cache, etc.)
- ~1-2 MB used for particle effects
- ~34-40 MB of memory as general heap memory that was otherwise unaccounted for (this seems to mostly be stack memory and threading-related stuff, and the actual application logic)
Overall the app is relatively optimized
I've not done a lot of Swift/iOS/macOS, but I have a passing familiarity. These numbers are basically what I'd expect for a normal app. In other words I think the relative optimisation comes from the fundamentally better technology choice rather than from being particularly careful about performance.
I am however surprised that 10MB is Swift language runtime - with ABI compat this is supposed to be shared, and that the weather daemon is >6MB (surely this is just a simple API client?!).
curl wttr.inEdit: I see the "250MB" line later in the article. This article is itself bloated for repeating nearly the same thing again.
It is using 122.7 MB at present.
On Windows 10 the Weather application uses 2-4MB when not active, which climbs to around 490-550MB when active. On Windows 11 the Weather application doesn't appear to be running at all when not active and it climbs to about 540MB when active.
No where near the results presented in the article, however:
The amount of memory used could vary by region and provider used to get the weather data, so in my region it would only use half a gig, in the USA it could use a lot more.
Half a gig is still too much for a Weather application to use, even with all the images and animations that it has I would estimate it only needs to be half as big at most.
I'm puzzled by why Microsoft made this into a Web based application since they could have written something much more efficient with native code, it's not as if they needed to target multiple different operating systems, just Windows and now just a single version of it.
The number and availability of native UI programmers compared to web devs is a rounding error.
Back in my day 100MB was all you had for all your compute, and somehow programs still ran.
They "could" make it easy but why bother? I assume next update will make calculator 1 gb download, 2gb ram resident and ADS
Things weren’t actually worse.
Back in my day systems used to be a lot simpler too. These “back in my mind” comparisons show a clear lack of understanding of the subject matter. 1996 apps are not the same as 2026 apps. Expectations are different. Design languages are different. Even the UX is entirely different.
1GB is clearly overkill, no question. But ~100MB to ~300MB is perfectly reasonable and you know it.
I also like the weather icons being 4K and having some smooth anmiations.
Not to say that it's gone worse (it has IMHO) but comparing 25 years ago to know doesn't help much. Times were different back then. That's like comparing 1900 travel to today.
My best guess is the GUI is somehow really heavy, wouldn't expect a simple console program that connects to some weather API to require that much RAM. But I never worked on apps like this, so no clear idea.
Or render everything using css, 100mb is someone not trying. 1gb is absurd abuse that only domestic violence victims put up with.
The window in the article wasn't very big. At most it would have about 10MB of framebuffer, and the images on display would fit into 1MB uncompressed.
We can't excuse typical program waste with screen sizes. Especially when you can switch to 1080p or 720p and watch them still use massive amounts of memory.
https://web.archive.org/web/20010210023051/http://www.softse...
https://web.archive.org/web/20070210195451/http://www.locutu...
Personally I just use my government's website when I need to check the forecast.
Six years in, I had to edit the configuration file once (to switch weather backends because the default backend shut down). In January, it’ll be 10 years.
For operating systems and their bundled applications, Apple's integration is an advantage here; the OS designers work for the hardware company and have aligned incentives. That doesn't mean they necessarily align with their customers, just that they are internally aligned.
Microsoft...do they even care about the snappiness of Windows desktops any more?
imhho, I prefer the ambiguity, the increased hilarity, the increased mental work of considering whether a statement is in good faith or being sarcastic/sardonic, the opportunity to understand how people can be hurt and the motives of barbs and lashes and how to discern the distress and deeper needs of "violent" people, and eventually the remembered insights on how to better generate boundaries and equanimity
in the way of Buddhist psychology, phenomenological bracketing, non-violent/compassionate communication, Brechtian principles, deconstruction, clowning, DBT, etc
lol
though I know this doesn't scale to situations without a boundary, where you can get abuse just for existing. I would use /s in a commons that expects a higher standard of good faith/well-being interactions
(does thoroughly confusing or disrespecting people for a jape equate to an abuse? how much of memeing is not just legal but moral? these are rhetorical questions, you are allowed to save your mental labour on this for yourself, self-care is prime, though I hope you all have a appropriate levels of support)
Stuart Lee is my favourite comedian, they are masterful in playing with this
https://youtu.be/5S9QJXa5YP8 - Stewart Lee deals with audience latecomers (Basic Lee)
https://youtu.be/EclpMn-mK5E - Stewart Lee HITS OUT At Audience Behaviour (Basic Lee)
https://youtu.be/NtFJ1HT3gto - Stewart Lee on Stewart Lee fans (Basic Lee)
https://youtu.be/TrkPNwSRxtM - Stewart Lee on his Audience (Content Provider)
shout out to the somewhat similar subtitles use of: (!)
p.s. as an alternative to Windows, I always recommend folk use KDE, and a distro based on Arch btw
Not only is this unwanted spyware, it is extremely inefficient spyware.
Of course, that means Microsoft just admitted that Windows 11 needs the full CPU speed of a modern processor to render the start menu, which, IMX, is something that they were able to do smoothly under Windows 95 running on a 133 MHz Pentium and 4 MB of main memory without any 3d acceleration.
This is also why it is very important to have plenty of SWAP space on Windows, even if you have 64 GiB+ of memory. Because applications love to over allocate commit charge.
If you're at a BBQ would you take 5 plates just because?
- The Windows task manager's memory column is the private working set which is the actual memory used by the application minus shared memory (but only shared memory that is currently shared with other processes, not merely marked shared. I.E. it's similar to RES - SHR on Linux but it's more accurate)
- Windows doesn't overcommit memory. Memory that is reserved but unused (not touching all pages) by the app is truly wasted. I mention this because in your other comment you make it clear that you think this is happening. But Windows isn't Linux.
Last decade has been the worst, not even worth it for the eye candy like before.
It is currently using 680 MiB RAM on Mac OS 26.6, this is more than Microsoft Teams is using on my system. How do a group of what should be a competent programmers with access to good tools even manage to bloat this up so much?
When was the last time you counted to eight billion and thought it would be a good idea to build an app that would require that many bits of information to tell someone the weather forecast for the next week?
And this comparison is somewhat unfair since all numbers from 0 to 8 billion can be represented with just 33 bits...
I remember giving the app a second chance - after assuming it to be bloatware next to all the other default apps that came with Windows - but after seeing it redeem itself in benchmarks[1], I gave it a shot and quite like it. The iOS app was too rubbish to bother with, though.
I'm curious what could options there are for decent predictions. Especially with Dark Sky never having been much of an option for Europe. I see some of the people behind it have a new subscription-based iOS app to try, though: https://acmeweather.com/app.
Do people have any desktop weather apps that strike a nice balance between decent code and actually useful predictions? Future weather's likely to be anything but boring, unfortunately.
1: i.e.: not "debloated" or running a bunch of random customizer scripts.
When the article compares that figure directly to macOS Weather.app's 250MB usage, yes it does. It brings the sensationalist comparison down from "5x" to 2x. Then you can question why both platforms take 250-450MB of RAM for a weather app, instead of just repeating the "windows so bloated" circle again and again.
Now I am glad to get a Java or dotnet app.
If you pay 0.5-1GB to load the edge/chromium libraries but that memory is amortized over N different apps the user is likely to run, then the ”1GB for the weather app” is an unlikely worst case.
Why is Windows like this? One would think the at the company whose value proposition is, allegedly, "optimize your productivity" would not do things like this with their operating system. When this PC dies, and I figure I've got a long while left given my penchant for refusing to spend money on computer hardware, I will not be booting a Windows system again. What a mess.
The company's "optimise our productivity" trumps.
The alternative is, of course, that most apps will end up being bloated even more specifically because of how we'll slowly transition into developing using LLMs only.
Another annoyance is that tree planting initiative, I was able to plant like 10 trees, now they made it very difficult to be able to do 1 in a year. Microsoft, you cheapskates, you're destroying the environment, the least y’all could do is plant more trees in vulnerable areas.
Where did it all go wrong? To think I really liked Windows 10 when it first came out, and thought it was a solid direction forward into modernising Windows.
The AI hypesters and hucksters don't care as long as number go up. Cyclically I believe the primary driving force behind agentic solutions is to send token use hyperbolic.
Can we also be talking about how the Mac version uses 200MB apparently!? Why is a weather app using any more than like 10-20MB or so of RAM!? Load a couple icons into memory, maybe some background image or pattern, and a tiny bit of text. Why does it need to be so big!? (I'll cut it some slack while it's syncing/downloading, but for a weather app that should be like 30s once an hour max)
Anyways it is a bad trade off for the users to make and most don't even know they areaking it.
I read this circa 2010 and it stuck with me ever since. Also, have felt this way over the years, when I see Windows users work.
As for Windows, I like living in cities. If you live in a city long enough - at least through a couple of major macroeconomic cycles - you'll see it improve in some ways and some neighborhoods, get worse in some ways and some neighborhoods, then improve again, etc. Cycles. Windows found itself in a downturn the last few years, primarily due to the org structure that took Windows shell away from people who could really look after it, and, yes some of those execs have earned my permanent scorn, like a bad local politician would. Now there's a focused team making that neighborhood better. I'm here for the whole ride.
I'll use Linux on computers I don't have to log into very much, so I don't have that UX problem (case-sensitive command lines? Seriously? The 1970's called...). I'll never move to MacOS City; it's like wanting to live in The Villages. Manicured lawns with no soul.
So I live in Windows Town, it's not perfect, no city is, but it's always changing, always moving, going through ups and downs, and now it has a new "city council" that's making changes for the better. And I'm expert enough to make it great for me, and avoid the "neighborhoods" that suck.
This article highlights a problem that Windows has right now, and one which I agree with, which is shipping web apps instead of native. For now, I have a workaround for it:
1. Install uBlock Origin in Edge. 2. Start Edge, browse to MSN Weather. 3. Click the "Add an Application" button in the address bar so I have a Start Menu icon for the page. 4. Delete the in-box Weather app icon.
Now I have the same weather site, no ads, running in about 130MB of RAM.
Enjoy your choice of operating system. Live where you want. Sometimes your city has problems. Move if you want, but don't think you've permanently solved your UX issues if you do, you've just swapped them for different ones.
Liquid Glass needs a lot of cleaning up but it’s fine. App Store restrictions mean very little for iOS users in general and next to nothing for Mac users. Lousy AI also means little to nothing on Mac and earns at max a shrug on iOS—you even have a handy little button to disable all Apple Intelligence shenanigans altogether which is something no Windows user can easily do with Copilot.
No, Apple users are most definitely not having to deal with the same level of bullshit Microsoft’s users are. And it’s not even close.
It's impossible for every idea to be a hit. Liquid Glass was a miss and they backtracked on some changes and fixed some issues that people were vocal about.
... but that's what you said about Windows:
> Windows found itself in a downturn the last few years
> I live in Windows Town, it's not perfect, no city is
> [...] avoid the "neighborhoods" that suck
Really the original comment just reads like you wanted to rant about Apple users and MacOS and that's it. You didn't really give any strong arguments for why Windows is better than MacOS - and "it's not perfect" is not an argument when in the same post you say the exact same about your preferred OS.
1196 points by ajdude on March 3, 2025 | 1213 comments
Linux as an operating system is easily better than macOS. Third party software is lacking though. There’s really nothing that compares to Bear, Things, DEVONthink, Transmit, etc. What I also missed in Linux was the prevalence of what Apple calls “x-callback URLs” [0]. They are incredibly useful and great for glueing different pieces of software together.
With some of Apple’s recent decisions, I do wonder if we’ll see this change in the future. Little Snitch put out a proof of concept for Linux. While it exposes itself as a fairly rough webpage, someone is thinking about it. Linux culture would need to accept paid software, though.
-
I put in the exact same amount of effort to install a Linux distro on my laptop that I would have to install Windows.
1. Download the ISO 2. Write to a USB drive 3. Reboot 4. Run the installer. 5. ??? 6. Profit
And all for an experience with way less bloat, none of the bundled spyware, more consistent UI design (depending on which desktop you're using), and better perceived performance.
>>This article highlights a problem that Windows has right now, and one which I agree with, which is shipping web apps instead of native. For now, I have a workaround for it:
This is still a web app, it doesn't solve the problem of MS being too lazy or cheap to make real desktop apps for things. I mean this is the same company who thought taking the Start Menu of all things and re-making it with web crap was a good idea.
On Windows you have to add the step "figure out the secret incantation this week to not need to set up a Microsoft account"
To be fair, that was the peak of Windows UI. Also, KDE Plasma is way ahead of Windows (any of them).
I've tried using MacOS, and there are so many frustrating things you just have to put up with. Windows is much worse, but to be fair Windows was okay at one point. KDE is, out of the box, seamless, sensible, fast, and unbelievably feature-packed. But even if the default experience isn't your taste, it's trivial to customize it to work however you want. Whatever panels you want, where ever you want, with whatever widgets you want. WYSIWYG with point-and-click. And the windows, too. Window rules, KWin scripts (which are actually full-blown plugins), whatever you want. I want Steam to always open full screen on start up on my second monitor on the third desktop? Sure, I can do that, again point-and-click.
I truly cannot sign the praises of KDE enough. I think everyone who dislikes KDE has probably not delved deep enough. I can recreate the entire GNOME desktop in KDE in an hour. I can recreate MacOS in 30 minutes.
As always, Captain Obvious is quick to respond.
but complexity merchants make them weight as much as the sun.
And this isn't really new either, they've been pushing for everything web tech since the 90s no less. Remember Active Desktop?
100 tools < 100mb.
Some kind of weather app challenge would be fun. Vote for the best balance of features vs efficiency.
Also, I don't think Apple should be commended for using "only" 250 Mb of ram for that.
nor is there anyone incentivised to improve customer experience for windows. it baffles me how bad windows search is. there are multiple tools out there which do a far better job.
same for file explorer.
Which matters because the things most consumers are doing on their computers haven't changed in the past 15 years. We browse the web, edit photos, message friends, and so on. AI generally runs on remote servers anyway.
For years, everyone kept saying it was fine that Electron used gigabytes of memory, because on modern PCs memory was plentiful anyway. Well, it's not plentiful anymore! Maybe it's time software developers actually used resources efficiently?
Hey, you even have an LLM to help you now!
https://www.tomshardware.com/pc-components/ram/scientist-say...
...when looking at nominal prices (ie. not adjusted for inflation). If you adjust for that the furthest back you can go to get that price is 2011. What's more is that because RAM prices are subject to boom and bust cycles, that price has also been reached in 2015. So just by tweaking two parameters we went from 19 years (2007) to 11 years (2015).
For more than 15 years in the past, the price in real US$ of DRAM per GB was always higher than today.
During 2014, there was a brief price peak when DDR3 (the standard current then) was slightly more expensive than DDR5 is today.
Still, the fact that now the price per GB is the same as 15 years ago, is bad enough, and it can still become worse.
Today 8GB is bare minimum.
Feature factory work increases the surface area of every API you touch, and the proliferation of pre-written APIs expands the number of APIs you touch. The combination of the two is not quite O(n²) but the exponent is more than 1, so it's still geometric.
Electron was never a great idea but more and more basic things keep moving to it and the result is a disaster. When you use it for several little things at once it turns from annoying waste into massive waste.
Sure, but we're being screwed regardless. You should be disappointed that almost 2 decades on, pricing hasn't improved. You should be disappointed the reason memory costs so much is because of AI contracts that you cannot compete with.
>Maybe it's time software developers actually used resources efficiently?
At least anecdotally, I'm seeing more and more native apps being written. Sure most aren't first party products, sure some are AI generated but its better than having 11 electron apps on my computer running at the same time.
I want to upgrade to AM5 (thus DDR5). I currently have 64GB of RAM and most of the time in games (even "less demanding" games like CS2), I find my system using over 32GB of RAM. This is a Fedora system!
I think I could get away with 48GB, but 64GB is too far out of my price range.
open source, no ads, seems like the perfect replacement
I run a machine that costs ~$40k so I don't expect this to happen overnight but at this point it's absolutely inevitable that Linux overtakes it in the consumer market.
Every little thing that made Linux inaccessible to a normal non techie is now solved by speaking to some model and having it configure/fix the thing.
Get your shit together and be the change you want to see. Or stop whining.
And how come you cannot pretend to only have 4GB to make it use less?
I don't care about how slow the OS becomes, I care about software not crashing.
Windows uses 10GB, Chromium uses 10GB and leaks ~1GB per week... then I launch a game and that game crashes if I have left chromium open too long.
The odd thing things crash way before the total 32GB are used. Available memory is still 2-4GB. Probably it can't find a contigous space?
> Instead, it is essentially an MSN Weather web app built on Microsoft's WebView2 framework. Task Manager shows multiple Chromium-based subprocesses running simultaneously, which contributes to the unusually high RAM usage.
Having said that, the code for Windows Calculator is truly astonishingly over-engineered. I don't understand who "designs" stuff like that in C++. It's insanely engineered, so perhaps they have truly lost their ability to do anything well?
I wouldn't find this post less ridicule-inciting than if the title was
"macOS's built-in weather app wastes more that 200 MB of RAM"
Anyone can recommend one of those?