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.
38:47RailsConf 2014 - All the Little Things by Sandi Metz
Confreaks
1:01:39"Simple Made Easy" - Rich Hickey (2011)
Strange Loop Conference
47:18The Tragedy of systemd
linux.conf.au
25:06"Making Impossible States Impossible" by Richard Feldman
elm-conf
1:00:19How To Design A Good API and Why it Matters
Google TechTalks
31:44The Value of Values with Rich Hickey
InfoQ
1:04:04Overwatch Gameplay Architecture and Netcode
GDC Festival of Gaming
1:02:26Solving Problems the Clojure Way - Rafal Dittwald
Clojure/north
17 comments from Hacker News
Reminded me of Subsurface maintainer's talk on Qt: [VIDEO] He found it was very good for cross platform work.
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]
One of the best discussions on the subject, made by old hackers, but new guys to GUI programming, who tried both: [VIDEO]
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?
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.
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?
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]
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] .
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
> [VIDEO] Thank you for posting this, it's nice to see that someone already had most of my feelings.
> 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]
> 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++.
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.
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]
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]
> 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.
> 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