Consistency Isn’t Skin Deep

Late last week we ran a story on how the Google Chrome team had decided to use Gtk+ as the graphical toolkit for the Linux version of the Chrome web browser. It was a story that caused some serious debate on a variety of aspects, but in this short editorial, I want to focus on one aspect that came forward: the longing for consistency. Several people in the thread stated they were happy with Google’s choice for purely selfish reasons: they use only Gtk+ applications on their GNOME desktops. Several people chimed in to say that Qt integrates nicely in a Gtk+ environment. While that may be true from a graphical point of view, that really isn’t my problem with mixing toolkits. The issue goes a lot deeper than that.

Qt does a pretty good job of making sure its applications do not stand out graphically – or better put, it makes sure Gtk+ applications do not stand out in a Qt environment. It’s trivial to make sure Gtk+ and Qt applications mingle nicely without offending one another too much. The problem, however, is that beauty is only skin deep.

When I state that I do not like to mingle toolkits in Linux it has less to do with the graphical side of the coin – the behavioural part is far more important. Consistency in a graphical user interface isn’t merely a matter of using the same theme; it has much more to do with behaviour and layout.

And this is where the problems occur. In general, GNOME developers design the user interfaces of their Gtk+ applications different than how KDE developers design their Qt interfaces. KDE developers value choice, configurability, tweakability, whereas GNOME developers tend to work towards providing the necessities, and leaving out options that they deem confusing or pointless. This is of course a gross oversimplificiation, but the point remains. I’m not trying to say either approach is better – I’m just stating that they are different.

This difference in approach leads to differences in user interfaces. I can tell a Qt application apart from a Gtk+ one from three miles away – even if they replicated each other’s looks perfectly. They arrange their widgets differently, put common options in different places, use different widgets for similar options, and so on, and so forth. The end result is that I have to think about where to find stuff, and I don’t like that.

When I’m using a KDE environment, Gtk+ applications annoy me because they do not behave like the Qt applications I’m currently using. When I’m in a GNOME environment, it’s vice versa; it are the Qt applications that annoy me. This has nothing to do with placing blame or about what toolkit is better; when using environment A, I have certain expectations about where to find stuff – add in applications from environment B, and these expectations are of no use anymore. I find that frustrating.

I can already see several people firing up the comment box, ready to start off about how the situation on Windows isn’t much better – and they’d be right. However, that’s not a valid argument, and it’s totally irrelevant to this discussion. I find this problem just as annoying on Windows as I do on Linux, but at least Linux gives me the ability to stick to one toolkit and have a consistent desktop – whether that be Qt or Gtk+. Windows being a mess in this regard does not negate my problem.

Some people see the competing toolkits as a problem, but I really don’t. People who like consistency and the KDE approach, can stick to a strict Qt desktop, and people who like consistency and the GNOME approach can stick to a strict Gtk+ desktop. People who just don’t give a rat’s bum can use whatever they want. Everybody is happy!

Consistency is a concept that goes deeper than mere looks.

93 Comments

  1. 2009-02-16 2:22 pm
    • 2009-02-16 3:08 pm
  2. 2009-02-16 2:30 pm
    • 2009-02-16 2:43 pm
      • 2009-02-16 3:11 pm
        • 2009-02-16 6:01 pm
          • 2009-02-16 7:32 pm
          • 2009-02-16 10:01 pm
  3. 2009-02-16 2:51 pm
    • 2009-02-16 2:55 pm
      • 2009-02-16 9:17 pm
        • 2009-02-17 12:48 am
          • 2009-02-17 1:12 am
          • 2009-02-18 8:24 am
          • 2009-02-17 1:57 am
          • 2009-02-17 3:40 am
          • 2009-02-17 4:30 am
          • 2009-02-17 9:21 am
          • 2009-02-18 4:24 am
          • 2009-02-17 10:20 am
          • 2009-02-17 3:46 pm
          • 2009-02-17 10:40 pm
          • 2009-02-19 1:10 am
      • 2009-02-17 7:03 am
        • 2009-02-17 12:38 pm
      • 2009-02-17 11:41 pm
    • 2009-02-16 3:09 pm
  4. 2009-02-16 2:54 pm
    • 2009-02-16 2:58 pm
      • 2009-02-16 3:22 pm
      • 2009-02-16 3:29 pm
        • 2009-02-16 3:52 pm
      • 2009-02-16 3:29 pm
        • 2009-02-16 3:33 pm
        • 2009-02-16 3:40 pm
          • 2009-02-16 6:07 pm
    • 2009-02-16 10:08 pm
  5. 2009-02-16 3:16 pm
    • 2009-02-16 3:59 pm
      • 2009-02-17 12:49 pm
    • 2009-02-16 8:05 pm
      • 2009-02-16 8:35 pm
        • 2009-02-16 9:42 pm
          • 2009-02-16 10:42 pm
          • 2009-02-17 6:10 am
          • 2009-02-17 8:21 am
          • 2009-02-17 1:11 pm
      • 2009-02-17 12:44 pm
    • 2009-02-18 4:15 am
  6. 2009-02-16 3:25 pm
    • 2009-02-16 3:28 pm
      • 2009-02-16 3:46 pm
        • 2009-02-16 6:32 pm
          • 2009-02-16 7:55 pm
          • 2009-02-18 4:12 am
          • 2009-02-16 8:03 pm
          • 2009-02-16 8:14 pm
          • 2009-02-16 8:36 pm
          • 2009-02-17 2:27 pm
          • 2009-02-17 4:12 pm
          • 2009-02-17 5:25 pm
          • 2009-02-17 6:38 pm
          • 2009-02-17 6:52 pm
          • 2009-02-17 7:03 pm
          • 2009-02-17 8:24 pm
          • 2009-02-17 7:12 pm
          • 2009-02-17 7:17 pm
    • 2009-02-16 3:39 pm
      • 2009-02-16 3:54 pm
      • 2009-02-16 4:07 pm
        • 2009-02-16 4:47 pm
          • 2009-02-17 2:32 pm
      • 2009-02-17 4:07 pm
    • 2009-02-16 4:06 pm
  7. 2009-02-16 3:43 pm
  8. 2009-02-16 4:10 pm
  9. 2009-02-16 6:13 pm
  10. 2009-02-16 6:32 pm
    • 2009-02-16 9:04 pm
  11. 2009-02-16 7:09 pm
    • 2009-02-16 7:43 pm
  12. 2009-02-16 7:29 pm
  13. 2009-02-16 7:40 pm
  14. 2009-02-16 11:28 pm
  15. 2009-02-17 12:11 am
    • 2009-02-17 2:04 am
      • 2009-02-17 4:34 am
  16. 2009-02-17 2:50 am
    • 2009-02-17 4:42 am
      • 2009-02-17 6:11 am
    • 2009-02-17 12:48 pm
  17. 2009-02-17 12:29 pm
  18. 2009-02-18 10:36 pm