Fog Creek Software
Discussion Board

Software Bloat and Moore's Law

Regarding a line in the recent interview of Joel - How can Moore's Law justify software bloat?  Software can grow *at least* as fast as hardware can.  So no matter how much better your next computer is, bloated software will *still* run slowly.  And what's worse, you'll have to upgrade *everyone's* workstation to the new model, in order to keep compatible with the new bloated office suite.

When using software you're trying to complete a task, and the cost of completing that task is worker time, the hardware, and any software development or licensing.  When the software adds 100 useless "features", and ends up needing a system with a  processor 18 months newer and 32MB more RAM, that adds to the total cost to use the software.  Bloatware simply costs too much.

When it comes to software that is always incompatible with the previous version (Linux kernel, Microsoft Office), this leads to a perpetual cycle of hardware upgrades.  Why should an organization have to keep buying boatloads of new PCs, when most of the people are trying to complete the same tasks?

Neil STevens
Wednesday, December 05, 2001

I definitely respect this point of view, that we're going nuts with new features.  However, the consumers have spoken, and while they say they want speed, they pay for bloat.

Things may change though, since it's only been a decade or two that we've had PCs.  It is very hard to find meaningful long-term patterns in such a small time period.  Perhaps the economic slowdown will make things more clear.

Basically, I think that any discussion of bloat requires a discussion of consumers as well as software companies.

forgotten gentleman
Wednesday, December 05, 2001

Software bloats faster than hardware capacity expands. Why ? We have all experienced situations where the user demands interconnection between functions which mess up our nice logical deconstruction of the system. If you think of a system as a circle with functions at the edge, the interconnectedness of the system is related to the area. Adding a little extra to the circumference (user functions) inflates the area (interconnectedness) to a much greater degree. Increasing the power of a computer simply allows your computer to run bigger circles of functionality with an exponential increase in complexity.

Ian sanders
Wednesday, December 05, 2001

On the topic of software bloat, it would help to distinguish between size bloat and processor cycle bloat.  With regards to size, the more features you pile on, the bigger your code footprint will become.  Just as mentioned by Joel, the cheaper disk space becomes, size bloat becomes more and more negligible.  Processor cycle bloat is typically brought about by software layering.  To get something done, you end up calling layers and layers of software.... most of which add little to what you need to do.  I come from a c/c++ background so yes, I did knock VB, Perl, and other scripting languages around for a while with regards to their performance aspect.  However, I am finally recognizing that all the above languages have become so pervasive in the programming world.

In the miniscule world where microseconds matter, size and speed matter.  This used to be the perception and programming accumen used to be how tight you can keep your code.  You tell me what the new perception is.

Hoang Do
Wednesday, December 05, 2001

On Size vs Speed, remember that it's not just disk space that is affected by size bloat.  The more code and data your application has to use, the more RAM your application uses up, the more swapping the user has to endure, and the slower the entire system runs as a result.

Yes, disk space is cheap, but disk space isn't a substitute for RAM.

Neil Stevens
Wednesday, December 05, 2001

Yes, but RAM is cheap, too. And so are CPU cycles.

Besides, hardware capacity hasn't just grown faster than software has expanded, it's left it in the dust and lapped it a few times. 512 MB of RAM is less than $100. A 1 GHz CPU is less than $100. A 20 GB hard drive is less than $100.

Dave Rothgery
Thursday, December 06, 2001

RAM/HD not withstanding, it's worth noting that bandwidth for ESD (electronic software distribution) is expensive.  And in large enterprises, the ability to have a clean installation process (e.g., not ripping up registry settings or installing system DLLs - a common trait of bloatware) is also key.

We market a small P2P web server ([plug]BadBlue[/plug]) for file sharing that at one point was so small (161K) that Lucas Gonze of O'Reilly Network entitled his column about it "161K".  I guess journalists are sick of bloatware as well.

But I do think that's one of the things people like about this type of software:  tiny, easy to install and functional for the purpose at hand.

D Ross
Thursday, December 06, 2001

What about all the junk in the background... In the Operating Systems course I am doing they teach you that the more programs that run at once the more CPU cycles have to be split in between programs. This causes overhead of which older operating systems had trouble with. The new operating systems like windows 2000 and XP don’t have such a problem but in saying that they have a higher overhead regardless.

Phillip Kilby
Sunday, December 16, 2001

*  Recent Topics

*  Fog Creek Home