Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

It is common for software vendors to offer automatic updates.

The research and installation of these updates can be done

  • at application startup
  • through a service or process in the background (which often can be seen in the icon tray)
  • Sometimes at the opening of a session or boot

The problem I encounter today is that Google, Sun Java, Adobe and others... updates system seem to squander resources of my computer to watch for updates continuously. One uses a service, the other a running process...

Why do those suppliers not use the scheduling tools offered by the operating system, like the Task Scheduler?

share|improve this question
3  
Why does Windows not provide package management that provides this is a much, much better question. –  alternative Apr 20 '11 at 20:10
1  
You mean Oracle Java? Oracle bought Sun about two years ago. –  Mahmoud Hossam Apr 20 '11 at 23:26
1  
@mathepic, Windows has Windows Update, which is essentially that. On linux, the vast, vast majority of what can be installed via something like yum is FOSS software. That approach wont work for commercial desktop software, of which there is orders of magnitude more of for Windows, and who's vendors want to control the upgrade process. If you pay close attention to Windows Update, you'll see that there are 3rd party packages up there - its just that they are primarily drivers. –  GrandmasterB Apr 21 '11 at 4:09
add comment

4 Answers

up vote 2 down vote accepted

I'm sure each vendor has their own answers but here are a few guesses :

  • Consistent update mechanism across different operating systems
  • Certain actions, like adding an item to Task Scheduler, requires Admin permissions on the box, which is something most users in the corporate world do not have.
  • Some vendors do not want the end user to have control over their updates for various reasons, like security
  • Some updates need to be applied before the main application is in memory so that it can overwrite core files. To do this, some updaters run at startup and apply the update than rather than force the user to reboot later.
  • Some update services are also integrity checks and ensure that the files they are responsible for are not updated unexpectedly by some other process. Running as a service allows continuous monitoring of those files.
  • Writing automatic update code still has a bit of "cool" factor so Devs do not want to miss the chance to do it
share|improve this answer
    
Thanks for your inputs! And I share what Mathepic wrote : Why does Windows not provide package management that provides this is a much, much better question. –  Larry Apr 20 '11 at 21:18
add comment

Java updater doesn't continually look for updates. It's a poorly named background process to speed the launching of the browser plugin as well, which checks for updates at scheduled intervals (which can be disabled or modified to suit your tastes, I think it by default checks once a day at most).

share|improve this answer
add comment

Software that installs its own update service really irks me (looking at you google). There's no need to even schedule it. Most software simply checks for updates when its loaded. That is completely sufficient for desktop software, and doesnt require loading down people's systems with unnecessary processes.

Why do they create a service? Possibly because it can be run with elevated rights, and thus not pester the end user. But imo, its very presumptuous of these developers to install a service that runs 24x7 that does nothing other than periodic update checks. Too many developer believe they have the right to trample all over a user's machine out of the mistaken belief that the user's life revolves around their software.

share|improve this answer
add comment

The reason software vendors write software on windows to perform their own software update checks is that they are full of software developers.

Programmers write code to solve problems.

The product needs to be updated. So it needs an updater. So they write an updater.

Windows scheduler service is quite capable of doing the minimum to do updates. It has one annoying property, that it uses someone's security credentials.

If you make a scheduled task as a user, it will run merrily, until security policies force you to change your password. Bit of a pain.

Okay, so let's use the administrator; but they are often a domain administrator, and the network administrator doesn't want the software updater having the "keys to the kingdom".

Outside of Windows, it's traditional for software packages to have its own user-id, that is the owner of the files, has the appropriate permissions, and runs the update/scheduled tasks. It's a cultural thing and it doesn't happen on Windows ( I suspect largely because it's hard to create a user form an installer) It's relatively well documented to make a service, and to have a notification tray applet.

When your only tool is a hammer, every problem looks like a nail.

There are better ways to make systems that don't involve writing as much code, but if writing code is what you do, you'll stick to writing code.

Programmers were given a problem that could be solved by programming, so that's how they solved it. It's called "Functional Fixedness" in the Psych lit and being more motivated makes it worse.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.