Software developers often start with a nice simple program. They will add features to this program as they see fit, until it fulfills all the functions required of it. If this program falls into the hands of MarkeTroids however, 4 billion spurious features will be added to the program just to force the end user to upgrade to the latest and greatest version. This is known as Bloat. It is the reason "todays" software is hundreds of times larger and much slower than older versions, despite exponential increases in the hardware it runs on. Developers - combat with AntiBloat.
For example, both the GNOME and KDE desktops can often feel bloated on older/slower computers. Part of this could be attributed to developers having high-spec machines when writing/testing software. To pick on GNOME, here are some examples of memory usage:
|Process Name|Virtual Memory|Shared|Notes |galeon-bin|100MB|33MB|One browser window, 4 tabs open |gconfd-2|21280KB|5140KB| |rhythmbox|65356KB|18MB|781 songs in playlist |gedit|24708MB|17MB|on startup, no files open
Granted they are sharing lots of memory with other processes, but the amount of memory allocated solely for each program still seems quite large - gedit is using 7MB of its own just to display a menu, toolbar, and a text area for typing!