views:

467

answers:

18

I myself have accused applications of being bloated, but is this really the problem with an application? Years ago I accused Microsoft of producing "bloated code" without myself actually seeing such code. Juvenile, I know.

Now I feel that calling something "bloated" without specific constructive criticism is reduced to childish name calling. It's like saying, "You're application is stupid", yet providing no insight into how it can be made not-stupid.

Even on Stack Overflow I occasionally see criticism like, "this application is so bloated, and I hate it" blah, blah...

Is the label of "bloated" valid, constructive, or helpful in the least bit? I think that "bloat" is really an imaginary issue, especially if one is applying the criticism to the application and not the source code.

I understand that the code itself can be bloated, and written in a way that can be verbose, and even perform more slowly. But can an application be characterized as bloated? Whatever happened to saying that the application is slow, or has too many features, or is confusing... Specific criticisms seem to be more helpful and useful in a discussion.

What does it mean to be bloated, or why do people insist on using this vague adjective to describe an application?

A: 

It's a description of the way the 'guts' of developer required to maintain the mess feel every time a new issue is logged...

Gary.Ray
+4  A: 

Violating the KISS and DRY principles

Chris Ballance
I think it's more so violating YAGNI than DRY. KISS definitely applies though.
Daniel Straight
+6  A: 

I think the common understanding of a bloated application is one that includes many features that "I" don't want or use, which causes the application to use more of my memory and disk space than necessary.

Under that definition, the code itself is irrelevant. However, if you were talking about bloated code, the definition would likely be modified to "using more code than necessary to get the job done".

In either case, you would need to at least allude to the feature or code that is unneeded if you desired to have a productive discussion.

John Fisher
Excellent distinction between app functionality and code.
micahtan
+3  A: 

IMHO, a bloated application generally refers to one that has strayed far outside the bounds of the original goal. For example, if you have an email program that suddenly starts wanting to handle things like playing music and video, it is probably "bloated". People get upset over things like this usually because it slows down the usage for the people who just wanted email and generally complicates the interface.

AdamC
See: iTunes movie store.
Karl
Bloated is when an application that starts out doing one thing ends up being the software equivalent of a Swiss Army knife. Why do software companies feel that they have to put everything in one program? If they want software that does a lot of unrelated (or barely related) things, I'd prefer a suite of programs, where I can choose what I want installed and what I don't want installed.
RobH
+1  A: 

"Bloated" for an application usually means "has more features than I personally will use." That's why applications like Microsoft Word get slapped with it all the time. For someone who would never use their word processor to generate a web page, the ability to do so is "bloat." For someone who only uses their word processor to generate web pages, the ability to do mail merge may be "bloat."

There's an argument to be made for smaller, more modular applications. But, for the most part, "bloated" = "feature rich."

Jekke
+4  A: 

To me 'bloated' = 'feature creep'. i.e. When the core functionality is lost behind all the added gimmicks, etc.

Fraser
+1  A: 

I start thinking that an application is bloated when it starts being hard to find your way through the menu system or performance begins to degrade because of the cool new features.

Another way to say it is that when i start thinking that "this should be part of an addin/ plugin", the app is starting to bloat.

wcm
A: 

I think it's more like being too big and slow for the functionality it provides... few people will complain if there are functionality that they don't use unless it starts to creep.

Remember OpenOffice.org 1.x? xD

fortran
A: 

An application that is bloated is one that seems to consume more resources than you would intuitively assume.

For instance, World of Warcraft takes up around 10GB on a clean install (if you get all the way to Wrath of the Lich King). Considering what WoW is and what it does, some may consider it to have a bloated install. Especially since patches wind up being duplicated two or three times in the install folder.

Other people see Firefox as being bloated because it has developed a larger memory footprint than people think is necessary.

Some people see applications as bloated when they provide features that seem useless or redundant. See Saving as HTML in Word.

toast
+1  A: 

To me a bloated application is full of to manny features not really belonging (as I see it) to the application, that can not be turned off(or at least hidden), and would be better off as a plugin/addon.

And/or that the application in general is made/coded in an inefficient way, wasting resources or whatnot.

Joakim Elofsson
A: 

A bloated application is a program with unnecessary features for most users and most problems in hand. It openly defies the YAGNI principle.

The application can have problems both in its code (making it longer and slower to run) and its interface (making it difficult to navigate its features and commands). This is the main reason "bloated" can be ambiguous as an adjective to characterize applications.

Nevertheless, the connotation is always negative and most programmers/users get the picture.

Kensai
+3  A: 

Jamie Zawinski of Netscape fame had this to say, which is much more articulate than anything I could have come up with. (full text)

Convenient though it would be if it were true, Mozilla is not big because it's full of useless crap. Mozilla is big because your needs are big. Your needs are big because the Internet is big. There are lots of small, lean web browsers out there that, incidentally, do almost nothing useful. If that's what you need, you've got options...

Bloat is a pejorative term, used frequently in a non-objective manner to describe a reaction to the software. The reason I say non-objective is that the usefulness of an application is relative to the user of the software.

However, not all is relative, and bloat is definitely not imaginary. If the majority of the users you plan to target find your software overwhelmingly complex, the "bloated" tag would be appropriate.

IMHO, there are two things to keep in mind: first, developers != users. What we consider to be bloat is almost always irrelevant (unless it's an IDE or other programming tool). Secondly what some consider bloat, others consider necessary.

micahtan
I actually *don't* find FireFox bloated. Yes, it can take up a lot of RAM, but it is the single most powerful web development tool I have seen. However, that said, for a normal user, Chrome or Opera is generally sufficient.
Christopher W. Allen-Poole
A: 

nero burning rom was made for burning cds. It was around 10 mb. Now it is over 200 mb with "features" like managing your dvd collections and watching movies.

HP drivers for my printer come with a 150mb installer which adds software to edit photos, manage photo albums and such.

It gets bloated when you want something simple, but can't get around the uber complex, not so useful thing. For photo editing, I'll use photoshop, for dvd collection managing i'll use errr... notepad!

Eric
+1  A: 

I'm actually working to de-bloat a project right now. It isn't that any of the coding was wrong, or even redundant. It was just that the people who were deciding on all of the features were not present for the architecting. This means that what the programmers were originally going to do with a method that accepted one parameter, they had to modify to allow for 3, 4, and then 5 arguments.

Generally, bloated, to me, can mean several things:

  1. Designed with an inconsistent philosophy, poorly designed, or not designed at all. (Most bloating can be summarized with those three.
  2. Overly complicated.
  3. Any slower than it absolutely has to be.
  4. Excessive cost of non-essential features
  5. Poor display of features (unorganized UI)
Christopher W. Allen-Poole
+2  A: 

A fairly specific definition might be

Bloat: a piece of software that performs an action that is not in some way valuable to a user.

The often bandied about feature is the web-page generating ability of word. There are perhaps a few people around that want this feature. But in the general case, either a user wants to use word, but has no use for the generation of web-pages, Or else they need to generate web-pages, but Word's ability for it is not sufficient for any reasonable use, because it doesn't integrate well with some sort of template engine or generate CSS friendly output.

The feature therefore serves mainly as a bullet-point on the box, rather than helping some user do what they want or need more easily.

TokenMacGuy
+1  A: 

I don't think there is one definition - there are at least 2 well understood definitions of software bloat which are both in active and often concurrent use. Determining which is being used is a matter of context.

I would define them as:

"Microsoft Word Bloat"
In which a piece of software exposes a greater quantity of features then any individual user could ever be expected to use.

On the lesser side is software that requires that functionality (In Word everyone only uses 20% of the features, but it's a different 20%). Software can often try to counter the effects of bloat by only selectively exposing functionality - older versions of Word used the customization toolbar, which allowed users to place their 20% in an easy to use place, while Microsoft has more recently pursued the Ribbon concept to help manage large amounts of functionality.

On the bad side is software that simply dumps on extra features because it seemed neat for a few seconds, at the expense of the overall usability of the system. A frequent symptom of this is the mega-dialog, filled with miscellaneous options and configurations (making Word both a lesser and worse example). This can also expose itself as an application with many novelty features, but noticibly lacking key or obvious features (like say, the XO-1 and its Acoustic Tape Measure)

"Adobe Reader Bloat"
In which a piece of software consumes a large quantity of quantitative computing resources (memory, CPU time, harddisk space) to accomplish a task that could be done in a functionally identical way by less resource intensive application.

On the lesser scale is an application that is simply not lean - the programmers have chosen reliability and maintainability, only optmizing when there is a clear gain (for example reducing harddrive footprint from 10.4MB to 10.3MB at a great cost in code complexity would not be a positive trade off).

On the bad side is software that is simply poorly written - the uber example being the typical in house VB application that requires 10 minutes to complete a database operation because it is drawing each record at a time (using a fresh connection each time!) instead of issuing a single UPDATE statement.

David
+1  A: 

I personally don't think the definition of bloat is "too many features I don't need", I think it's: "too many features that I don't need, but that do clutter my UI, decrease the application's responsiveness and increase the memory/disk consumption."

I think that "feature rich" is not necessarily synonymous with "bloated".

JulianR
+1  A: 

Bloat by itself is not a useful criticism. To be useful, you would have to state what causes you to say it is bloated.

Common perceptions of bloat by users:

When new features are added that less than 1 percent of users will ever use or want to use just so the company can sell a new version.

When users have to buy a new computer to run your new version of the software to do the same things they doing right now with the old version.

They can't figure out how to do something common and simple (See Office 2007!) because the interface has gotten too complicated to figure out.

When the user has to turn off too much automated junk, in order to be able to do what she really wanted to do (no I don't want it to default to selecting the whole word when I only want to select two characters).

When things are stupidly cutesy (think that dumb paperclip thing Microsoft used to have) When the user could take a nap and wake refreshed before it finshes what he asked it to do.

Common perceptions of bloat by programmers:

When they hate being asked to work on that application because it is so complicated and such a mess.

When they are adding features that they know the users won't use but for reasons surpassing understanding they have asked for anyway.

When it takes longer to manage the project managment software for the project than it took to do the whole project!

In a simliar vein, have you all noticed that with each subsequent version of a piece of software, Help becomes less and less helpful? Talk about bloat, you can find all sorts of obscure things but when you search for something that should be a basic feature of the program, it is in the 357th entry it shows you rather than the first.

HLGEM