This blog posting represents the views of the author, David Fosberry. Those opinions may change over time. They do not constitute an expert legal or financial opinion.

If you have comments on this blog posting, please email me .

The Opinion Blog is organised by threads, so each post is identified by a thread number ("Major" index) and a post number ("Minor" index). If you want to view the index of blogs, click here to download it as an Excel spreadsheet.

Click here to see the whole Opinion Blog.

To view, save, share or refer to a particular blog post, use the link in that post (below/right, where it says "Show only this post").

Why Our Computers Keep Getting Slower.

Posted on 12th July 2023

Show only this post
Show all posts in this thread (Software).

I was triggered to write this post by this article on Hackaday.

The author, Bryan Cockfield, suggests one reason why, despite computer hardware becoming faster every year, computers do not run any faster. What he says is that software is now being written in a more lazy way, using development frameworks, packaged services and more abstraction; the reasons include allowing software to run on more platforms, and reducing the time and cost of development.

While the effect that he describes certainly exists, it is not the whole story. The phenomenon commonly described as bloatware has been around for the entire history of computers. Here are some of my thoughts on the reason and the impacts.

We are all aware of the constant stream of updates to operating systems and applications, whether you are a Windows user, a Mac user or a Linux user. Some updates fix security flaws and some add functionality. In general, it is more difficult to retrofit (add as an afterthought) something to software (especially if the functionality was not originally foreseen in the software). Updates are, simply put, the reason for our computers getting constantly slower.

Abstraction

The growth in abstraction is a major cause of the constantly reducing efficiency and speed of software, which is Bryan Cockfield's thesis, and this trend is gathering pace. It is worth noting, however, that not all abstraction slows your software down. I use Linux on my laptops and servers, and when I need to use Microsoft tools I use a virtual machine, which runs Windows as a guest on a Linux machine through abstraction; the performance of Windows and Office is better using such an abstracted environment than it is in native mode. The reason is that native Linux services (memory management, file system services, etc.) are so much faster than Microsoft native mode services that the gains more than offset any inefficiencies due to the abstraction layer. It is nevertheless true that the type of abstraction used nowadays in writing software is much less efficient.

Security Updates

A lot of the regular updates pushed out to our computers are to deal with security vulnerabilities. In operating systems like windows, where security was not properly thought about in the design of the software architecture, adding extra security often adds huge inefficiencies. Operating systems like Linux (and MacOS, which is based on Linux) have an inherently better security architecture, and adding security features tends to add fewer inefficiencies. Nevertheless, for most users, it is usually a good idea to install these security updates; the amount of system slow-down will depend on your operating system and on the exact nature of the update.

Functionality Updates

Functionality updates are more likely to include abstraction layers, and therefore likely to slow your system down. Since Windows generally does not allow you to refuse an update (you might be able to defer it for a while), you will have to install functional updates if you use Windows. Linux never forces you to accept updates, so you always have a choice. Some functional updates also inherently add load to your system, because they are doing more (for example the Excel feature, added several years ago, that displays the sum, mean and count of a range of cells that you have selected).

Other Updates

Sometimes, updates break things. This happened with Sheryl's Windows laptop, where updates kept disabling the bluetooth interface, until finally it could not be re-enabled. Users have similar complaints about iOS updates on their iPhones.

After the introduction of Windows 11, Microsoft rolled out an update to the update software itself. This caused Windows 10 system to download and attempt to install the upgrade the system to Windows 11. Part of this upgrade process is to check whether the system is capable of being upgraded; if not, the upgrade fails, and the whole process starts again. This puts a huge load on the system (downloading, querying the hardware, starting an upgrade), making it unusable (connections to network drives fail, and lots of RAM is allocated to the upgrade process). Millions of Windows 10 users were left with unusable systems. There is a third-party fix for this problem, but no fix from Microsoft themselves. This is the most significant performance impacting update that Microsoft has ever rolled out, but not the only one.

Comparing Operating Systems

In 2012 I bought the Acer laptop that I am using to write this post. I immediately replaced the Windows operating system with Ubuntu Linux. It has Quad i7 processors, 16GB of RAM and I replaced the hard disc with an SSD. This system still works well, and is very fast.

A year or two later Sheryl bought a laptop (an ASUS, with i5 processors and 4BG of RAM). It came with Windows 8.0, but has now been upgraded to Windows 10; it is not capable of being upgraded to Windows 11. For at least the last 3 years this laptop has been unusably slow (10 minutes to boot, 10 minutes to login, more than 30 minutes to open a simple spreadsheet, even after installing the third-party fix to the Windows 11 upgrade problem. This is all due to software bloat.

Admittedly my laptop is higher specification than Sherly's, but nevertheless the above facts show that software bloat is vastly worse with Windows; this is why Linux fans call it Windoze.