<story><title>How Does One Create A Gtk+ Application?</title><url>http://blogs.gnome.org/mortenw/2014/06/23/how-does-one-create-a-gtk-application/</url></story><parent_chain><item><author>jeorgun</author><text>I feel really conflicted about Qt. On one hand, as a graphical toolkit&amp;#x2F;environment, it&amp;#x27;s great. It&amp;#x27;s well-structured and easy to use, and QML is basically everything web applications should have been.&lt;p&gt;On the other hand, as a C++ library it really couldn&amp;#x27;t be worse, with its flagrant reinvention of the standard library, pervasive UTF16, complex object hierarchies, raw pointers, extensive use of macros, etc., etc.&lt;p&gt;Maybe I&amp;#x27;m just too choosy, but it&amp;#x27;d be &lt;i&gt;really&lt;/i&gt; nice to have a graphical toolkit that didn&amp;#x27;t have such an air of sausage factory to it.</text></item><item><author>scrollaway</author><text>This post was written by Morten Welinder, the author of Gnumeric and a popular GNOME blogger.&lt;p&gt;I feel really bad for GTK developers. The GNOME guys have clearly taken the toolkit from a &amp;quot;general purpose&amp;quot; direction to a much more gnome-centric one.&lt;p&gt;At the same time though, I can&amp;#x27;t help but be hopeful for the future. Qt is a wonderful project, with a bunch of wonderful licenses, developed in a wonderfully-open environment (It&amp;#x27;s not like before!) and with wonderful improvements already available in Qt 5. With more and more applications switching to it, I see Qt as a central part of the Linux desktop ecosystem in the future - finally, not only will we have a beautiful desktop with common themes for all apps, but also the power of a truly cross-platform toolkit in most Linux apps. It will be nice.</text></item></parent_chain><comment><author>asgeir</author><text>I think that the reason for reimplementing stl functionality is that they want complex types such as QString as a part of their external interface and they want different minor versions to be binary compatible which can&amp;#x27;t be guaranteed for types like std::string unless everything is compiled with the same compiler and runtime. See &lt;a href=&quot;https://qt-project.org/wiki/Dpointer&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;qt-project.org&amp;#x2F;wiki&amp;#x2F;Dpointer&lt;/a&gt;&lt;p&gt;As for the raw pointer use you should always use QPointer smart pointers for objects whose lifetime you don&amp;#x27;t control. However they don&amp;#x27;t recommend passing QPointers as function parameters since they are easily&amp;#x2F;cheaply constructed and the reference count is embedded in the QObject instance itself in any case.</text></comment>
<story><title>How Does One Create A Gtk+ Application?</title><url>http://blogs.gnome.org/mortenw/2014/06/23/how-does-one-create-a-gtk-application/</url></story><parent_chain><item><author>jeorgun</author><text>I feel really conflicted about Qt. On one hand, as a graphical toolkit&amp;#x2F;environment, it&amp;#x27;s great. It&amp;#x27;s well-structured and easy to use, and QML is basically everything web applications should have been.&lt;p&gt;On the other hand, as a C++ library it really couldn&amp;#x27;t be worse, with its flagrant reinvention of the standard library, pervasive UTF16, complex object hierarchies, raw pointers, extensive use of macros, etc., etc.&lt;p&gt;Maybe I&amp;#x27;m just too choosy, but it&amp;#x27;d be &lt;i&gt;really&lt;/i&gt; nice to have a graphical toolkit that didn&amp;#x27;t have such an air of sausage factory to it.</text></item><item><author>scrollaway</author><text>This post was written by Morten Welinder, the author of Gnumeric and a popular GNOME blogger.&lt;p&gt;I feel really bad for GTK developers. The GNOME guys have clearly taken the toolkit from a &amp;quot;general purpose&amp;quot; direction to a much more gnome-centric one.&lt;p&gt;At the same time though, I can&amp;#x27;t help but be hopeful for the future. Qt is a wonderful project, with a bunch of wonderful licenses, developed in a wonderfully-open environment (It&amp;#x27;s not like before!) and with wonderful improvements already available in Qt 5. With more and more applications switching to it, I see Qt as a central part of the Linux desktop ecosystem in the future - finally, not only will we have a beautiful desktop with common themes for all apps, but also the power of a truly cross-platform toolkit in most Linux apps. It will be nice.</text></item></parent_chain><comment><author>general_failure</author><text>&amp;gt; On the other hand, as a C++ library it really couldn&amp;#x27;t be worse, with its flagrant reinvention of the standard library, pervasive UTF16, complex object hierarchies, raw pointers, extensive use of macros, etc., etc.&lt;p&gt;Have you given Qt a serious try? Most of the above arguments don&amp;#x27;t hold good at all.
* c++ std lib is total crap. Anyone arguing for it has no idea what a good API is. Have you used Qt container? It&amp;#x27;s as intuitive as it gets. The C++ std lib is performance optimized and most desktop apps don&amp;#x27;t need it. It comes at a cost of developers having to learn complex APIs.&lt;p&gt;* Complex object hierarchies - huh? Qt&amp;#x27;s value based types need no memory management. The pointer types has a simple parent-child relationship. Delete the parent and all children are deleted as well. How hard is this?&lt;p&gt;* Raw pointers - Commented truly like someone who hasn&amp;#x27;t understood Qt.&lt;p&gt;* Why do you care about UTF16? It&amp;#x27;s an internal representation. BTW, Do you write any web apps? Do you know or care what internal representation is used by strings? If you some ultra-special case of a performance critical app, no string library out there will be good for you. You will have to roll out your own.&lt;p&gt;Let me guess. It really looks like you are one on the few guys who likes writing libraries (as opposed to apps). People who write apps love Qt. People who like writing libraries don&amp;#x27;t like any other library other than their own because their way is the true way.&lt;p&gt;There are many valid criticism of Qt but these are none of them.</text></comment>