You know, that’s a common problem and actually a very common complaint. What I can tell you is that it’s not likely to change. But let me throw out a few of the reasons that I can think of that might explain why it’s happening.
Become a Patron of Ask Leo! and go ad-free!
It’s mostly about competition
Far and away the number one reason that software only gets bigger is that products are competing with each other for users and customers.
Competition means that the program vendors need to add more features, more capabilities; more of this, more of that. And over time, all of that means more code to implement all of those features and capabilities and bug fixes including the patches that you get from time to time.
Now, none of this happens overnight. It doesn’t even happen over a year. But over the span of a few years, you’ll start to notice that the program that used to be this big and had a certain requirement, is now that big and runs either exceptionally slow on your old hardware, or now requires more hardware to do its job than it used to.
It may not be what you want, but the market says otherwise
Programs that continue to grow and innovate get used by more people than programs that stagnate.
Programs that continue to grow and innovate get used by more people than programs that stagnate.
More people certainly doesn’t mean everyone, and it may not mean you. But in many cases it does mean the majority and often the vast majority. Companies that don’t continue to improve their products with features and functionality eventually die away. Speed might be a feature that sells somewhat, but size rarely is.
With great power comes … more features
Another contributing factor here is what I’ll call the march of technological progress. Machines sold today are significantly more capable than the machines sold just five or ten years ago. My new machine has 16 GB of RAM and the potential to upgrade to 64. Ten years ago, we were happy with hard disks that size and never dreamed of having that much RAM!
With hard disks in the terabytes and RAM measured in multiple gigabytes, software developers often choose to develop to the latest and greatest systems, or at least the current ones, to enable them to provide as much functionality as they possibly can into the future. Older, less capable machines, are a shrinking market by definition, so it’s really difficult to justify developing software with those machines in mind.
So that leaves those of use with older, less capable machines in a difficult spot.
Realize though that we too are actually contributing to this problem to some degree because we’re asking more of our machines now than we did five or ten years ago. Maybe we’ve just accumulated ten years of email. Maybe we’re doing way more on the internet than we used to. Maybe it’s something else. But our own needs as well as the software we expect to meet those needs have grown over time. Our trusty old machine? It hasn’t.
I confess that I upgrade to newer versions of software but in most cases it’s not for the added features. In many cases the new release includes bug fixes. The new features (which I mostly do not need or want) come along as excess baggage. In the case where a release fixes a bug in a feature which I don’t use, I don’t upgrade.
But a later Release sorting a Bug in a Feature that You do Use, will almost certainly include the earlier Release/s, otherwise you would have dozens of slightly different versions of the same program.
Now that would create a night-mare scenario, FOR EVERYONE!
==================
From experience of writing many programs, I know what it is like to keep track of slightly different, unreleased, versions, whilst striving to produce the “final, working” version for release.
Slight variations in their names, included comments to describe the differences etc etc.
Then when the working, releasABLE, version is arrived at, tidying it up, removing, by-now, misleading comments, making sure that retained comments accurately describe the “new” version and possibly adding more.
Plus advising the Users of those (hopefully) improvements etc.
It ain’t easy!
As always, excellent comments Leo. I’ve found another factor that accounts for some – occasionally a lot – of bloat. That is the drive for rapid development of code, versus elegance. Memory is cheap, particularly if it is your customer’s memory. Programming time is expensive. Hence the rise of rapid development systems that carry large size overhead in libraries of routines, most of which are not used. Add to that testing code that is incorporated in the program, but never called in the production release, then go through 10 or 12 release cycles, and the result is an application deliverable that is 2-10 times larger than needed.
While some of this could be handled by optimizing the package during compilation and linking, most programmers learn that optimization is likely to break working code – so why take the risk. Just ship working code, without optimization. It still works.
Recently, I’ve noted a retro trend in utility packages, advertising them as small footprint! So, it can be done, if the market values small footprint. Right now, I think Leo has hit the nail on the head. The market values the piling on of features, whether they add value to most users or not.
I agree with John, there is a lot of bloat. But what I haven’t seen mentioned is the [apparent] Holy Grail: social media integration. I want to yell at these companies, I DO NOT want to share everything I do with Facebook, Twitter, etc.
I suspect I am not alone and it would be interesting to see the behind the scenes stats on just how much the social tools are used. I understand why the developers of software or apps want the information. I just won’t do it. No doubt I’m an exception, using Firefox with AdBlock Plus and Disconnect.
The stats show that a huge majority of computer users use Facebook, Twitter a bit less. Youtube has also become a huge social media. Pinterest is also growing quickly. The facts are in, people love social media. They use it, they like it integrated, they want it easy so they can use it all the time. That’s exactly why businesses are spending so much money and time integrating with social media. People have it on their phones, their tablets and their computers. You aren’t alone in not liking social media, but you are a pretty small minority.