I've been wanting to write this one for a while, but continually got sidetracked, but there's no time like the present...
Many others (I'm too lazy to chase down references) have commented on the phenomenon known as "bloatware" (also known as "craplets" or "shovelware").
I'm not going to talk about them, too much has been written about them by others already.
Instead I want to talk about applets in general. These are the "little" helper processes that software seems to leave lying around after installation. These are a particular pet peeve of mine, I'm well known inside MS (or at least within the Windows division) as being rather fanatical about them, and fighting tooth and nail (sometimes successfully) to get them removed. I don't know how many times I've asked: "Why does your product (or feature) have all this crap running (where 'crap' is defined as 'stuff I don't want running on my machine')?"
Applets come in lots of sizes and shapes - they can be services waiting on an app to use them; they can be processes that handle systray icons; they can be helper applications. But they share one common: they all consume resources, sometimes LOTs of resources. And I would rather that these applets NOT consume resources.
Nowadays, machines come with a fair amount of resources - my current dev machine is a dual 2.4g Core2Duo 6600 with 2G of RAM and a reasonable amount of disk space (750G on 3 drives), but Vsta runs on machines that are far less capable (before it died, my laptop was a P2 with 512M of RAM and it ran Vista Ultimate just fine (no glass, but other than that it worked well)). On such a machine, every single unnecessary process can be painful.
The Windows team has known that this has been an issue for years, and has built in a ton of features into the operating system to help alleviate the pain and suffering associated with applets (some of which have been there since NT 3.1), but the reality is that nobody takes advantage of this functionality, and that's a real shame.
In a potentially futile attempt at trying to inspire people to improve our customers' experiences, I'm going to dedicate this week to writing posts about applets and how developers can fix them.
Btw: I want to be totally clear here: Microsoft is just as guilty as others in this arena.
Tomorrow: Why do people write applets?
> my current dev machine is a dual 2.4g Core2Duo 6600 with 2G of RAM
Oh, just one step away from being prohibited to hibernate (by design[*]).
Maybe you consider this off-topic because hibernation isn't bloatware or shovelware, but it is your computer, dagnabbit, not your someone else's. It would be nice to improve customers' experiences in this area.
[* This means not being prohibited by bug, in the case of 2GB, for which there is a hotfix which is actually downloadable and I appreciate that very much. The case of 4GB has been posted publicly by Microsoft: Microsoft's policy is that the length of time it takes to hibernate and restore 4GB is unfriendly to the user, i.e. it's more user friendly to force them to shut down all applications and then newly start up all applications again after rebooting. Why did Microsoft neglect to post publicly their reason for neglecting to impose the same user friendliness at the level of 512MB, they didn't say.]
That's good. I can't wait to hear about them.
I always wonder why WinXP always auto-runs "new phonetic" and "new changjei" IME even if I've not chosen to install them. (I always use "Quick" as my input method... and hardly anyone I know about use the "new changjei" IME, almost all of them prefer the origional one.)
Because noone had invented Vista's sidebar "Gadgets" yet. ;)
(Of course, bloatware is different to genuinely useful tiny applications, so not all gadgets will be craplets, but some craplets will be inevitably be implemented as gadgets.)
This sounds interesting. Let's rid the world of craplets once and for all! ;-) I'm looking forward to hearing your ideas.
Actually, I want to be clear: I have absolutely no problems with craplets (ok, I do, but not that much).
What I have issues with is poorly architected craplets. IOW, craplets where the author didn't follow the #1 principle of applet design: It's not your computer, it's your customer's computer.
I'm hoping to write up some basic rules that help to make applets less intrusive.
It's not vista, but on my dev box basically 100% of the time after I've had a crash due to a bluescreen or losing power, on the next boot the various craplets will hang. Something's deadlocked, and I've never exactly figured out what.
The only clue I've got is that when it happens I get a warning in the eventlog that the TCP connect limit has been reached. But whenever this happens I can't actually launch something like TCPView to see what's got all the connections going because it will never launch.
But my system's taught me that in this case, if I wait "enough" time, being something more than a minute, but I'm not sure how much more, and then tell the system to restart, on the next reboot it boots cleanly.
When I look at things, there are a ton of craplets running. Do I really need 3 copies of the ATI utility CLI.exe running? I don't know, and killing them in task manager doesn't seem to hurt anything. The info in the VERSIONINFO resource just says that it's the "Command Line Interface application for all ACE Components" which isn't really helpful. They have a VM size of about 60mb between them.
I'm all behind you Larry. I also get on my soap box about this topic as well.
The Windows operating systems and associate automatic updates seem to be the cause of the majoriy of craplets and unwanted software installed on my machine. I need automatic updates to patch security updates in the OS, but that's not all that gets downloaded in high priority updates is it? (e.g. that "insulting" font nonsense recently)
The new annoying trend in applets seems to be to write them in .NET, which is worrying to say the least. It is really irritating to see a video card control panel launch on startup that eventually consumes 60MB+ of private heap and takes FOREVER to page back in when activated.
I also love it when applets steal focus to a hidden window on startup.
Windows needs a central update scheduler.
I don't mean that third-party applications would have to upload their updates to Windows Update - I think that's a leap too far. But it does need a way for third-parties to register with a central update service, so we don't get a different one (which runs on startup) for each damn vendor's products. It should be a delay-start service on Vista, and it shouldn't have any UI unless there are actually updates available. It should also not require use of Windows Installer.
"It should also not require use of Windows Installer"
But, but, but, that'd mean that we'd be back in the "bad old days" where installations were an uncontrolled pop-luck experience. Any centralised install/update service that doesn't use Windows Installer is absolute insanity.
Back on the "applets" note, I've just ran msconfig on my (newly built and provisioned work PC) and the list in there is truly shocking! Time for a cleanse me thinks.
Heh, software comes with far too much random applets nowadays, and just about every program assumes that it's the best program of all best programs and hence should be running constantly and splattered all over the GUI.
I'd be interested in how applets are meant to be programmed under Windows (pre-Vista).
I'm a dinasoar who still writes desktop apps, the kind you double click and they run even if you're not on the net.
What with Vista it sure is tempting to load all of my functionality into a service, with my exe just being a gui that talks to the service.
With a service my app will pop up and be working very quickly, and I can bypass most of the security issues and just do whatever I want.
JimmyB: I'm not aware of ANY applets that are pushed via WU. It's possible that you picked up a driver update that included an applet via WU, but Microsoft doesn't push any updates with new applets.
Mike: I 100% agree. It'd be cool if MS opened up WU for 3rd parties - the WU folks know how to do updates in an unobtrusive manner.
Ooh, really looking forward to this. Resource hogging craplets are a pet peeve of mine too. Hopefully this will give me plenty to link to next time somebody asks about writing one.