Forgot your password?
typodupeerror
GUI Graphics Intel Programming

Intel Dev: GTK's Biggest Problem, and What Qt Does Better 282

Posted by timothy
from the choosing-sides dept.
Freshly Exhumed writes "Phoronix has an article about how Dirk Hohndel of Intel's Open-Source Technology Center has stirred the hornet's nest with a talk at Australia's Linux.Conf.Au (MP4 file) about what he views as the biggest problem with the GTK: he finds dealing with upstream GTK/GNOME developers to be tough, with frequent abuse and flame-wars, with accusations from the developers that "you're doing it wrong." Conversely, he found the Qt development community to be quite the opposite: willing to engage and help, with plenty of application developer documentation and fewer communication problems than with their GTK counterparts."
This discussion has been archived. No new comments can be posted.

Intel Dev: GTK's Biggest Problem, and What Qt Does Better

Comments Filter:
  • Re:GTK is trash (Score:4, Informative)

    by Anonymous Coward on Thursday January 16, 2014 @09:45AM (#45975727)

    Many years ago it was the only FSF-approved cross platform toolkit, so it gained a fair amount of momentum because of that. Qt has since moved to a more favorable license but a lot of people have yet to migrate.

  • Re:GTK is trash (Score:0, Informative)

    by Anonymous Coward on Thursday January 16, 2014 @09:53AM (#45975783)

    That was because the FSF was spreading FUD about Trolltech. Trolltech was free software friendly and was never going to make Qt non-free.

  • GTK+ is a C library (Score:5, Informative)

    by i ate my neighbour (1756816) on Thursday January 16, 2014 @09:53AM (#45975793)

    The only reason to use it now is if for some reason you want to avoid C++ and develop in pure C.

  • Re:It's true! (Score:3, Informative)

    by Selur (2745445) on Thursday January 16, 2014 @09:59AM (#45975849)

    no not retards, simply 'old'-style linux users,...
    Simply folks who think they lend a helping hand when they send you a friendly "RTFM" or multiple links instead of simply helping out even is they could help out and solve the problem in a few sentences. They might think that unless you fully understand every detail they didn't help properly and sure, some times you can only explain a problem roughly and tell folks to read the man-page / manual / wiki for more details, simply because:
    a. the problem can't be explained/solved in a simple matter due to it's complexity
    or
    b. you can't explained/solved the problem in a simple matter, but instead of posting the infos and noting that you just posted the infos as a general help and can't help more you ended up posting just the infos and look like an ass to a newcomer
    -> don't think it's only GDK or linux folks with this bad habit (some audio/video/apple forums/channels/mailing-lists/developers,... are not a bit better), but the qt community is made up of more of a variety of characters than the GDK community and so it often delivers a more friendly vibe.

  • Re:GTK is trash (Score:2, Informative)

    by Anonymous Coward on Thursday January 16, 2014 @10:10AM (#45975967)

    Years? Less than a year and a half after the FUD started, version 2.0 released in June if 1999 was under the Q Public license which was a "free software license" just not GPL compatible. And by version 2.2 of the X11 version just a few months later it was GPLv2. So in less than 2 years any and all issues were more than solved. The only reason GTK stuck around wad ego and NIH.

  • Re:GTK is trash (Score:3, Informative)

    by Desler (1608317) on Thursday January 16, 2014 @10:12AM (#45975989)

    And yet Qt has language wrappers for 16 different languages. Doesn't seem to be all that hard.

  • by Greyfox (87712) on Thursday January 16, 2014 @10:18AM (#45976041) Homepage Journal
    I've found with C++11 and Boost that I prefer to develop in C++ than Java. Or pretty much anything else for that matter. Design your code reasonably well and it can be solid, and fast. I've left my applications running constantly for months on end and never seen a resource leak, and the compiled binaries are tiny. I just got done stamping the last of the ruby code out of the code base I have to maintain and my new code runs significantly faster, is so much more maintainable that the previous developers of the code really ought to be ashamed of themselves and takes under a minute to deploy. In about the time it takes gem to warm up, I've deployed my files, verified md5sums on 4 different systems and left to get a donut. Mmmm..... Donut.....

    I don't care for GTK or QT. I kind of wish the boost guys would write a widget toolkit so I don't have to do that myself, when I finally get to that item on my to-do list (It's sitting down around 4 or 5 on the list right now, so it'll be a while.)

  • Native Widgets (Score:5, Informative)

    by robmv (855035) on Thursday January 16, 2014 @10:23AM (#45976109)

    Can we stop spreading false information about QT?

    the native widgets for OS X / Linux / Windows

    QT doesn't have native widgets for any platform, QT draw the widgets with their own code, it only skins them with the platform APIs if they are available, Quoting myself [slashdot.org]:

    Native controls means more than to have the same look, if that is the way to measure "nativeness", then Java Swing UIs (Windows/GTK L&F) are native because they call platform theme APIs.

    When a toolkit draw controls by itself, the applications normally lose a lot of UI functionality, for example, if Android/iPhone controls add proper default assistive technology metadata to their controls, the toolkit (QT in this example) need to do the same for each control they draw, because the OS don't see buttons as buttons, It see them as a custom control. If the platform control change behaviour in a new OS release, the QT control will not see it, for example when Windows added default context menus to the text fields, self drawed controls don't expose that behaviour until applications are updated with a new version

  • Re:GTK is trash (Score:5, Informative)

    by tibit (1762298) on Thursday January 16, 2014 @10:38AM (#45976253)

    Do you even know what "existing toolkits" looked like at the time? They were solid crap. I'm no fan of GTK, but man, reuse of platform-provided functionality in a multi-platform toolkit is usually something you do at the beginning and then quickly backpedal on. There is a very good technical reason why Qt comes with its own raster rendering code, its own event loop, its own containers and atomics, and a host of other things: the platform stuff, if present, is broken in its own way on each platform Qt runs on. Or, if it's not broken, the standards the platform libraries follow simply leave too much to undefined- or implementation-defined behavior to, you know, actually use in practice. For C++ standard library that may be a bit of a less of a problem with modern compilers, but remember that even Qt 4 has to compile on some very broken compilers and very quirky platforms.

  • Re:Native Widgets (Score:4, Informative)

    by satuon (1822492) on Thursday January 16, 2014 @10:48AM (#45976329)

    In reality, I've never noticed practical differences between Qt and a native application on Windows, or on Gnome Linux. On Android currently it doesn't look native at all, but that's because it's not implemented yet, they plan on doing it later.

  • by Gravis Zero (934156) on Thursday January 16, 2014 @10:57AM (#45976435)

    it has its own object model, networking stack, container library, threading library, graphics primitive library (i.e. not Cairo).

    the toolkit is split into modules that can be used completely independently of each other. If you only want the GUI stuff, you can use just the GUI module.

    This object model also leaks into its language bindings if you don't want to write your software in C++.

    binding are completely third party software to Qt. you might as well complain about gtkmm while you're at it.

    It's the same problem that Java and C# also suffer from: they're not cross-platform, nothing is. What they actually are is their own platform built alongside a perfectly good already-existing one, and you can see the seams. There's more to each platform's UI than what bitmap you skin buttons and checkboxes with.

    obviously you have not used Qt in the last five years.

    where is the "-1 Ignorant" mod?

  • by tibit (1762298) on Thursday January 16, 2014 @11:00AM (#45976463)

    There is no way other than having a meta-platform that can abstract things away from the physical platform it runs on. A platform is not merely the UI. If you really want to write cross-platform code that has native-API-using GUIs, you'll still find yourself having to use a platform abstraction for all the non-GUI stuff like events, threads, containers, strings/internationalization, etc. Even if this abstraction is provided by the standard C++ library, it's still an abstraction, and you can still choose who provides it - compiler vendors are just one in a crowd here.

    There is a very good reason that Qt has its own object model etc. It's because all those things, done natively, are full of inconsistencies, bugs you have to work around, and other shortcomings that have you, the brave cross-platform coder, having to re-do things again and again.

    No, using Qt core and networking for non-GUI platform abstraction is no different from using Boost. Just that with Qt you have the option of using the gui stuff, and platform-specific extras, and qt quick, and a whole bunch of other goodies that you get nowhere else.

    There is nothing wrong, of course, with doing the core of your application using Qt's core and networking modules, and doing the UI natively. Often, though, you'll find that the native way will not give you as many advantages as you thought you had.

    Never mind that even some "native" ways of doing things do it exactly the way Qt does it. For example, WPF on .net is not using native legacy winapi windows controls, since they render everything using GPU acceleration and conceptually are much closer to Qt Quick 2 controls. So even your own "stay native" argument flies in the face of what the "native" platform vendors are themselves doing!!

  • by BravoZuluM (232200) on Thursday January 16, 2014 @11:01AM (#45976485)

    How is this insightful? GTK guys modding this up? FUD. Qt is not written in some weird dialect. Where'd you pull that factoid from? I compile QT all over the place, Windows, Mac, LInux and embedded Linux using the VS C++ compile or gcc. On each of those platforms, it works VERY well. It's cross platform; more so than any other framework/language I've worked with. Qt apps look like Windows apps on Windows, Mac apps on Mac, Linux apps on Linux (if there really is such a thing)

  • Re:Native Widgets (Score:4, Informative)

    by tibit (1762298) on Thursday January 16, 2014 @11:04AM (#45976513)

    You do know that Qt has had accessibility support for quite a while now, in both Qt 4 and Qt 5? You do realize that WPF itself is not using the native winapi controls, and is peddled as the "new native way" of doing controls on Windows? You do realize that Qt does way more beyond mere native-looking-skinning of controls? It does actually re-implement platform-specific behaviors on a lot of controls, often in ways that are much simpler to code for than whatever native legacy boondoogle of an API someone at MS or Apple has conceived?

    There is something to be said for having uniform principles for the design of an application framework, and Qt is reasonably good in that department. My experience is that the non-nativeness of Qt-provided controls is something that is hard to notice if it can be noticed at all, if the application developer has done their homework.

  • Re:GTK is trash (Score:5, Informative)

    by cheesybagel (670288) on Thursday January 16, 2014 @11:10AM (#45976599)

    Qt is LGPL now. It used to have the Q Public License, then GPL, now LGPL. They switched to GPL after they saw MySQL managed to retain profit with a GPL license and they switched to LGPL after the Nokia aquisition AFAIK.

  • Re:It's true! (Score:5, Informative)

    by Grishnakh (216268) on Thursday January 16, 2014 @11:51AM (#45977045)

    no not retards, simply 'old'-style linux users,...

    Qt was initially released in May 1995. It's not exactly a product of young people, and is almost as old as the Linux kernel itself. GTK was initially released in April 1998, almost 3 years later. The GTK devs are the new kids on the block.

  • Re:QT Devs (Score:4, Informative)

    by smash (1351) on Thursday January 16, 2014 @11:57AM (#45977153) Homepage Journal
    More diplomatically put: Qt was originally a for money project aimed at cross-platform application development. GTK is a toolkit that started out being branched off from one single application and is now developed by a bunch of people for Gnome, with little focus on actual application development, or any other platform other than Linux. Even other Unix platforms get shafted by Gnome.
  • Re:GTK is trash (Score:4, Informative)

    by jbolden (176878) on Thursday January 16, 2014 @12:05PM (#45977245) Homepage

    Not being GPL compatible was a problem since KDE was GPL. Debian legal was where the "FUD started" and because they had serious questions about whether any 3rd party deployment wasn't a copyright violation under the mixture of licenses. I think RMS made this much more hostile and heated than it needed to be, but let's not pretend there wasn't a serious underlying issue.

  • Re:GTK is trash (Score:5, Informative)

    by s1d3track3D (1504503) on Thursday January 16, 2014 @12:06PM (#45977257)

    instead of reusing an existing toolkit

    GIMP version 0.54 (January 1996) "It had a dependency on Motif for its GUI toolkit, which made efficient distribution to a lot of users impossible."

    A New Toolkit - The 0.60 Series:
    Peter got really fed up with Motif. So he decided to write his own. He called them gtk and gdk, for the Gimp Tool Kit, and the Gimp Drawing Kit. Peter tells us now that they never intended for it to become a general purpose toolkit - they just wanted something to use with GIMP, and it "seemed like a good idea at the time". GIMP History [gimp.org]

  • Re:Qt and C++ (Score:4, Informative)

    by t_hunger (449259) on Thursday January 16, 2014 @12:16PM (#45977373)

    Sorry, but that is non-sense. C++ support has always been and will always be a focus of Qt development.

    During Nokia times the QWidgets were considered to be "done" in the sense that there were no new exciting features expected to happen. But then widgets are pretty well used for years, pretty complete (all the standard stuff is there and you will need to write the rest anyway) and the APIs were hammered down ages ago. Bugs were going to be fixed as they are reported, so the code was and is fully supported. I think you are referring to this... it was awfully badly communicated back then and did raise quite a ruckus.

    That was the state when Nokia was still at the helm: Digia is putting way more resources into "classic desktop parts" than Nokia did and with that widgets do see more love again.

  • Re: It's true! (Score:2, Informative)

    by Anonymous Coward on Thursday January 16, 2014 @05:12PM (#45980243)

    Put it another way. When Linus Torvalds and 3 of the core GNOME maintainers *CANNOT* figure out how to do something, and Linus asks for help from the GTK community and got a "meh", your community sucks.

    If indeed 3 core gnome maintainers can not figure out how to get a application with a pretty simple UI working, then it is not just your community that sucks! Either your product or your core maintainers suck, too.

Optimization hinders evolution.

Working...