I, and many other previous Windows users notice that the computer seems to get progressively slower over time. I bought a leapfrog crammer only to find it installed process that sat there waiting for me to plug the crammer in so it could run the software. It took up three percent of the CPU twenty-four seven, seven day a week! This is one of the main reasons I left Windows. But, Ubuntu doesn't seem to slow down over time at all. Does Ubuntu allow programs to install background programs like the leapfrog crammer did to sit there like a leech and suck away at resources? Could someone explain why Windows tends to get slower over time, and is Ubuntu vulnrable to this too? Thanks for any help, this is puzzling me.
In my opinion most important reason is that most of the programs on Windows are registry dependent. Registry is arguably a well organized storage, however it is not known to be a very efficient one. When you first install Windows, registry size is small and look up operations are inexpensive; however as you install more and more programs registry gets larger and harder to manage.
Another factor is disk fragmentation. NTFS and FAT are very notorious for their inability to prevent fragmentation. On the other hand Linux file systems, especially ext3 (I do not have any experience in reiserFS or other alternatives) is quite resilient to fragmentation.
A short primer on fragmentation
What is fragmentation? This article does a good job explaining it, but the gist of it is this: Windows clumps all of its files together in one place on the disk, while Linux spreads them all over the place. That means that, when a file grows on Windows, it runs the risk of being so big that it overlaps the next file's hard disk allocation, and therefore must either be moved or (more likely) fragmented, with the new fragment being stored on a different place on the hard drive. The next time that file is accessed, Windows actually has to make two disk accesses, one for the initial file and a second for the newly created fragment. When a file grows in Linux, on the other hand, there is ofter more than enough space for it, and the OS proceeds happily along. Linux's method does have a small downside on mechanical hard disks, and that is, because the files are spread all over the place, there is a small delay in accessing them over a series of "clumped" files. The e4rat project works rather well for eliminating or reducing some of these delays (ext4 filesystems only), and the incurred overhead is never worse then what Windows experiences from file fragmentation.
Another factor is a small trick that Windows pulls: A Windows installation is never up when it's up. Windows starts a lot of processes after you log in. The distinction between system processes and user processes is a little vague for Windows, especially for the old versions before XP. And a lot of Windows applications are very eager to start background processes and place tray icons. In time a Windows installation begins starting more and more processes at start up. However Linux strictly starts all system processes before you log in. After you log in, only a minimal number of processes are started. Linux also never encouraged using background services related to specific tasks of a specific user, or using tray icons. Last version of the Gnome denies all applications to place tray icons, except a very narrow white-list. So in time a Linux installation still starts only a limited number of processes after the start up.
I'm sure there are other numerous factors that contribute to this phenomenon, these are the major ones that comes to my mind.
I actually brought this up once to a Microsoft employee who was giving a special presentation on touchscreen technology and how Microsoft planned to approach it, and the best response she could give me was along the lines of "the slowdown in Windows is due to operating system fragmentation, and we're still heavily researching why this occurs and how to resolve it."
I somehow think the difference may be due to how Ubuntu handles package management and configuration versus Windows' methods, though I wouldn't be able to explain that any further. We may never know completely if we don't have access to Windows' source code to explain why it behaves the way it does.
That, and with a new Ubuntu release every 6 months, there may not be enough time in between releases to notice any potential slowdown if you install a fresh copy every time. Or it could also be due to Ubuntu having less bloat, and thus fewer things to go wrong.
Windows gets slower because every application comes with an installer that is not controlled very well. For instance the person writing the install script really doesn't care what their program will leave behind when you remove it, because once you've removed it you're no longer a customer. A more pessimistic person would say they do it on purpose to make you upgrade more often, probably not 100% false.
Also the registry is a huge issue, hopefully this should get a lot better with SSD's but it's a very centralized point of failure and bottleneck. Every time the system needs hardware info it goes to the registry, every time you launch an application it needs to get info from the registry. When it's first installed the registry is as it should be, as Microsoft expects it to remain. But since anything installing is given nearly free reign over what it does to the registry, and there's no mechanism to remove useless entries the entire thing gets crowded really fast.
Ubuntu is certainly vulnerable to slowing down too, although most applications utilize their own .conf files, with the exception of the gnome configuration file shared by some. However, the way a .deb is structured means whatever goes on the hard drive, can be taken off with the right command. And even IF you don't issue "apt-get remove --purge ..." to remove the configuration files, you're just left with a text file in your user directory that doesn't eat up any resources save a few hundred kilobytes of hard drive space. Startup time on Ubuntu can be impacted if you start more services but it employs some tricks, like optimizing where crucial startup components are to minimize hard drive bottleneck. Also, once you're up with Linux, you're up. No waiting for more tray icons to launch.
Essentially the problem is the registry because it introduces a very real-time bottleneck to many aspects of windows.
I think the premise of the question is probably a little hard to substantiate because they are different operating systems with quite different models for installing software so it's hard to do an apples to apples comparison.
I don't think one can be so general as to say Windows always slows down and Ubuntu never does.
Here are some things that may possibly cause performance to degrade over time.
Disk fragmentation, efficiency of file system, and TRIM
Note: I don't think fragmentation really contributes to this effect much, I'm just talking about it because a lot of people may assume it does.
As disks are used files are written, resized and deleted at random leaving random gaps across the drive. The filesystem needs to efficiently find space for every new file that is written. This becomes harder and slower once the filesystem becomes more fragmented and there is less free space. On a traditional hard drive this relates to the physical location of the files on the disk, but on an SSD this is already abstracted by the drive firmware so it relates more to the drive's algorithm for combining writes and keeping track of free blocks.
On a traditional HDD it is plausible that later filesystem implementations (like ext4) may be only slightly better at tracking free space and coping with mostly-full drives than earlier implementations of NTFS, but remember that NTFS itself is improving and later OSes like Windows 7, 8 etc have improved algorithms for allocating space even though the on-disk NTFS format they use is essentially the same.
On an SSD it'll come down to OS support of TRIM which is a way for the OS to hint to the drive firmware which blocks can be reserved as empty space, drastically reducing the drive's tendency to become slower as it is filled.
Overall, though, these are pretty small effects and there isn't a great deal of difference between modern versions of Windows and the filesystems Ubuntu uses.
Crapware, software that runs at boot, etc
Windows has a much greater problem of "crapware" - that is, software that you don't want installed but is bundled with other software, deceitfully or just annoyingly. With Ubuntu, you typically get all or most of your software packaged specifically for Ubuntu so it doesn't have any commercial reason to bundle "adware" and guards against "spyware" or other nefarious software.
On Windows, you get your software from a wide variety of sources, many of them with commercial reasons for bundling adware (software that pops up ads, changes your browser homepage, adds browser toolbars, adds browser extensions, etc), and some nefarious software bundling spyware.
This is probably going to have much more of a real-world effect on Windows getting slower over time, but it can be averted by being very careful about what you install and where you obtain software.
Poorly coded software, inefficient software
Ubuntu software (referring to software from Ubuntu repositories) all has to be approved by someone at some stage from Ubuntu or Debian before it's included, and its source code is open for all to see, offering a certain level of transparency and ability for people to see any major flaws or silly coding. In theory this should result in a certain level of reliability and behaviour from software.
On the other hand, while Microsoft Windows itself and its bundled software will work pretty well, software written for Windows from third parties varies greatly in quality and efficiency, and there is no body approving or overseeing its production.
Thus, third party software for Windows may use memory inefficiently, it may start when Windows boots even if it probably doesn't need to, and generally run poorly. On the other hand, some brilliant software will be very slim, fast and efficient. With a mixture of such good and bad software building up over time as you install more software on Windows, your system will gradually feel the burden, especially for software that loads itself at startup (this isn't a Windows help site but if you're interested in keeping Windows running well, use the excellent "Autoruns" tool downloadable for free).
I actually think that the virus protection software is the biggest cause of Windows slowdown. At work I have to use a Windows based computer. If you disable the virus software for a day, the computer will run significantly quicker, but it is not an alternative for us. We had an 'infestation' on the network awhile ago and all hell broke loose. There are fewer malware programs that affect Linux, though I have read they are rampant in the Android world.