[Interest] Qt is good because...

8 views
Skip to first unread message

Quim Gil

unread,
Mar 26, 2012, 5:24:05 PM3/26/12
to inte...@qt-project.org
Hi,

http://qt-project.org/wiki/Qt-is-Good

Please help creating a list of points explaining why Qt is good compared
to other alternatives for application developers.

Let’s focus on specifics: contrastable proof points and experiences from
developers working in different platforms are greatly appreciated.

You can reply here or edit directly the wiki. In any keep I'll do my
best keeping all the relevant information in the wiki page.

Thank you!

--
Quim
_______________________________________________
Interest mailing list
Inte...@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Rui Maciel

unread,
Mar 26, 2012, 5:58:27 PM3/26/12
to inte...@qt-project.org
On 03/26/2012 10:24 PM, Quim Gil wrote:
> Please help creating a list of points explaining why Qt is good compared
> to other alternatives for application developers.
>
> Let’s focus on specifics: contrastable proof points and experiences from
> developers working in different platforms are greatly appreciated.
>
> You can reply here or edit directly the wiki. In any keep I'll do my
> best keeping all the relevant information in the wiki page.

To me, Qt's main selling points are:

- FLOSS
- C++
- signals & slots (aka observer pattern)
- cross-platform GUI toolkit

It also helps that Qt's default widget styles are easy on the eyes.


Rui Maciel

Quim Gil

unread,
Mar 26, 2012, 6:09:50 PM3/26/12
to inte...@qt-project.org
Thank you for the fast edits and replies, here and at
http://qt-project.org/wiki/Qt-is-Good &
http://qt-project.org/forums/viewthread/15808/

Some questions to dig deeper. Note that these arguments should be
convincing for developers currently familiar with other platforms
(mainly mobile, if you ask me) and considering to get started with Qt.

On 03/26/2012 02:58 PM, ext Rui Maciel wrote:
> To me, Qt's main selling points are:
>
> - FLOSS

Summarized at "Open development = better planning" - anything else?

> - C++

Please help explaining this further (as I'm not a C++ developer myself).
Also we need to explain this next to QML, Javascript and HTML5 -
otherwise we risk keeping the perception that Qt is C++ only and scaring
away many mobile developers more familiar HTML / CSS / Javascript that
would fit perfectly in the context of Qt Quick & Qt WebKit.

> - signals& slots (aka observer pattern)

Help explaining the beauty of this functionality compared to other
toolkits is appreciated. Again, how to explain how great this is to a
newcomer?

> - cross-platform GUI toolkit

This one is now addressed at "Cross platform = multiple targets & user
sectors"


> It also helps that Qt's default widget styles are easy on the eyes.

"Good quality, easy to read code"?

--
Quim

Jonathan Greig

unread,
Mar 26, 2012, 6:52:16 PM3/26/12
to inte...@qt-project.org

I think the lighthouse portion would be a really good point to list for porters.

As far as comparison, Qt is far better at advanced gui stuff like dock widgets and floating toolbars than wxwidgets. This may have changed since then but compared to wx2.6/2.8 I found Qt to be superior in that aspect.

- Swyped from my droid.

http:/...

Rui Maciel

unread,
Mar 26, 2012, 10:29:17 PM3/26/12
to inte...@qt-project.org
On 03/26/2012 11:09 PM, Quim Gil wrote:
> Thank you for the fast edits and replies, here and at
> http://qt-project.org/wiki/Qt-is-Good&
> http://qt-project.org/forums/viewthread/15808/
>
> Some questions to dig deeper. Note that these arguments should be
> convincing for developers currently familiar with other platforms
> (mainly mobile, if you ask me) and considering to get started with Qt.
>
> On 03/26/2012 02:58 PM, ext Rui Maciel wrote:
>> To me, Qt's main selling points are:
>>
>> - FLOSS
>
> Summarized at "Open development = better planning" - anything else?

I don't know if being a FLOSS project leads to that. The only aspect I
referred to was the ability to learn how Qt works and to share any fixes
and changes with anyone that the FLOSS license grants.


>> - C++
>
> Please help explaining this further (as I'm not a C++ developer myself).
> Also we need to explain this next to QML, Javascript and HTML5

Personally, I don't care for Javascript and HTML5, and I'm yet to see
any usefulness in QML. In addition, I suspect that if Qt got stripped
of a number of features it would actually improve.


> otherwise we risk keeping the perception that Qt is C++ only and scaring
> away many mobile developers more familiar HTML / CSS / Javascript that
> would fit perfectly in the context of Qt Quick& Qt WebKit.

Personally, I'm ok with the idea of Qt being C++ only, and only a GUI
toolkit.


>> - signals& slots (aka observer pattern)
>
> Help explaining the beauty of this functionality compared to other
> toolkits is appreciated. Again, how to explain how great this is to a
> newcomer?

The observer pattern isn't exclusive to Qt, nor is event handling. Qt's
way of doing signals & slots tended to be easier than the way callbacks
were typically handled. I don't know if it is still true today, as some
FLOSS callback systems which popped up recently, such as libsigc++, are,
in my opinion, superior to Qt's offering.

Qt's offering may be seen as a bit more resilient when dealing with
errors introduced by the programmer, but I suspect that this is mainly
due to the fact that some programming errors fail silently instead of
returning a long and nasty compiler or runtime error. This isn't
necessarily better or worse, as it can be seen as being both depending
on the scenario.


>> - cross-platform GUI toolkit
>
> This one is now addressed at "Cross platform = multiple targets& user


> sectors"
>
>
>> It also helps that Qt's default widget styles are easy on the eyes.
>
> "Good quality, easy to read code"?

I was referring to how Qt applications look. Plastique looks nice, for
example. Qt also provides an interesting set of widgets.


Rui Maciel

Bo Thorsen

unread,
Mar 27, 2012, 1:40:31 AM3/27/12
to inte...@qt-project.org
Hi Quim,

I have one thing that I tell customers when they ask me the why Qt
question: It's the framework that gets the least in my way.

Most experienced engineers realize that this is *exactly* what you hope
to achieve. It's impossible to do any better because everything has
drawbacks and suck in some ways. Qt sucks less. And the best part of
this answer: It's not open for discussion, so we can move on immediately.

Bo.


Bo Thorsen,
Fionia Software.

--

Expert Qt and C++ developer for hire
Contact me if you need expert Qt help
http://www.fioniasoftware.dk

Andre Somers

unread,
Mar 27, 2012, 1:58:14 AM3/27/12
to inte...@qt-project.org
Op 26-3-2012 23:24, Quim Gil schreef:

> Hi,
>
> http://qt-project.org/wiki/Qt-is-Good
>
> Please help creating a list of points explaining why Qt is good compared
> to other alternatives for application developers.
>
> Let’s focus on specifics: contrastable proof points and experiences from
> developers working in different platforms are greatly appreciated.
>
> You can reply here or edit directly the wiki. In any keep I'll do my
> best keeping all the relevant information in the wiki page.
>
> Thank you!
The two main points are for me:
* The documentation is clearly best-of-breed, and
* The API's are generally clear and consistent, making the framework
easy to learn and predictable

As a bonus: it has a great community around it! :-)

André

Christopher Wilson

unread,
Mar 27, 2012, 2:38:59 AM3/27/12
to Andre Somers, inte...@qt-project.org
I'd like to second André's points. I initially started programming
gtkmm and sigc++ a few years ago. When I switched to Qt, my life
suddenly became so much easier with the best documentation and clear
and consistent API. I can now quickly develop applications and, as Bo
said, the toolkit gets out of my way.

It also has very good addon library support such as Qwt,
qextserialport, libqxt, and more, many of which follow similar APIs as
Qt main. Qwt in particular has saved me so many headaches.

Sincerely,
Chris

Rui Maciel

unread,
Mar 27, 2012, 5:28:06 AM3/27/12
to inte...@qt-project.org
On 03/27/2012 06:58 AM, Andre Somers wrote:
> The two main points are for me:
> * The documentation is clearly best-of-breed, and

I agree. I forgot to mention this, but maybe the single main reason
that makes Qt easy to work with is Qt's notorious investment in
documentation.


Rui Maciel

Sivan Greenberg

unread,
Mar 27, 2012, 6:02:57 AM3/27/12
to Quim Gil, inte...@qt-project.org
On Tue, Mar 27, 2012 at 12:09 AM, Quim Gil <quim...@nokia.com> wrote:
>
>> - C++
>
> Please help explaining this further (as I'm not a C++ developer myself).
> Also we need to explain this next to QML, Javascript and HTML5 -
> otherwise we risk keeping the perception that Qt is C++ only and scaring
> away many mobile developers more familiar HTML / CSS / Javascript that
> would fit perfectly in the context of Qt Quick & Qt WebKit.


Right, in my POV, C++ "feature" of Qt should be a bit less emphasized
away. As it might feel too tall a hill to climb for new developers,
and is the reason why projects like PhoneGap and related gain more and
more popularity and decision makers move more and more towards the
scripted, HTML5/JavaScript paradigm (there's also abundant talent).

On the other hand, Qt is interesting as of its use of C++ employing
advanced C++ concepts and allows for unprecedented power when you go
the low level C++ path...

>
>> - signals&  slots (aka observer pattern)
>
> Help explaining the beauty of this functionality compared to other
> toolkits is appreciated. Again, how to explain how great this is to a
> newcomer?
>

Personally speaking, I never really got the difference between Signals
& Slots and Callbacks in CTK+ ? But perhaps this is the same pattern
implemented differently?

>> - cross-platform GUI toolkit
>
> This one is now addressed at "Cross platform = multiple targets & user
> sectors"

There are now a large number of those. We need to emphasis other
points in Qt's cross platformness, like easy deployment (the runtime
uses bare bone components most systems likely to have; c/c++ compiler,
binutils or similar as opposed to Java that is usually available by
intended installation) and testing, best integrated development
environment ever seen on earth for both desktop and mobile/ embedded
targets (Qt Creator) , running natively as opposed to other platforms
(most of qt stuff compiles to native code rather than a VM / language
runtime), abundant documentation integrated into the IDE, endless
examples to get you started, best community ever in such a project,
Nokia as the main supporter.. what else? ;)


Qt SDK is the only competitor in my view to Microsoft's integrated
development offering, which can be translated to "Enterprise grade
ready integrated development offering" or so..

-Sivan

Rui Maciel

unread,
Mar 27, 2012, 6:40:55 AM3/27/12
to inte...@qt-project.org
On 03/27/2012 11:02 AM, Sivan Greenberg wrote:
>>> >> - signals& slots (aka observer pattern)
>> >
>> > Help explaining the beauty of this functionality compared to other
>> > toolkits is appreciated. Again, how to explain how great this is to a
>> > newcomer?
>> >
> Personally speaking, I never really got the difference between Signals
> & Slots and Callbacks in CTK+ ? But perhaps this is the same pattern
> implemented differently?


Deep down it's basically all the same. The Qt way of handling callbacks
doesn't rely, at least directly, on pointers to member functions. As
this eliminates the risk of having to deal directly with issues related
to typesafe violations, it makes it a bit more user-friendly. After
all, no one enjoys having to deal with a long string of compiler and
runtime errors. But other than this, it's basically all the same.


Rui Maciel

Harri Pasanen

unread,
Mar 27, 2012, 7:38:15 AM3/27/12
to inte...@qt-project.org

On 03/27/2012 12:02 PM, Sivan Greenberg wrote:
> On Tue, Mar 27, 2012 at 12:09 AM, Quim Gil<quim...@nokia.com> wrote:
>>> - C++
>> Please help explaining this further (as I'm not a C++ developer myself).
>> Also we need to explain this next to QML, Javascript and HTML5 -
>> otherwise we risk keeping the perception that Qt is C++ only and scaring
>> away many mobile developers more familiar HTML / CSS / Javascript that

>> would fit perfectly in the context of Qt Quick& Qt WebKit.


>
> Right, in my POV, C++ "feature" of Qt should be a bit less emphasized
> away. As it might feel too tall a hill to climb for new developers,
> and is the reason why projects like PhoneGap and related gain more and
> more popularity and decision makers move more and more towards the
> scripted, HTML5/JavaScript paradigm (there's also abundant talent).
>
> On the other hand, Qt is interesting as of its use of C++ employing
> advanced C++ concepts and allows for unprecedented power when you go
> the low level C++ path...

Nowadays I work mostly in mobile space, but not exclusively.

Personally for me C & C++ support are essential, as those provide access
to a wealth of ready to use libraries, like libav, opencv, etc.
They also provide the required speed improvement when starting to polish
feature complete applications. I may do the prototype/first version in
javascript+QML and then move the hot spots to C++.

Good Python support in Qt is nice, although for mobile less interesting
right now because of startup cost (which QML+javascript also has to some
extent).

Btw. on recent poll javascript was not that popular, ~ equal to C and
C++ popularity together.
http://news.ycombinator.com/item?id=3746692

Python was the clear winner.

I find Qt Creator very good, I like it best from qtcreator, eclipse,
xcode, all of which I've been using.

Qt documentation is also top notch, better than Android, and easier to
access and search than Apple docs.


My 2 cents,

Harri

Tim O'Callaghan

unread,
Mar 27, 2012, 7:49:59 AM3/27/12
to inte...@qt-project.org
On 03/26/2012 11:24 PM, Quim Gil wrote:
> Hi,
>
> http://qt-project.org/wiki/Qt-is-Good
>
> Please help creating a list of points explaining why Qt is good compared
> to other alternatives for application developers.
>
> Let’s focus on specifics: contrastable proof points and experiences from
> developers working in different platforms are greatly appreciated.
>
> You can reply here or edit directly the wiki. In any keep I'll do my
> best keeping all the relevant information in the wiki page.
>
> Thank you!
>

It has an almost unique advantage over everything else because it give
more bang for your buck. If you invest in learning QT then you can
develop QT applications for almost every computing platform and for
almost every level in the stack. I can use it to develop embedded
applications, GUI desktop applications, database applications,
networking and server applications for every operating system. Its very
much a write once run anywhere, but without the Java.

I'm fond of saying about Java "when all you have is a hammer, everything
starts to look like a nail", because I have seen personally seen Java
being used where it is not appropriate (I.e. hammering in screws). But
Qt is more of a tool-kit or a "Swiss army knife". It abstracts away
platform dependencies. It already has libraries that address large
portions of the 'grunt' work of your application, so you can focus on
adding the essentials. It is decoupled enough to allow you to slice out
features you do not want, and makes very few demands on how you go about
structuring your application to solve your problem.

I'm not claiming QT does not have its faults, not by any means, but the
benefits, in my opinion, outweigh the time cost of the learning curve(s)
required.


Regards,

Tim.

Sivan Greenberg

unread,
Mar 27, 2012, 8:12:23 AM3/27/12
to Harri Pasanen, inte...@qt-project.org
On Tue, Mar 27, 2012 at 1:38 PM, Harri Pasanen <ha...@mpaja.com> wrote:
> Personally for me C & C++ support are essential, as those provide access
> to a wealth of ready to use libraries, like libav, opencv, etc.
> They also provide the required speed improvement when starting to polish
> feature complete applications.   I may do the prototype/first version in
> javascript+QML and then move the hot spots to C++.

Right, and I noted this in a way in my previous post perhaps not as
positively as I should. It is just the vibes I'm receiving on my end
(to my discontent) from local and international industry emphasizes
JavaScript, HTML5 , QML (for both client *and* server, e.g. NodeJS)
and other "more developer friendly" (-easier to learn and get started
in speed) technologies. (a LOT of apps today are cloud data
consumption apps or content and the HTML5/JS , QML is perfect for this
use case)

>
> Good Python support in Qt is nice, although for mobile less interesting
> right now because of startup cost (which QML+javascript also has to some
> extent).
>

I would love to see PySide (personally I'm a fan) become more closer
in performance to native. PySide is a rather pleasurable way and fun
to Qt.


> Btw. on recent poll javascript was not that popular, ~ equal to C and
> C++ popularity together.
> http://news.ycombinator.com/item?id=3746692
>
> Python was the clear winner.

:)

My personal preference is again, Python. Which is why I love PySide so
much. But it seems that "serious" apps in Qt must be written in C++.

-Sivan

Quim Gil

unread,
Mar 27, 2012, 9:51:55 AM3/27/12
to inte...@qt-project.org
Thank you for all the feedback!

I will include to http://qt-project.org/wiki/Qt-is-Good what is not
already there.

Please let's not get stuck in the C++ vs JS/QML discussion. Qt has both
strengths and we should explain pros and cons to each developer profile.

Is there more to say comparing Qt directly to the very own offerings of
iOS, Android and Windows Phone? Language, APIs, SDK, documentation...?

--
Quim

Quim Gil

unread,
Mar 27, 2012, 10:12:35 AM3/27/12
to inte...@qt-project.org
On 03/26/2012 10:58 PM, ext Andre Somers wrote:
> * The documentation is clearly best-of-breed,

The wiki page also says that the API has "the best API available, not
only in C++ but also compared to other languages."

I'm a bit reluctant typing "best of" anything unless we have some proof
e.g. comparing with Objective-C for iOS, Java for Android and
XNA/Silverlight for Windows Phone. Many of the developers that ask
themselves whether to use Qt come from these backgrounds.

Again, help is appreciated.

Jordi Pujol

unread,
Mar 27, 2012, 10:13:07 AM3/27/12
to inte...@qt-project.org
I think is good because for old-fashioned guys like me, working on
very-big applications ( not intended to run in an embedded / mobile/...
environment ) Qt is capable to scale easily to even any size.

As a sample : about 3M lines of code, multi-Db / multi-O.S capable app
( Win/*IX/Mac) running with low memory footprint & efficient way.

My 2cts.

Jordi.

Thiago Macieira

unread,
Mar 27, 2012, 10:16:58 AM3/27/12
to inte...@qt-project.org
On terça-feira, 27 de março de 2012 07.12.35, Quim Gil wrote:
> I'm a bit reluctant typing "best of" anything unless we have some proof
> e.g. comparing with Objective-C for iOS, Java for Android and
> XNA/Silverlight for Windows Phone. Many of the developers that ask
> themselves whether to use Qt come from these backgrounds.

"arguably best of" :-)

Or if you're in a legal mood, "allegedly best of".
--
Thiago Macieira - thiago.macieira (AT) intel.com
Software Architect - Intel Open Source Technology Center
Intel Sweden AB - Registration Number: 556189-6027
Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden

signature.asc

Rui Maciel

unread,
Mar 27, 2012, 10:44:06 AM3/27/12
to inte...@qt-project.org
On 03/27/2012 02:51 PM, Quim Gil wrote:
> I will include tohttp://qt-project.org/wiki/Qt-is-Good what is not
> already there.


I've noticed that the article includes the following sentence:

<quote>
All the source code of the Qt libraries is open source and well written
with good API references.
</quote>


I would take some precautions in claiming that it is "well written".
Not that it is poorly written. It isn't. Yet, when a Qt app is ran
under a code profiler such as valgrind, a lengthy set of warnings is
displayed regarding a series of invalid memory accesses and conditional
jumps or moves depending on uninitialised values.

Granted, maybe this problem is distro-specific, and not related to Qt
per se. Is anyone else willing to test this?


Rui Maciel

Reply all
Reply to author
Forward
0 new messages