Gtk to Qt - a strange journey [linux.conf.au 2014]
Konstantin Bläsi5 HN recommenders · recommended in 6 months, 2014–2024
talk · intermediate · 2014–2024 on HN
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.
Up next
9 mo on HNLISA11 - Fork Yeah! The Rise and Development of illumos
USENIX
9 HN recommender · 2012–2026
10 mo on HNWhy Your Vote Doesn't Count
CGP Grey
10 HN recommender · 2015–2025
2 mo on HNRust NYC: Jon Gjengset - Demystifying unsafe code
Rust Programming Language
2 HN recommender · 2020–2024
8 mo on HNOnce you understand game theory, you understand the world.
Veritasium
10 HN recommender · 2023–2026
4 mo on HNBenno Rice: The Tragedy of systemd -- BSDCan 2018
BSDCan
4 HN recommender · 2018–2024
1 mo on HNLeaping the chasm from proprietary to open: A survivor's guide
Bryan Cantrill
1 HN recommend · 2020–2024
3 mo on HNThe Fermi Paradox: Dark Forest Theory
Isaac Arthur
2 HN recommender · 2019–2024
2 mo on HNRenault F1 engine playing God Save the Queen
Chris Billett
2 HN recommender · 2015–2024
14 mo on HNThe Tragedy of systemd
linux.conf.au
16 HN recommender · 2019–2025
10 mo on HNThe Real Story Behind Wayland and X - Daniel Stone (linux.conf.au 2013)
Mladen Mijatov
13 HN recommender · 2013–2026
8 mo on HNTech Talk: Linus Torvalds on git
Google
9 HN recommender · 2007–2023
7 mo on HNDebConf 14: QA with Linus Torvalds
Adnan Hodzic
7 HN recommender · 2014–2021
12 comments from Hacker News
> don't make the mistake of thinking their libraries are meant for others to use I agree. This presentation convinced me: ▶ this video GTK+ is really just a toolkit for GNOME projects. All other users are secondary.
One of the best discussions on the subject, made by old hackers, but new guys to GUI programming, who tried both: ▶ this video
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) ▶ this video
Qt has a company behind so is more professional, better documentation, better cross platform support, less bugs. This video ▶ this 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.
> ▶ this video Thank you for posting this, it's nice to see that someone already had most of my feelings.
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: ▶ this 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?
> 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
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: ▶ this video
> 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 : ▶ this 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
> 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 : ▶ this 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++.
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 ▶ this video If you make a simple GUI like for a python script GTK is enough
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, ▶ this video .