Gtk to Qt - a strange journey [linux.conf.au 2014]

Konstantin Bläsi5 HN recommenders · 2014–2024
46K views · talk · dated · Uploaded 2014-01-11

Dirk Hohndel explains why the Subsurface dive log project migrated from Gtk to Qt, the obstacles encountered, and advice for other applications frustrated with Gtk. It is a linux.conf.au 2014 talk.

Go-to reference in GTK versus Qt debates, valued for a candid account from experienced developers who tried both toolkits.

Watch on YouTube

17 comments from Hacker News

@hornetblack2014 · in “Brian's Rules for Writing Cross Platform 'C' Code (2008)”

Reminded me of Subsurface maintainer's talk on Qt: [VIDEO] He found it was very good for cross platform work.

@skriticos22014 · in “How Does One Create A Gtk+ Application?”

I just watched this [1] video from Dirk Hohndel describing the migration motives and process from Gtk+ to Qt for subsurface (started by Linus). TLDR: * Qt has a community of people developing applications, has good documentation (precise, good coverage) and people who care * Gtk+ has a bunch of Gnome developers, if you want to develop an application, you're out of luck [1]: [VIDEO]

@Sammi2014 · in “KDE makes Qt”

One of the best discussions on the subject, made by old hackers, but new guys to GUI programming, who tried both: [VIDEO]

Strongly recommendsView on HN
@Sammi2014 · in “KDE makes Qt”

Counter point: Dirk Hohndel explains how the Subsurface team was able to implement a much cleaner and simpler GUI in QT than in GTK: [VIDEO] (I've already posted this link in another comment, but here it is again just for relevance) Maybe people don't make that many complex GUIs in GTK cause it's just too hard?

@MegaDeKay2014 · in “Quantum OS - OS based on Linux which conforms to Material Design guidelines”

Subsurface, a program for divers, was another high-profile switch. High profile because Linus started it. If he and a bunch of other pretty smart kernel hackers can't figure out GTK, that says something. [VIDEO] On a related note, GNU Radio has a foot in both Qt and WxWidgets and intends to focus on Qt going forward.

@tdicola2015 · in “How long since Google said a Google Drive Linux client is coming?”

I think this gets to the core of the problem. The API is out there and open, yet no one (or at least not many people) have decided to try and make a nice GUI client for Linux. Perhaps it's not a problem with Google but more a problem with publishing desktop/GUI software for Linux still being a complete pain in 2015. There's a fantastic talk from Dirk Hohndel last year about how much pain he's gone through creating and publishing a dive logging GUI application for Linux: [VIDEO] If someone like Dirk, who has access to no less than Linus Torvalds himself, has so much trouble creating a modern GUI app on Linux today then how much luck will anyone else have?

RecommendsView on HN
@aksx2016 · in ““C++ is a horrible language” – Linus Torvalds”

Looks like it's that time of the year again. Yes Linus said that and he was probably [in 2007] C++11 and C++14 have come a long way. also since no one has posted this till now [2014] Gtk to Qt a strange journey [VIDEO]

@onli2017 · in “How we made compiler warnings fatal in Firefox”

No one knows how to use GTK correctly, not even the GTK developers. At least that was the situation in 2014 when subsurface moved from GTK to Qt, [VIDEO] .

@simion3142018 · in “RHEL is deprecating KDE”

Making simple apps is simple, probably is much harder to do advanced apps Wireshark changed from GTK to Qt [LINK] Linus Torwald, a C fan and c++ hater , decided to port from GTK to Qt [VIDEO] If you make a simple GUI like for a python script GTK is enough

@znpy2018 · in “RHEL is deprecating KDE”

> [VIDEO] Thank you for posting this, it's nice to see that someone already had most of my feelings.

RecommendsView on HN
@jcelerier2019 · in “It’s time to move on from OOP?”

> There’s no objective and open evidence that OOP is better than plain procedural programming. Really depends on what is your definition of "OOP" here > Both Smalltalk and Erlang make use of OOP the way it was originally intended by its inventor, Alan Kay. ah, the bad definition of OOP then. Hint : most C apis that look like foo* foo_create(void); int foo_get_bananas(foo*); void foo_print(foo*, int, int); void foo_free(foo**); are OOP, not procedural. They just lack the syntax sugar. > Linus Torvalds is widely known for his open criticism of C++ and OOP. yet he went on doing C++ for user-space code : [VIDEO] > Some might disagree with me, but the truth is that modern OOP has never been properly designed. It never came out of a proper research institution as someone who did a phd in a "proper research institution", that's a completely bullshit criterion. > OOP doesn’t have decades of rigorous scientific research to back it up oh come on [LINK]

@eska2019 · in “It’s time to move on from OOP?”

> Really depends on what is your definition of "OOP" here I smell a no-true-scotsman incoming.. >> Both Smalltalk and Erlang make use of OOP the way it was originally intended by its inventor, Alan Kay. > ah, the bad definition of OOP then. Message-based OOP is usually considered to be superior to inheritance by even OOP advocates, and even composition-based OOP by many. I don't see your evidence for "bad definition of OOP". >Hint : most C apis that look like > foo* foo_create(void); > int foo_get_bananas(foo ); > void foo_print(foo , int, int); > void foo_free(foo ); > > are OOP, not procedural. They just lack the syntax sugar. Not every API that uses a struct is OOP. If your foos use inheritance, virtual dispatch etc, then yes it's OOP. But usually it's just something like a struct to store state instead of having globals or multiple parameters even. >> Linus Torvalds is widely known for his open criticism of C++ and OOP. > yet he went on doing C++ for user-space code : [VIDEO] He's a pragmatist first and foremost, and the GUI libraries he uses (Qt) and the programmers that work on GUI code use C++, he said. I doubt he would write his own GUI framework in C++.

@simion3142020 · in “GTK has a new website”

Qt has a company behind so is more professional, better documentation, better cross platform support, less bugs. This video [VIDEO] is about the reasons Subsurface (a diving app started by Linus Torvalds) changed from GTK to Qt. Things might have improved from GTK I can't tell and also for simpler GUIs GTK might be enough.

RecommendsView on HN
@kbumsik2020 · in “Audacious 4.0 released, switches from GTK to Qt 5”

Because Qt has fantastic documentations and intuitive examples. Gtk is notorious for lacking proper documentations and unstable feature changes. Here is a talk when Subsurface decided to go Qt from Gtk: [VIDEO]

@simion3142020 · in “Trinity Desktop Environment R14.0.9 Release Notes”

Look at GNOME, notice the giant paddings, title bards see look at the checkboxes,scrollbars etc. Also is not a secret that GNOME developers considered at least touch screens if not tablet when designing the GUI. IMo an informative video on GTK and Qt , it explains what issues you can have with GTK, is about the subsurface application(created by Linus Torwalds that moved to Qt because GTK is bad and even Linus could not get good answers from Red Hat guys) [VIDEO]

RecommendsView on HN
@matheusmoreira2021 · in “Use Alacritty instead of Termite”

> don't make the mistake of thinking their libraries are meant for others to use I agree. This presentation convinced me: [VIDEO] GTK+ is really just a toolkit for GNOME projects. All other users are secondary.

Strongly recommendsView on HN
@Intralexical2024 · in “The Adwaita Icon Theme no longer follows the FDO spec, breaking e.g. KDE apps”

> That first link especially is hyperbolic disingenuous bad faith nonsense. … I glanced briefly over the other articles and it seems like they're the same utter drivel… …I've explained at length why, and why their UX choices were justified, before… Yep. There we go. Saying anything about GNOME that isn't adoring praise immediately draws out the victim-playing accusations of bad faith, and refusal to engage with the actual problems. How dare anybody scrutinize the way GNOME developers treat and conduct themselves around other people. Nobody can ask GNOME to listen to them, but everybody else must listen to GNOME. There's genuinely something strange going on with the mindset around the whole project; it's like they've actively weeded out anybody with any functioning empathy, self-awareness, or non-zero neuroplasticity… It's not GNOME that's crazy; it's literally everybody else [1][2][3][4][5][6[][7][8][9][10] that's ever tried to work with GNOME! They must be out to get you. --- 1: Solus/Budgie — See second link above. 2: Linux Mint — [LINK] [LINK] > We want to send a strong signal upstream and towards other projects. We cannot and will not support applications which do not support our users and environments. 3: Transmission — [LINK] (Cited in first link, which you dismissed as "Hyperbolic disingenuous bad faith nonsense".) 4: System76 (as villified by GNOME) — [LINK] (Mentioned in second link, which again you dismissed as "utterly stupid and wrong" "utter drivel".) 5: SpaceFM