Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Qt is good because...
QtWS25 Last Chance

Qt is good because...

Scheduled Pinned Locked Moved General and Desktop
26 Posts 16 Posters 13.5k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Q Offline
    Q Offline
    qgil
    wrote on last edited by
    #1

    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 case I'll do my best keeping all the relevant information in the wiki page.

    Thank you!

    1 Reply Last reply
    0
    • D Offline
      D Offline
      dridk
      wrote on last edited by
      #2

      GENERAL:

      • Because it's cute
      • best documentation of ever
      • multiplateform
      • Cross plateform without using a virtual machine
      • Free and openSource
      • easy to begin with qt creator
      • Complete framework with everything
      • easy to learn

      TECHNICAL:

      • native C++
      • Signal / slots
      • Property Binding
      • Has Webkit !!
      • Has QtQuick !!
      • Has Community

      Nothing in Biology Makes Sense Except in the Light of Evolution

      1 Reply Last reply
      0
      • Q Offline
        Q Offline
        qgil
        wrote on last edited by
        #3

        That was fast! Thank you.

        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.

        • Cross-platform without VM, yes. I'll add it to the wiki page.

        • Qt WebKit as a great WebKit port, yes. I'll add it.

        • Qt Quick, those of us familiar with it love it but what are the key arguments for a newcomer to learn something that is not as standard as C++ or HTML5? We can find those reasons and write them down.

        • "Easy to learn" yes, having testimonials of developers having gone through other languages / toolkits would be great. We also need to get into details: "easy to learn if you have already a C++ background" or "easy to learn Qt Quick if you are familiar with Javascript & CSS"...?

        • Easy to begin with Qt Creator: any impressions comparing the first steps with the SDK of other platforms?

        • Best documentation: any impressions comparing it with the docs from other platforms? Anything standing out?

        • "Complete framework with everything" - why it is better compared with major competing platforms?

        • Can you explain signal/slots and property binding in comparison with other platforms?

        • Community, of course it's great! But what makes it great in a way a newcomer would understand? Any remarkable difference compared to other developer communities?

        • Free and openSource, there is already one point about "open development = better planning". Anything else?

        1 Reply Last reply
        0
        • Q Offline
          Q Offline
          qgil
          wrote on last edited by
          #4

          About 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.

          1 Reply Last reply
          0
          • S Offline
            S Offline
            Sfiet_Konstantin
            wrote on last edited by
            #5

            Previous post said a lot but I might add some stuff

            • Qt is so cute : clear syntax, easy to learn and powerful.
            • The documentation is very well organized and the presentation is great. Having Qt assistant (offline doc) is wonderful !
            • Qt is the best graphics framework : widgets are easy to use (compared to java swing for ex), scale and have consistent theming with the OS
            • Qt Quick is wonderful for designing cool yet usable interfaces.
            • You install SDK, and compile a project : it works ! Ie crossplatform is really guaranteed, and SDK is really easy to deploy. Qt Creator is light but full of interesting features (source header commuting is my favourite)
            • For C++ Qt makes development easier. You do not need to know everything about C++ to start using Qt : it is as easy as JAVA, and is not as frustating as pure C++ : no much seg faults. Moreover, basic classes are present (qstring qbytearray qlist qhash ...)
            • For QML I will say that it helps developers thag use HTML JS to do better, more optimized, with same effort

            Voila (sorry for misakes, sent from N9)

            1 Reply Last reply
            0
            • D Offline
              D Offline
              DBoosalis
              wrote on last edited by
              #6

              Qt is Prime For The Enterprise.
              For mission critical apps you'd be hard pressed to find a more reliable, robust framework. Weather your looking for consistent native look and feels across all major desktop OS's with QT Widgets or looking for a fresh new look with QML its there for you. But beyond the GUI there is a rich and deep set of classes to handle just about anything you need in a client server architecture: Sockets, SQL, XML, Threads, Processes. Qt provides easy and intuitive classes for all of these areas of functionality.

              As a developer one thing I really appreciate about Qt is that it has been tempered by almost two decades of evolution. Quarterly minor releases keep making the product better in terms of stability and performance. While major releases (2,3,4, and soon 5) keep the framework fresh, alive and conteporary. I also like how Qt is maintained for all major Desktops. Major and minor point releases for all Desktop OS's are pushed out at the same time.

              I think the duel license model of Qt gives enterprise developers piece of mind. Public License allows the community to be more inclusive and open, leading to a much more stable and healthy community. Commercial license means revenue to help pay for the 75 or so professional people maintaining Qt in the form of bug fixes, testing, first rate documentation, and IDE tools.

              1 Reply Last reply
              0
              • D Offline
                D Offline
                devbean
                wrote on last edited by
                #7

                Using C++ we could develop faster and more native desktop applications. Unlike Java, we can easily embed OS APIs into our apps, also C++ code is much faster than languages with VMs.

                Signals and slots are pretty breautiful than other libraries. It makes loose coupling。 Many other libs do follow this mechanism, such gtk+ and boost.

                Also, with Qt it is easy port your apps from desktop to embeded system, from KDE to megoo, and so on.

                1 Reply Last reply
                0
                • ? This user is from outside of this forum
                  ? This user is from outside of this forum
                  Guest
                  wrote on last edited by
                  #8

                  A very important point for me is that Qt makes C++ development very easy and fast, and pretty clean too, beats closest competitor Java every way I look at it.

                  I think efficiency deserves a major focus. C++ is orders of magnitude faster than JS, QML with C++ backend is orders of magnitude faster than HTML, and in terms of memory footprint the difference is just as dramatic. With the focus falling on mobile platforms, the efficiency of native C++ code cannot be stressed enough. For example, in computation intensive tasks, C++ is on average 10-20 TIMES faster than JS, this means you can get 10-20 times as much work in a unit of time and also 10-20 more work in a single battery charge. This is very important for enterprise as well, and just because desktop computers have the power to spare doesn't really mean we should be wasting it.

                  Also, I didn't see anyone mentioning the truckload of examples shipping with Qt that cover the majority of the framework.

                  Open source is mentioned, but open governance deserves a mention as well.

                  1 Reply Last reply
                  0
                  • M Offline
                    M Offline
                    mario
                    wrote on last edited by
                    #9

                    QtQuick is touch-friendly, even for the desktop! Supports kinetic scrolling and touch-gestures out of the box.

                    1 Reply Last reply
                    0
                    • M Offline
                      M Offline
                      mario
                      wrote on last edited by
                      #10

                      one more...

                      QtSDK probably provides the best and most feature rich simulator out there for mobile devices.

                      Features supported, amongst others, Contacts, Messaging, Sensors, Multi-touch and Camera.

                      A good simulator gives instant feedback and you don't have to deploy the app to target each time.

                      1 Reply Last reply
                      0
                      • A Offline
                        A Offline
                        Asperamanca
                        wrote on last edited by
                        #11

                        Just a small, cute point:

                        When starting out with Qt, I developed rather complex GUI application prototype on Windows. After two weeks of writing and twisting code, I ported to Linux. All I had to take care of was to use the correct case for filenames. Well, that's about Linux, not Qt.
                        Otherwise it just...worked.

                        Then I ported to Linux Embedded. Again, it just...worked.

                        1 Reply Last reply
                        0
                        • G Offline
                          G Offline
                          giesbert
                          wrote on last edited by
                          #12

                          It's also good regarding the licensing issues (interesting for companies):

                          GPL, LGPL, commercial (e.g. we are not aloowed to use GPL/LGPL code in our projects)

                          A very good support for commercial customers

                          A very helpful and active community that tries to help all

                          Nokia Certified Qt Specialist.
                          Programming Is Like Sex: One mistake and you have to support it for the rest of your life. (Michael Sinz)

                          1 Reply Last reply
                          0
                          • Q Offline
                            Q Offline
                            qgil
                            wrote on last edited by
                            #13

                            Thank you for all the feedback!

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

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

                            1 Reply Last reply
                            0
                            • ? This user is from outside of this forum
                              ? This user is from outside of this forum
                              Guest
                              wrote on last edited by
                              #14

                              Sadly, Qt is not officially supported on either iOS or Android, Necessitas is still WIP and has a long way to go (what is even worse, it doesn't seem to be moving at all in the moment), the same applies to iOS even more so. I personally would be happy if Qt support officially extends to those platforms, but for the time being they are more of experimental and I personally wouldn't rush ahead to market them as benefits of Qt.

                              That being said, as a C++ programmer I am definitely willing to give Qt the edge over the Android SDK/NDK combo. IMO Google did a very bad job with the SDK, combined with bad platform decisions for Android, for toy apps it suffices, but for serious applications with native code, the SDK/NDK combo offers a very tedious development experience, and without the NDK, performance and efficiency are awful. I compare the painting application I develop with numerous similar apps for android, both free and paid, from leading developers like Adobe and Autodesk and Qt offers better performance and more efficient resource usage.

                              1 Reply Last reply
                              0
                              • Q Offline
                                Q Offline
                                qgil
                                wrote on last edited by
                                #15

                                Point taken - will find the words. This aims to be not only a picture but also a (not so distant) future scenario. When a developer approaches a new framework s/he also has to think not only in today but also strategically in the future.

                                otoh: help summarizing the best aspects of Qt Creator compared to the competition is welcome.

                                1 Reply Last reply
                                0
                                • ? This user is from outside of this forum
                                  ? This user is from outside of this forum
                                  Guest
                                  wrote on last edited by
                                  #16

                                  Well, for one - for plain C++, Creator's "intellisence" or auto completion is better than VS2010, which is a sad story without third party addons like Visual Assist X. Also the ability to add definitions from declarations, sync them upon changes, auto indenting, the move up/down like with indent awareness, cloning lines, refactoring and those little things that make a programmer's life easier. I haven't used other IDEs apart from Creator and VS, so those are the only ones I can compare between, but Creator is way better than VS without VAX, plus it is FREE unlike all the VS versions that support the Qt addon or VAX / other productivity boosting addons for that matter.

                                  1 Reply Last reply
                                  0
                                  • C Offline
                                    C Offline
                                    ckakman
                                    wrote on last edited by
                                    #17

                                    I am working for a system integration company in the machine vision sector where non-GUI parts of the software we develop is much more important than the GUI. We use both .Net and Qt.

                                    I prefer Qt over .Net because:

                                    • Event loop per thread makes it possible to encapsulate an object within a thread. We can talk of an object-oriented threading architecture. Other frameworks (and C++11) are task-oriented which is at odds with OOD. With thread-safe signal/slots comes thread synchronization for free.
                                    • Several connection types for signal-slot connection empower developers with very flexible design possibilities without hitting the cross-thread exception wall and struggling with thread synchronization primitives.
                                    • Implicit-sharing is a very powerful technology that leads to lighter classes, alleviates the need for heap-based allocation in many cases and the need for custom copy-constructor/assignment operator implementations, hence leads to cleaner, simpler code, IMHO, even cleaner than C#.
                                    • As a C++ framework which comes prebuilt with native compilers of the supported platforms, Qt makes it possible to easily integrate 3rd party libraries into an application. When Qt is missing a functionality the platform provides, it is always possible to use the platform APIs directly, so no way of getting stuck into impossibilities. Such flexibility and independence is very very important for ISVs.
                                    • When one gets accustomed to qmake and pro/prf/pri trio, developing and reusing an in-house library is very easy.

                                    C/C++ is the de facto programming language in automation and machine vision industry where performance is very important and Qt is in a unique position as a C++ framework with an elegant API and advanced technologies I mentioned above.

                                    1 Reply Last reply
                                    0
                                    • E Offline
                                      E Offline
                                      esavard
                                      wrote on last edited by
                                      #18

                                      Prior to Qt, I was developping desktop application with VS2005 and MFC. With MFC I spent a lot of time searching about tricks to go around the limitations of the framework. Our architect was considered a "guru" because he knew all those tricks... What a waste of time...

                                      My first project with Qt (in 2008) was a revelation!

                                      • Clean and logical API (pretty everything make sense)
                                      • World class documentation (with MFC, I had to go to CodeProject or the ProgrammerExchange(!) in search for answers about undocumented "features")
                                      • I like Qt Containers and foreach (reminds me of Ruby elegance and cleaness)
                                      • Cross platform development is simple and effortless (just recompile)
                                      • Qt Framework is complete and minimize the use of 3rd parties packages (and the porting efforts too)
                                      • Qt makes coding in C++ fun and more simple
                                      • Qt metaprogramming gives C++ some of the power of dynamic langages such as Ruby and Python
                                      • Many wrappers exist for other langages (I've used Python's and Ruby's in the past)
                                      • Simple and straight forward C++ testing framework comes built-in (great for TDD)

                                      Now for QtCreator in comparison of other IDE (I've used Visual Studio and Eclipse CDT to develop Qt applications in the past) :

                                      • Fast, lean and clean interface
                                      • Built-in support for Qt and QMake
                                      • Just install and you're ready to go
                                      • Auto-completion is fast (not like in Eclipse or VS)
                                      • Built-in support for the most popular SCM (as opposite to VS and Eclipse for which you need a plug-in / add-on for Mercurial)
                                      • Multi-platform (you don't have to learn yet another IDE)

                                      I'm advocating Qt whenever I can. I feel more productive and less distracted while coding in Qt.

                                      1 Reply Last reply
                                      0
                                      • J Offline
                                        J Offline
                                        jdavet
                                        wrote on last edited by
                                        #19

                                        I took the liberty of rewriting the paragraph about the Qt API directly on the wiki page...

                                        I took out the "Qt has the best API available, not only in C++ but also compared to other languages" claim, which is
                                        a) unsustainable, and
                                        b) fails to define what "best" is even supposed to mean, and
                                        c) mixes the concept of "framework API" with that of "programming language" in a weird way.

                                        My rephrased version is still somewhat boastful...err, I mean of course enthusiastic ;-), but I think that's okay.

                                        1 Reply Last reply
                                        0
                                        • ? This user is from outside of this forum
                                          ? This user is from outside of this forum
                                          Guest
                                          wrote on last edited by
                                          #20

                                          One could easily come up with a somewhat objective concept of "the best" - although Qt is far from perfect, its portability/platform support/performance/development ease ratio DOES BEAT any other solution I am aware of.

                                          There are plenty of good frameworks out there, unfortunately the fast ones are platform limited, and the portable ones are inferior in terms of efficiency and performance, so for the time being Qt is the beast, or the least worse if you will option, until someone bothers to make something better. That explains why I bother with it, if there was a better solution than Qt, I'd be using it instead.

                                          Besides, I am surprised lab rats (basically anyone) can freely edit wiki pages, surely this cannot be right?

                                          1 Reply Last reply
                                          0

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved