Udostępnij za pośrednictwem


It's my computer, dagnabbit, not yours!

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?

Comments

  • Anonymous
    August 13, 2007
    > 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.]

  • Anonymous
    August 13, 2007
    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.)

  • Anonymous
    August 13, 2007
    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.)

  • Anonymous
    August 13, 2007
    This sounds interesting.  Let's rid the world of craplets once and for all!  ;-)  I'm looking forward to hearing your ideas.

  • Anonymous
    August 13, 2007
    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.

  • Anonymous
    August 13, 2007
    The comment has been removed

  • Anonymous
    August 13, 2007
    The comment has been removed

  • Anonymous
    August 13, 2007
    The comment has been removed

  • Anonymous
    August 13, 2007
    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.

  • Anonymous
    August 13, 2007
    The comment has been removed

  • Anonymous
    August 13, 2007
    "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.

  • Anonymous
    August 13, 2007
    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).

  • Anonymous
    August 14, 2007
    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.

  • Anonymous
    August 14, 2007
    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.

  • Anonymous
    August 14, 2007
    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.

  • Anonymous
    August 14, 2007
    > Windows needs a central update scheduler. I second this motion. At the moment I have different background software from Apple, Sun, HP, and Microsoft all doing the same thing--pinging servers and looking for updates. Add to that all the apps like Firefox and Fiddler that try to poll for updates while they are running. None of that activity is coordinated. The Linux package managers have a really good way of doing this; very few apps on Linux feel compelled to roll their own update scheme.

  • Anonymous
    August 14, 2007
    Thirded. A centralized update system for third-party software would be wonderful. One thing I do actually like about Vista is the way Windows Update seems to have been folded back into the OS where it belongs. I hate having to install a new update control just to find out I need to reboot as part of a Windows Update Update. Barring major bugs or security holes, these things should be well-understood enough to not require constant updates just to list the available updates.

  • Anonymous
    August 14, 2007
    Looking forward to more information!  My favourite bloatware: Java and everything from Adobe.

  • Anonymous
    August 14, 2007
    Larry let me help you a bit :) My rules for writing craplets:

  1. DON'T WRITE THEM
  2. SEE RULE #1 My rules for writing applets:
  3. THE COMPUTER IS MINE, NEVER FORGET THAT
  4. NEVER STEAL THE FOCUS FROM THE FOREGROUND APP
  5. NEVER USE MORE THAN 5% OF (CPU|RAM|HDD|NET|GPU) BANDWIDTH WITHOUT ASKING
  6. NEVER RESTART WITHOUT ASKING
  7. DO NOT POLL, REGISTER FOR NOTIFICATIONS That would be it, mostly.
  • Anonymous
    August 14, 2007
    Perhaps a definition of craplets is required?

  • Anonymous
    August 15, 2007
    > the WU folks know how to do updates in an unobtrusive manner. Does that mean they know how to not pop up every 5 minutes reminding you that 5 minutes have passed since the previous time that you said you're not ready yet to close all your apps and reboot?  Do you mean they know how to not steal focus every 5 minutes?  Do you mean they know how to not steal a keystroke that you thought you were typing into Visual Studio or Outlook Express?  And if the keystroke tells WU to do a reboot without saving your source code or e-mail message then they know how to not do that reboot and they know how to not lose your work? Yes?  Good, that is excellent news, thank you.  The WU folks know how to do updates in an unobtrusive manner. Now please, pretty please, can you persuade the WU folks to USE their knowledge?

  • Anonymous
    August 16, 2007
    As I've mentioned , applets can be a plague on your system. The annoying thing is that it's possible

  • Anonymous
    August 17, 2007
    The comment has been removed

  • Anonymous
    August 17, 2007
    "You know the CIAs, KGBs and MI5s of this world are underfounded when the guys (and they are mostly guys) producing such software hasn't been taken out in the desert and shot a long time ago." Quoted For Truth. Norman, I recently run WU in Vista, it downloaded 50MB of NVIDIA drivers (which I told him to do because it was optional). It was non-intrusive except that the screen has gone blank for a few seconds after the download completed. Video driver got installed without a reboot. You can postpone installation for 4 hours if I remember correctly.

  • Anonymous
    August 21, 2007
    The comment has been removed

  • Anonymous
    August 22, 2007
    > I'm not aware of ANY applets that are pushed via WU. WGA was a pretty bad one.  It consumed resources, did absolutely nothing for the benefit of the user and used techniques commonly used by spyware to ensure that the user did not successfully terminate the wgatray.exe process.

  • Anonymous
    August 22, 2007
    I've never seen WGA install a WGATray program, are you sure about it?  Possibly this is because I don't run pirated versions of Windows (or machines with false positives).

  • Anonymous
    August 23, 2007
    You can get false positives from MSDN (with WGA on XP).  Hmm wait, you're in Microsoft, so maybe this needs correction.  Outside of Microsoft, one can get false positives from MSDN. Somewhere I took a screenshot of a false half-positive in Vista too.

  • Anonymous
    September 21, 2007
    Norm: sc stop wuaserv When you reboot at a timing of your choice, wuaserv will run again.  But I prefer to install updates just before I reboot since when running with things half installed I sometimes get strange behaviour that goes away after reboot and install finishes. The thing that I find annoying about WGA is that if you go to windows update and say don't install WGA and never show it again, it comes back into the list of critical updates the next time a change is made.  If I said I don't want WGA craplet installed, and I don't want to see it in the list again ever.  With the current behaviour I would never set the 'automatically install updates' option (even if there wasn't the issue of strange behaviour between install and reboot).  The 'critical updates' list that gets installed automatically should ONLY be bugfixes for security, not craplets or other things being pushed down.  Someone was complaining in another blog entry about itunes' update trying to foist quicktime on people during update -- I consider installing new programs/applets in the list of critical updates to be almost exactly the same thing (and therefor also extremely annoying!)

  • Anonymous
    September 21, 2007
    The comment has been removed

  • Anonymous
    October 01, 2007
    Excellent rant!  I'm listening for the next installment!