We usually consider choice as being a good thing, whether it be around choice of restaurant, chocolate bar, clothing, or technology. Choice makes us feel empowered, and variety adds richness to life.
Not surprisingly, embedded in the design philosophy of Eclipse is the notion that “choice is good”. Clearly then, if some choice is good, more choice is better. And darn if Eclipse doesn’t give you a LOT of choice! The preferences alone should make any humble programmer feel empowered to tweak the IDE into exactly the shape and behaviour you want.
However, it turns out that in practice, while we believe we want choice, there is good research suggesting that more choice makes us less happy. For an excellent book on the subject, I highly recommend The Paradox of Choice by Barry Schwartz.
I’ve been pondering this a lot lately with respect to user interface design in general, and Eclipse specifically. What we often forget (and Schwartz does a great job of explaining) is that there is a cost to choice. One must understand the choices themselves, one must be informed, otherwise we risk choosing wrong. Not only does that comparison itself imply a cost (learning, weighing), but bad choices cost us more than good ones benefit us. That is, we feel the negative impact of say losing $50 to a greater extent than we feel the positive emotional impact of winning the same amount. Therefore, paradoxially, although we seek choice, we actually prefer not to choose. There’s much more in the Scwartz book and I encourage you to read it.
Thus a common misbelief in UI design is that giving the user more choice will increase the usability of the product. It’s almost always not true. What choice does is increase the utility of the product, because you can use it for more things, or in more ways. But it reduces the usability, because the choice brings with it a cost that the user must bear. (Note that I’m ignoring accessibility related preferences since these obviously increase usability for those who need them).
A favorite example is the following dialog that you get post P2 update.

Now to be clear, I’m not picking on P2, this happens to be a good example, and there are many more throughout Eclipse. Plus, I must confess that I had a hand in this dialog.
The dialog is there to support the set of users who know under which conditions the workspace does not need to be restarted. Personally, I refer to it as the “Feeling lucky, punk?” dialog. Susan and I have had many discussions about this dialog and in keeping with the theme of “just enough rope to hang yourself with” decided to leave it in Eclipse for the power users. For many though, it leaves you scratching your head, or even a little afraid. These “some add-ons”, how do I know which they are? Is there a list? If yes, why doesn’t Eclipse have this list so it doesn’t have to ask me? If such a list can’t exist, then what chance do I have? What happens if I say “No” and don’t restart, will bad things occur? If so, why do you let me do it? If not, then why aren’t two choices sufficient? What are the warning signs that I should’ve said yes, and then what should I do to fix it? It’s asking me if I want to restart, but it’s giving a binary choice (yes/no), plus another choice, so will “Apply Changes” restart or not? And if not, does it mean that “No” didn’t apply the changes? I’m afraid! Mommy!!
Thus we’ve increased utility (advanced users can work more efficiently), but we’ve decreased usability (all users are forced to make a decision with no guidance, where the consequence of picking the non-default is unknowable at that moment).
Next time you go to add a preference or provide a choice dialog, it’s worth considering the cost of the choice and it’s impact on usability. Ask yourself, “Have I really benefitted the majority of my users in providing this? Or have I benefitted a few at what cost to the many?”.