I don't have a problem with Microsoft's reasoning. With one addition, if their memory management would actually work I would be happy to stop using task killer. But somehow after PocketPC 2000, PocketPC 2002, Windows Mobile 2003 and now Windows Mobile 5 all having same "not too good" memory management I somehow doubt it.
Just to present a small fragment of the argument from MS' side. They have time to develop new features. Ones that aren't currently available as a 3rd party app get slightly higher precedence.
I don't agree with their decisions on this one as I think a significant number of people are unhappy with the behaviour. However, I will say that their decision to loosen up the requirements to allow people to quit the app is a positive step. The discussion is interesting @ the msdn blog and MS isn't going to change anytime soon. (loosely translated - never)
For what it's worth, I agree with their decision to focus on new features rather than this (to an extent). While I'd love it if they could delay the next version of WM by a week or so to include this feature, that isn't my call and I'm not footing the bill for their salaries.
Back to WisBar or SPB (or whatever your favorite app to actually close running programs on WM/PPC may be).
I don't agree with their decisions on this one as I think a significant number of people are unhappy with the behaviour. …
For what it's worth, I agree with their decision to focus on new features rather than this (to an extent). While I'd love it if they could delay the next version of WM by a week or so to include this feature, that isn't my call and I'm not footing the bill for their salaries.
well, you have both sides covered. ;-)
there are some features that should bo core to the OS, both for stability and consistency, and this is one of them. apps that burrow into the UI like this can be the most problematic. And why should I have to keep installing this each time I change devices? it would be like having to install the red X on Windows, and that platform is far superior in memory management.
No real argument, Ed. Just trying to show a little of the core MS' argument (for those who may not have checked out the blog post @ msdn). I can see where they come from and will give them some credit for that. I understand the reasoning behind the original functionality of that red X. Unfortunately, it's pretty well set now because of those early decisions.
I agree that this belongs in the OS and liked the suggestion of minimize and close buttons - letting the user decide. I'd love to see that in a future release, but reading through the whole discussion, it sounds like this will not happen. I seem to remember the possibility that Mike offered was even worse - no close/minimize at all - just the ability to switch to other tasks. 8O
There are times I wonder if anyone's listening to the user-base and this is definitely one of them.
It bugs me when this is framed as as a “memory management” issue and try to make you choose between logical behavior (and ironically more memory) vs. no OS memory management at all.
The OS can and should manage memory when programs are consuming memory. The OS can intelligently swap out memory to free up more memory as needed. When multiple programs are running, the OS can help manage memory used between the programs to optimize memory usage. This memory management the OS must do and can do better than humans.
But when a user knows that they are done with an application and closes it, the OS doesn’t have to “manage memory”; it can just close the app and free 100% of the memory the app was using. The OS can’t do any better than 100% efficiency. Ironically, they’ve created a memory management problem where there wasn’t one and have done a bad job at solving it. In the model they’ve implemented, when a user presses the X thinking that they’ve closed the app, they will actually have less memory than if they closed the app.
I know this is complicated by the fact that if the user later restarts the app it will *take longer* to initialize since it will have to load the app among other things into memory. This manifests as a performance issue. An OS should attempt to optimize performance by caching certain closed application resources in memory. Most desktop OSes only cache static application resources like code. This is why on the PC the second boot of Word is faster than the first. MS Mobile goes beyond this and they cache the whole app with all its state (connections, file handles, application data.) Requiring you to reboot or get a third party solution to get these back (or get lucky and have the OS swap it out.)
Calling this “memory management” (which it involves but goes beyond normal usage) and forcing you to argue that you “should be allowed to do your own memory management” is winning by controlling the language of the debate. Hiding the distinction between the type of memory management that they should do and management they don’t have to do (and suck at.) Saying, “Why should the user manage their own memory” mixes together all forms of memory management – and suggests that making the X actually close the app (and free the memory and resources) is silly.
If they said they this is a performance optimization it would be more precise in terms of this debate but then they’d lose the club of the vacuous phrase “why should users do their own memory management” and (I guess) they fear that we would gladly trade this particular performance optimization for logical behavior and more memory.
At this point it seems that the current behavior seems an entrenched religious decision, because (IMHO) I don’t think it wins on the merits. MS may have some pride to lose on this but I don’t see any reason why they can’t give a power feature that allows us to change the behavior of the X or a hold-down option that invokes a pop-up to give the user the choice (I prefer the former.)
The base philosophy, that users shouldn't need to manage their memory, is pretty hard to argue against. Come on, tell me that users should be required to manage their own memory. I dare you. You can tell me that you can do a better job. You can tell me that we don't do a good enough job. You can tell me that in some cases we do a fine job, but in the cases when we don't, the world comes to a screeching halt, time goes backwards, and history is rewritten to be somehow more dark and foreboding than it already is. But you can't tell me that users should be required to manage their own memory. That’s like saying that car owners should be required to change their own oil. I don't think so.
This guy is framing the argument in a way that doesn't apply. It's dishonest and he should be fired. None of us are saying that users should be *required* to manage their memory, rather, we're saying that we want to be able to because WinCE does such a horrible job of it.
__________________
HP 48s, 200lx, USR Pilot 1k, Palm 3, V, M100, Handspring Visor, Sony N610c, T615c, T655c, HP iPAQ 1910, 2215, Palm T3, HP hx4705, Dell X50v, HP rx1955, Apple iPhone, 3G, 3GS, 4, Samsung Galaxy Nexus
That is a BS excuse by MS. We are not asking to "manage memory" at all. I do not call simply closing a program "managing memory". I call it closing a program. If "managing memory" is such a difficult task suitable only for the OS to handle, then how come on my WINDOWS PC I can click the X button on this web browser (firefox), and it will completely termintate and release all the memory it is using until I open it again. Why the contradiction? Are mobile users less skilled at "managing memory"?
Holy Something-or-Other! Are these guys from Microsoft idiots? Or do they just think that we are?
First: I like the "user is allowed" approach.
Second: The oil changing argument is pure rubbish. Try one of these instead.
-- "Once the user turns on the car radio, he/she shouldn't be required to turn it off." (Or substitute heater, dome light, sunroof, map light, window, windshield wipers, etc.)
-- "If the user loads some passengers or groceries, he/she shouldn't be expected to unload those passengers or groceries".
Another thing the droids at MS seem to miss is that some of us (me included) end up reseting out PDAs after watching that memory meter drift lower and lower through the day. I have one application where I must do a reset before I execute. I guess that is memory management, but it certainly doesn't seem like changing the oil (or maybe I AM supposed to take the used electrons to the recycling center).