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?
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 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.
https://en.wikipedia.org/wiki/Dennis_Fong#/media/File:John_C...
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.
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.
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.)
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.
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.
Really Microsoft? Do you really need all the ads revenue from the weather app?
What’s next? Ads on the start menu?
That's also bloated, couldn't they find a better comparison to illustrate the egregious waste?
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.
Personally I just use my government's website when I need to check the forecast.
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?
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...
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?
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.
Now I am glad to get a Java or dotnet app.
1: i.e.: not "debloated" or running a bunch of random customizer scripts.
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.
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.
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.