I am curious what Richard Stallman (or generally FSF) can say about this, This is clearly one of the best thing happening to FSF.
Let be honest, with Gtk's lack of modernity (I don't know what to call it, but despite being gnome guy myself, we should be honest Gtk falls behind very badly these days in almost all category, ease of development is one of the important one), FSF needs a modern Toolkit and Qt can be the one.(Personally, this does not mean I love Qt, no, It designed very tidy, but I hate MOC, changing language is always bad idea in my perspective, you should play by rules, I don't care who does this, Microsoft or anyone else, and MOC does this.)
p.s. yes I know MOC is preprocessor step, but my logic is sound . Programmer does not program in pure C++ when he/she program in Qt. He/She program in Qt version of C++(and compatibility with existing C++ compiler does not change this fact).
> Programmer does not program in pure C++ when he/she program in Qt. He/She program in Qt version of C++(and compatibility with existing C++ compiler does not change this fact).
That's one of the reasons one might use Qt, to use Qt's data structures, etc.
Data structure nothing to do with language , you can implement all of them in any Turing complete language. My point was when you do use Qt , actually you are using specific version of C++ not ISO C++. And being preprocessor, does not change that fact.
> we should be honest Gtk falls behind very badly these days in almost all category
While I agree you'd have to be absolutely nuts to develop an application using GTK+ directly in C (Yes, I think the whole GNOME project is nuts... but it's telling that they adopted Javascript and Vala), the C++ bindings for GTK[0] weren't all that bad when I last looked at them.
Of course, without a MOC equivalent, you can't really beat the slickness of Qt/QML.
My biggest complaint with GTKmm right now is the lack of composite widget support. It's actually nice to develop a GTK+ application in Vala because composite widgets kick ass and remove a huge pain point for just wanting to throw a window up without all the nasty GTK signal connection maddness. Once GTKmm gets that support I'll probably start using it more.
Well I haven't looked at it since Gtk Builder was called Glade, but QML has convinced me that declarative UI markup with sprinklings of code, and custom widgets implemented on the side, is the way to go.
Agreed, hence why composite widget support in GTKmm would be really nice. In Vala you just make a normal class inheriting from whatever your base widget is, decorate it with a [GtkTemplate] attribute and whenever you construct that widget it will use the gtkbuilder XML you referenced in the attribute to construct the widget, binding all the callbacks referenced in the XML with the respective methods on the class.
Until recently C++ hasn't even had compile time reflection that would allow this to work very well, now that C++14/C++17 are adding that I think this would be very doable.
Qt has been available as free software for over a decade. "We're dropping the LGPL version 2.1 licensing option" is hardly more than a minor note and certainly not a game-changer.
You're changing the direction of the discussion. The comment I replied to was an explicit request for Stallman to comment on this announcement. Why would he?
It's great that you can use Qt under LGPLv3, but that was true yesterday, and that's not what this announcement is about.
> I am curious what Richard Stallman (or generally FSF) can say about this
What sort of comment are you looking for? Stallman has written about it before:
> In 1998, the management of TrollTech recognized that they could make Qt free software and continue charging for permission to embed it in proprietary software. I do not recall whether the suggestion came from me, but I certainly was happy to see the change[...]
p.s. yes I know MOC is preprocessor step, but my logic is sound . Programmer does not program in pure C++ when he/she program in Qt. He/She program in Qt version of C++(and compatibility with existing C++ compiler does not change this fact).