Google Chrome

So I guess that the upcoming Linux port of Google Chrome will be using the GTK+ toolkit.

Unfortunately the OSNews story I linked to didn’t bother to link to the email that they’re quoting so I only have their writeup of the explanation from Google engineer Ben Goodger to go off of. But it seems to me that Ben is making up explanations…

Update 1: OSNews has updated their story to add the email they’re referencing. Thanks, guys.

Regarding the question of why not Qt from the get-go instead of making essentially three different applications, he replies by more or less saying that using cross-platform toolkits doesn’t really offer anything except the illusion of native software, which makes the application end up “speaking with a foreign accent”. Now, that may be a reasonable issue he’s having. After all, he’s the Google engineer and I’m just the guy writing code in his spare time. But the same argument applies to his choice of GTK+, which is also a cross-platform toolkit. For the Linux/X11 platform both GTK+ and Qt are “native”. And Qt will, if you’re running under GNOME, default to a Clearlooks-alike style. And apparently, with Qt 4.5, it will default to GTK+ itself doing all the drawing. So that doesn’t seem to be a point against Qt, at least in relation to GTK+.

Ben also further claims that choosing Qt would limit the application to the subset of functionality between the 3 platforms chosen instead of allowing Chrome to use platform-specific features. It’s pretty much flatly false though, or else how does Qt Software manage to get their Windows XP style to work? I know that Ben and the rest of the brilliant guys at Google are able to figure out how to use #ifdef, so I figure the real reason is that they wouldn’t have wanted to clutter up their code with those (although even that can be easily minimized with proper design). Although not up to the level of our base X11 implementation, KDE on Windows is working. And that’s an entire desktop environment, one of the largest open code bases in the world, so I guess I don’t understand this argument either.

That was all of the arguments I saw against Qt, and neither was convincing. What seems more convincing to me is that other Google engineers apparently didn’t have the same impression of the problems with Qt, seeing as how Google Earth uses Qt.

I think what the real reason is, is that Ben Goodger likes GTK+ better, or is at least more familiar with it, and made the decision to use it. Which is fine, that’s his choice, and is probably borne out by his experience working with Netscape and working on the Firefox project. I just don’t see why he’s having to try to make up excuses after the fact.

25 thoughts on “Google Chrome

  1. Diego Identicon Diego

    The fact that the choice is driven also by previous experiences is quite clear in the Chromium FAQ:
    “With all of that said, the plan is to use GTK. It’s not due to any dislike of Qt, but just because there’s more experience on the team with GTK and it matches the existing Firefox dependency on Linux.”

  2. frodo_2009 Identicon frodo_2009

    Google Earth is not an original Google project. Google aquired Keyhole Corp. in 2004.

  3. it-s Identicon it-s

    What do you mean “good Qt browser”? If you don’t think Koqueror’s got is all, use Opera. It’s Qt (and will soon support KDE styles natively :D ) and is the best browser out there. Moreover if you compare the two you’ll see that Chrome is only just an Opera wanabe, and a very bad one at it, created with a sole purpose of stealing poeple’s private data ;)

    That’s fine I think. Gnome needs at least one good browser. Their natove one is a nonsense, and FF is slow as a turtle. All the browsers KDE’s got are very much great. Konqueror is fast, and clean. Opera is powerfull and 100% to web standrts, and soon a whole lot of fresh webkit based browsers will join the club.

  4. mpyne Identicon mpyne Post author

    Diego: That explanation does make more sense, yes.

    Faemir: Opera (closed-source) and perhaps Arora might be more to your tastes then.

    frodo: It’s nice that it was acquired but Google Earth still uses Qt in 2009…

  5. Anon Identicon Anon

    I am also disappointed to see that gtk is being used for Chrome and I think the reasons put forward by Goodger are bogus. While other qt browsers have been suggested, none of them have really worked reliably for me (that includes Opera, which is an amazing browser, but just had too many issues with the website I use). I also really had high hopes for the firefox qt port, but that seems to have stalled (if you can correct me on this please let me know). In fact, I think that firefox has more of a future than chrome, but I would have liked a good browser that did not have the tremendously horrid gtk file dialog box (try to explain that damn thing to a new linux user; I have had multiple people give up on “linus” simple because of the gtk file dialog).

  6. illissius Identicon illissius

    “and [Opera] will soon support KDE styles natively :D”

    Where did you hear this? That would be so frickin’ awesome. I’ve been wanting this for something like the past four years.

    And yeah, while Opera uses Qt, I’m not entirely sure what for, or rather, at what level. They use their own widget and painting libraries as far as I know. They use Qt menus and file dialogs, but that’s about all I can think of off the top of my head.

    If I were less phenomenally lazy I might clone Opera using Qt4 – with QtWebkit, there is basically nothing missing.

  7. Socceroos Identicon Socceroos

    I have to say that I’m disappointed that they chose GTK too. As others have said (and the devs themselves), its purely based on the fact that they’re used to GTK – nothing else.

    I was looking forward to having a great browser that was Qt based. And no, Opera is closed source and has many rendering issues with the websites I visit every day (try use D-LINK’s web-based firewall with it).

    It would have been great to have the guys at Google back Qt for this. It would have been a big win for us.

    Unfortunately, not this time. =(

  8. DigDug Identicon DigDug

    Since when does native look and feel mean anything to Chrome anyway? What special platform features is Chrome using on Windows even?

  9. mpyne Identicon mpyne Post author

    Just so I’m clear, I just want to point out that what Ben is referring to at first is that it was decided from the beginning to not use a cross-platform toolkit for Chrome. That’s their choice and although I pointed out why Qt is not susceptible to his arguments (it may be harder to use native code under other cross-platform toolkits) it doesn’t change the fact that they choose how they make their program.

    Once they’ve decided not to go cross platform then the choice is what to use for Linux, Qt or GTK+. Right now they’ve opted for GTK+ because there’s more team experience with GTK+ and it matches the Firefox dependency. Also their choice.

    I just don’t feel that the specific reasons that Ben pointed out for avoiding Qt as a cross-platform toolkit from the start were valid, and that’s what I was referencing since Google sets a lot of precedence in software development.

  10. Anmol Identicon Anmol

    “and [Opera] will soon support KDE styles natively :D”

    It already does. You have to run opera with following command :-

    opera -style oxygen

    Then in Appearance setting dialog box chose Qt native.

  11. Daniel Identicon Daniel

    The post mixes a lot the use of Qt/GTK+ as cross-platform toolkits and as Linux-specific toolkits. Ben reasoned about cross-platform toolkits in general (not really pointing specifically to Qt), and I have to agree with him; every library I’ve tried (mainly Qt, wx and GTK+) just plain sucks at writing true cross-platform GUIs. (Qt, for example, does a decent job at the superficial looks, but fails in the details. Their Mac version lacks several text input shortcuts and services support, and its text rendering doesn’t take advantage of OS X’s more precise kerning, just to name a few issues from mind.)

    So, I agree with them on making specific interfaces for each platform rather than relying on some magical formula. That’s really the way to go when you want to actually please the users and have the resources to do so.

  12. jurgis Identicon jurgis

    well that said i definately wont use chrome. a lot of people are already complaining about firefox being gtk. it’s just soooo slow to use. the problem with other browsers is that their rendering us much slower than firefoxes and chrome imho is the only one which can compete.

  13. Vincenzo Identicon Vincenzo

    We need Chrome? I don’t think. I think that we needs a Webkit plugin for Konqueror. For me Lunascape hybrid engine is a good idea.

  14. blabla Identicon blabla

    Uuh can’t wait to start using konqueror with QtWebKit 4.5 mmmmmm…..weeebkit…*droooool*

  15. Pingback: Richard Spindler’s Weblog » Blog Archive » Google Chrome on Linux

  16. Segedunum Identicon Segedunum

    Thanks for the e-mail. I missed that. It raises more questions than answers, although it really doesn’t matter and Chrome will just repeat the past mistakes of Firefox and Open Office – inferior open source platform ports with craploads of cross-platform ‘glue’ to replace a proper cross-platform toolkit. Given this is a former Netscape guy and he was around when the disaster that was Netscape 6 occurred, we shouldn’t be too surprised. They’ll just stick to what they’re familiar with rather than explaining the issues and learning from past mistakes. Writing specific native interfaces on different platforms for a ‘cross-platform’ application always results in lots of bugs and the application being inferior on certain platforms.

    It’s their choice. I just feel it is a missed opportunity to learn from the past and give us an application on free platforms on an equal footing. Oh well.

  17. mpyne Identicon mpyne Post author

    Segdunum: Well in all fairness what I think happened is that the “cross platform” plan for Chrome at the beginning *was* Wine. I don’t think they even got to the point of evaluating options and instead started developing and improving an a Windows browser project that a Google engineer got working in his 20% time. That’s the only thing that makes sense to me from here, that it was only decided after Chrome was well into development that they’d bring it to Mac and Linux as well. But those are just my thoughts on it.

  18. rjw Identicon rjw

    Bear in mind that Google may not wish to add a dependency on, and lend legitimacy to, a platform that is going to be controlled by one of its main competitors in the smartphone space. I don’t know whether google is this paranoid yet.

  19. dead horse Identicon dead horse

    Gt vr t.

    Y gys prbbly njy pddng ch thrs shldrs nd rct th ld stry f “QT s th bst bl bl”. n th rl wrld th mjrty gr QT s NT th bvs chc s th gnrc TK fr th lnx pltfrm. Wh trst nd ndrs cr tchnlgs t b clsd prjct wth cpyrght ssgnmnts? N n bt th cpyrght hldr.

    Pls g fx yr pstrm prblms bfr dclrng ny mbtns t gt wrld dmntn. wld ht t s y dstryng th frdm mny ppl fght by crtng trly fr TK lk GTK+.


    I learned a new term today — mpyne

Comments are closed.