Skip to content
 

What is “better”?

NEVER, EVER ask computer people whether a software, hardware, program, platform, tool, etc. "is good" or "is better" than another. Not to mention "which is the best", which will really annoy the person you are asking.

People sometimes seem to think that a unique and objective answer exists to these question, which is quite far from the reality. In fact, the only "correct" answer you can get to such questions is "it depends". Yes, I know that's probably not the answer you want, so please read on to find out how to get better answers.

The single most important thing to keep in mind is that the words "good", "better" or "best" MUST ALWAYS BE DEFINED IN RELATION TO WHAT YOU WANT TO ACCOMPLISH. You should consider what your goal is (for example, what you need that hardware or software for, which features it should have, and so on), and which constraints you have (for example, price, size etc.). Then, based on that, "good" may be defined as meeting your requirements while respecting your constraints.
"Good" and "better" are quite generic words that mean different things to different people. In no particular order, "good" when referring to computer things can mean:

  • fast
  • big and powerful (desktop hardware)
  • light and small (laptop hardware)
  • with a fancy GUI
  • with no GUI
  • cheap
  • expensive
  • needs few resources (CPU, memory, disk space)
  • efficient
  • well documented
  • with a liberal license
  • open source
  • proprietary
  • bloated and does many things
  • lightweight and does only one or few thing
  • customizable
  • familiar
  • cool
  • easy to use
  • easy to maintain
  • quick and dirty
  • available on many platforms
  • available on your platform
  • extendable
  • interoperable
  • compliant (to some specification, or to some buzzword)
  • understandable
  • works with your hardware
  • supported by most systems
  • supported by your system

and who knows how many others.

Please note that, despite their number, some of the qualities listed above are still quite generic and in many cases would need further clarification if occurring in a conversation, even (or especially) between technical people.
So you should always define your situation and the context in which you are moving. Silly example: a medium or low-end computer may be fine for people who use it only to run word processing software, but would be painfully slow and next to useless for people who use it for resource-intensive applications like graphics or games.
Another example: is Perl better than awk? Sure, your friend told you that Perl is better, but maybe you need one week to learn it and then solve your problem in 5 minutes, while you're already familiar with awk and can write the code to solve your problem now, in 30 minutes. Or you're working on an embedded system, and Perl is not available there. So which is better then?
Do you need another example? Here you go. Is Gnome better than Kde? Some people say that Gnome's interface is too simple and limited, while other people say that Kde's interface is confusing because of the high number of customizations and options it offers. Again, which is better?

Hopefully, you're starting to realize that going to your techie friend and giving him a leaflet with some computer advertisement asking him "is this computer good?" is not going to make him happy. In the same way, entering an IRC channel or writing to a mailing list asking "is X good?" or "is Y better than Z?" is going to get you indifference (if you're lucky), or downright rude answers from technical people who are tired of always hearing the same questions. If you're a troll, that might actually be what you're looking for, since it's quite easy to start flamewars by asking carefully crafted questions of that kind. But let's assume that is not the case here.

So, at the very least, make sure that when you say "good" you always specify what you mean by "good" in your specific situation. Unfortunately, many people, when asked, simply don't know: "Ah well, I mean...you know...good." Nevertheless, you should really do an effort and try to find out: if you are not able to define "good" for your specific situation, how do you expect other people to know?

So, how to find out? In many cases, it's enough to stop and think about your situation, taking into consideration your goals and your constraints. Then often you'll find that you question will not be "is X good?" anymore, but instead it will become something like "is X faster than Y on platform Z?", or "is X easy to use for an intermediate user?", or "is X customizable?", or "is X available for system Y, or should I use Z?". These are the questions that are likely to get good answers by technical people, because now you're clearly defining what you're talking about, instead of being generic and let them guess.

If you're still clueless, at least say so and be polite when asking your question, and openly explain that you need help to find out what's "good" or "better" for you in your specific case. Many times, with this approach you will be asked questions from other people, answering which would make it possible for them to help you better and point you in the right direction.