Bloatware: How to Avoid Bloating Your Application
I read an interesting reflection by Jeff Chandler over at Performancing. Jeff asks if all software is destined to become bloatware, and then applies it to blogging platform WordPress. While I don’t agree with the Google Chrome – Mozilla Firefox comparison, basically talking about how much faster and sleeker Chrome is, it is an interesting question.
So far, it looks like WordPress 2.7 will contain a number of integrated plugins into the core leaving some to believe that WordPress is becoming bloated. Although I am not a software developer, this had me thinking on whether or not all software is doomed to become bloatware.
Yes and no, is my answer. Most software becomes bloatware because it isn’t rewritten enough. Think about it, if you build upon a core that is dated and bulky it will affect everything you put on it. However, if you revisit your old code every now and then, keep it up to date, and rewrite portions (or all) of it, there is really no reason why your application should become bloated.
Think about it, if you build upon a core that is dated and bulky it will affect everything you put on it.
If we look at web applications in particular, we’ve got to take scripting and databases into account. PHP gets updated, and suddenly your old code written for an early PHP 4 version should be swapped for PHP 5 code instead. New database queries can be used to speed up your web application, and so on. In fact, because of this, I think revisiting and rewriting the core of a web application is way more important, than traditional software.
WordPress in particular could probably use a rewrite here and there, at least that’s what people are telling me, I wouldn’t know myself. This is probably something that goes for a lot of open source projects. With the November release of WordPress 2.7, we’ll get a bunch of features that previously was handled by plugins. That means that the core is growing, and one should be wary of that. However, this isn’t necessarily an issue, because online you just load what you want to load, and if the WordPress core is organized in a decent manner, that means that the extra stuff won’t be called for unless needed. I’m not really worried about that.
I am, however, a bit more concerned about walking in old tracks, which is another kind of bloating I guess. If you’ve got a great idea in 1.0, you build upon it, and then you build upon it, and build some more. And you know what, then you’re stuck in it! It would be awfully hard for WordPress to lay off the categories, for instance, and every larger revamp they do to the admin interface will turn a lot of people off.
That’s why we get new projects, like Habari.
Any piece of software, online of off, can be bloated. That doesn’t mean that it has to.
What do you think? Share your thoughts in the comments.





Want an avatar? Get a gravatar! • You can link to this comment
There are two points to be made here. First, it seems as though someone in the WordPress camp is noticing that they need to evolve, and they’re finally doing something about it. I can see someone with a distinct big-picture view of the codebase making some fundamental changes in how things work. Whether they’ll be able to compete well with the opposing interests that are adding all of the additional bloat and be able to make a significantly positive enough change will be revealed over time.
Second, there is an accrual in WordPress of technical debt and legacy stagnation that will be very difficult to overcome. Since the minds in the project are so tied to conservative thinking (in terms of how the project works), it’s difficult to welcome new ideas. An example is the insistence on procedural templating in terms of exposing API to users, as compared to the power and flexibility of an object-oriented MVC approach enabled by the new features of PHP5.
While the change would have to be gradual to shift extant users gradually into a new way of working, one must wonder if the shift would need to be so slow that it will eventually be overtaken by new players willing to plunge into the new technology head-first and keep up with it, like Habari. As they say, “Change or die.”
Want an avatar? Get a gravatar! • You can link to this comment
Very interesting article, and I conclude just about the same answer you have come up with. While re-writing and revisiting code is necessary, that can also be considered the downside to a bloated application. Just take a look at Windows Vista. The re-wrote most of what XP has solidified, and because they were in the future terms of what they wanted, they ended up adding to the core things that actually caused the program to become a bloated application(up for debate). I think Priorities are really where the bloated/non-bloated blame game can be had. If your priorities are to rewrite the code so that it is modular and quick, then you may succeed, if they are to allow for more options and more choices, chances are your code will become bloated from the get-go.
Senior UI Developer, Coventry Health Care.
Geedew Owner.
Want an avatar? Get a gravatar! • You can link to this comment
(…) because online you just load what you want to load, and if the WordPress core is organized in a decent manner, that means that the extra stuff won’t be called for unless needed.
This is even more so offline (as in desktop apps).
What most people perceive as “bloat” in most applications is mostly static resource files (icons, fonts, pictures, themes, language packs, etc). These can easily take 10 times or more disk space than the app itself.
As for “feature bloat”, sure we may only use 10% of all features —as it is often repeated—, but that consists of a common core of, say, 8% and a 2% that is fundamentally different for each user and use case).
Just try to remove even an obscure feature from an app and see what happens (that is, a deluge of complains from people who want it back.
Want an avatar? Get a gravatar! • You can link to this comment
My experience is that you can avoid this problem with “section rewrites”.
Rewriting a big application takes time, so when you thinking of creating an application, make it easy to go in and rewrite sections of it when needed..
Our system is allways updated on a small scale level, our users dont acctually see/feel theese changes but it keeps the system up-to-date both on internal code and other frameworks (like jquery etc)