Bienvenue sur le forum !

Si vous souhaitez rejoindre la communauté, cliquez sur l'un de ces boutons !

Qt 5 : 5.8.0 - Qt Creator : 4.3.0 - Qt Installer : 2.0.3 - JOM : 1.1.2 - Qt Build suite : 1.7.0 - VS Qt 5 : 2.0.0

[Qt3] Comparaison QT vs Delphi

Bonjour à tous,

je travaille depuis des années avec Delphi. Cet outil est excellent, mais il a le redoutable inconvénient de ne pas être portable (ou assez peu).
Je viens de (re)découvrir l'existence de QT et de ses avantages, notamment la portabilité, et je me pose la question si porter sous QT mes (grosses) applications ne serait pas opportun.

Voici quelques avantages et inconvénients que je vois à QT (contre Delphi), je souhaiterai avoir vos réactions et objections avant de me lancer corps et biens dans l'aventure C++/QT.

Avantage QT :
- portabilité Windows/Linux/unix/Mac
- QT semble assez astucieux (signaux/slots et bibliothèques)
- nombreuses bibliothèques C++ existantes
- outil de traduction intégré
- un livre en français sur le sujet pour débuter !
- GNU sous Linux, ce qui permet de ne pas trop investir au départ

Inconvénients QT :
- communauté francophone plus restreinte que celle de Delphi (même si je découvre qu'elle est bien réelle :-))
- apprentissage du C++ (proche du Pascal Objet, mais tout de même...)
- réécriture de mes applis (je sais, on a rien sans rien)
- le prix multi-plateformes/non open source...
- moins de Widgets QT proposés par des utilisateurs que des Composants Delphi.
- QT ne propose pas un EDI complet. Il faut trouver son éditeur et son complilateur, n'est-ce pas ?

Voici enfin quelques questions :
- la portabilité est-elle assurée assez systématiquement, ou faut-il faire très attention à tout un tas de choses (par exemple ne pas utiliser les templates comme c'est préconnisé pour les dév. Mozilla) ?
- sous Windows, faut-il obligatoirement MS VisualC++ (la doc TrollTech ne me semble pas limpide sur le sujet).
- QT4 semble apporter de bonnes choses, mais les délais seront ils respectés ?
- les logiciels produits sont-ils compacts ou volumineux ?
- Facilement déployables sur les différentes plateformes ?

Merci pour vos réactions.

Réponses

  • Hello !

    - QT ne propose pas un EDI complet. Il faut trouver son éditeur et son complilateur, n'est-ce pas ?
    En effet, il te faut un compilo, sinon pour faire tes interfaces graphiques tu as QtDesigner qui est bien fichu (meme si je ne l'utilise pas) et à partir duquel tu generes le code cpp de ton interface.

    - la portabilité est-elle assurée assez systématiquement, ou faut-il faire très attention à tout un tas de choses (par exemple ne pas utiliser les templates comme c'est préconnisé pour les dév. Mozilla) ?
    Pas systematique mais grandement facilitee ! Il y a de ci de la des choses qui peuvent poser des soucis au moment de porter l'appli... mais rien d'insurmontable.

    - sous Windows, faut-il obligatoirement MS VisualC++ (la doc TrollTech ne me semble pas limpide sur le sujet).
    Sous Windows, il y a l'outil de Borland aussi!
  • - QT semble assez astucieux (signaux/slots et bibliothèques)
    Oui, ça semble astucieux, mais est-ce que ça l'est vraiment ?
    Je n'ai pas de réponse à cette question, il est vrai que le mécanisme est séduisant en tout cas...
    - apprentissage du C++ (proche du Pascal Objet, mais tout de même...)
    Cela dit, le C++ est tellement utilisé que ça vaut vraiment le coup de l'apprendre. Personnellement, je ne dirais pas que c'est un désavantage...
    De plus, il existe d'autres langages qui s'interfacent avec Qt, Python par exemple (Alban se fera une joie de te faire une introduction).
    - le prix multi-plateformes/non open source...
    Il existe une version non commerciale de Qt, téléchargeable gratuitement sur le site de trolltech, mais elle se base sur la version 2.3 qui est dépassée (on en est bientôt à la version 4).
    Sinon, il est possible d'avoir une version 3 pour Windows en achetant un bouquin (ce qui rvient bien moins cher que d'acheter la licence).
    Et enfin, il me semble que ce désavantage existe aussi du côté de Delphi, non ?
    - QT ne propose pas un EDI complet. Il faut trouver son éditeur et son complilateur, n'est-ce pas ?
    Il y a Qt Designer qui ressemble un peu à l'environnement de développement Delphi (mais en moins bien).
    - sous Windows, faut-il obligatoirement MS VisualC++ (la doc TrollTech ne me semble pas limpide sur le sujet).
    Non, on peut aussi utiliser Borland C++.
    Il me semble qu'on peut aussi utiliseer MinGW, mais je ne suis pas sûr à 100%
  • Oui, le défaut (ou avantage, selon le point de vue) est le manque d'un IDE de qualité. QT Designer est un excellent painter, mais côté saisie de code et gestion de projet, c'est nul. KDevelop tente de réconcilier tout çà, mais je remarque qu'il à autant de défenseurs que de détracteurs. Visual Studio, je n'en parle pas (me suis arrêté à la version 5.0).

    Pour ma part, je trouve QT génial. La philosophie libre y est très présente, et la documentation excellente.

    Evidement, si tu as déjà dépensé de l'argent pour tes licenses Delphi, ca fera mal de remettre la main au portemonnaie pour QT. Il faudrait voir ce que tu veux faire entre simplement apprendre une nouvelle librairie (et te former au C++ visiblement) ou arrêter Delphi complètement pour l'une ou l'autre raison.

    Question portabilité, c'est un avantage indéniable et les recommandations sont simples: écrire du C++ ANSI. Au sujet de la librairie elle meme, je ne pourrais pas te répondre si la portabilité est à 100%. Mais au fait, en as tu réellement besoin de cette portabilité?

    Attention à la version "free edition" sous linux. Même s'il est tentant de se faire la main dessus, il reste toutefois interdit de faire des applications commerciales avec.

    Question "taille des programmes", je ne pourais pas vraiment te répondre, mais de nos jours, le prix du Gigabit sur disque dur est négligeable...

  • Attention à la version "free edition" sous linux. Même s'il est tentant de se faire la main dessus, il reste toutefois interdit de faire des applications commerciales avec.
    Si tu peux
  • Based on the "Quid Pro Quo" principle, if you wish to derive a commercial advantage by not releasing your application under an open source license, you must purchase an appropriate number of commercial licenses from Trolltech. By purchasing commercial licenses, you are no longer obliged to publish your source code.
    http://www.trolltech.com/products/qt/opensource.html
  • Merci beaucoup pour vos réponses.
    Mais au fait, en as tu réellement besoin de cette portabilité?
    Non, ma cible est essentiellement Windows (c'est tout de même là qu'est le grand public), mais le rêve est de pouvoir ne pas se couper des autres.

    Si je résume vos réponses, QT est un excellent outil.
    Sous Windows il faut au minimum MinGW plus un éditeur de texte, ou Visual C++ ou Borland C++ Builder dont il faut acheter la licence. Et pour toutes les plateformes il faut les licences TrollTech/QT pour un produit commercial non open source.

    Et vous, quels outils (éditeur + compilo) utilisez-vous ?
    Sinon, il est possible d'avoir une version 3 pour Windows en achetant un bouquin (ce qui revient bien moins cher que d'acheter la licence).
    Extra, quel est le titre, où peut-on l'acheter ?
    Question "taille des programmes", je ne pourais pas vraiment te répondre, mais de nos jours, le prix du Gigabit sur disque dur est négligeable...
    Oui, mais distribuer un logiciel qui ne comporte qu'un exe a un avantage en terme de distribution par rapport à un autre qui aurait 50 dll. En plus le téléchargement par Internet met nettement moins de temps si le setup est petit !
    J'ai lu dans la doc qu'on peut compiler les librairies en statique ou en dynamique. J'ai donc visiblement le choix.

    Je vais commencer par installer la dernière Mandrake et voir ce que donne KDevelopp.
  • Je vais commencer par installer la dernière Mandrake et voir ce que donne KDevelopp.
    Amuse toi bien! :-)
  • Extra, quel est le titre, où peut-on l'acheter ?
    C++ Gui Programming With Qt 3
  • Bon, je me permet de donner mon avis sur Qt (je ne connais pas Delphi, donc je ne ferais pas de comparaison).

    Je ne vais pas te faire une présentation de Qt, juste quelques points :
    - Qt est en C++ : un langage qu'il est bon de connaître pour un développeur, et en plus sa hiérarchie de classe est très très bien pensé, ce qui fait qu'on arrive rapidement à prendre ces repères

    - Au niveau de la portabilité, Qt est totalement portable TANT que tu utilises les fonctions et classes de Qt. Concernant les templates, j'ai eu quelques problèmes, notamment sous IRIX (quel -bip- ce -bip- de compilateur CC), mais sinon pas de pb sous Linux, Unix, Windows et Mac (il y a notamment plein de fonction pour la prise en charge des bigendian et litteendian)

    - Au niveau taille, Qt3 n'est composé que d'une seule DLL globale qui fait 4 Mo chez moi. Les programmes sont bien plus légers (pour une petite appli sans trop di'mages bien sûr)

    - Pour déployer sur une plate-forme, c'est relativement simple :
    - soit tu compiles statiquement, et tu n'as qu'un exécutable à fournir
    - soit tu compiles dynamiquement, et il faut aussi fournir la bibliothèque (*.dll ou *.so)

    - Il existe peu de widgets libres, c'est vrai, mais si tu as besoin d'un bon visualisateur de courbes, fait une recherche sur Qwt. Tu peux aussi utiliser des activeX dans tes applis (mais adieu pour la portabilité)

    - Tu peux faire des applications commerciales sous Linux ou autres, si tu restes en GPL (la GPL n'interdit pas la vente, mais oblige à fournir les sources)

    - Au niveau EDI, Qt propose juste un éditeur d'interfaces (très bien fait et très simple), mais je te conseille très fortement d'utiliser Visual C++ (qui est quand même bien fait)

    Pour le reste, c'est à toi de te faire une idée. Le livre que l'on t'a conseillé est très bien et couvre tous les aspects, du débutant au "power-user" (la création de nouveaux widgets est notamment abordée). Pour une initiation, le livre de Jean-Luc est très bien fait et largement suffisant.

    Maintenant, si j'ai un conseille, je pense qu'il vaut mieux attendre Qt4 tant qu'à faire. La nouvelle version apporte énormément de nouveautés et pas mal de réécriture du code qui valent vraiment le coup. Pour le planning, je pense qu'ils vont tenir les délais (jusque là, c'est bon en tout cas). Par contre la 4.0.0 sera certainement un peu buggé, et une 4.0.1 voir une 4.0.2 devrait sortir assez rapidement ensuite.
    Tu peux te faire une idée avec les Technologie Preview, mais la Béta1 ne devrait pas tarder à sortir.
  • [quote]Je vais commencer par installer la dernière Mandrake et voir ce que donne KDevelopp.
    Amuse toi bien! :-)[/quote]

    Attention:

    la version fournie par Mandrake est inutilisable avec les projts QT instabilité redhibitoire !!! par contre ... par contre .. je tiens au chaud une version de Gideon (Pré-version de Kdevelop 3) qui fonctionne au poil:

    kdevelop-030925.tar.gz

    Je n'arrive plus à la trouver sur le net, aussi je l'ai mise sous globe. Sinon je trouve que l'ensemble Gidéon + QT Designer font un excellent environnement type cliquodrome comme on les aime nous autres les paresseux à la mémoire défaillante ....

    Roland


    Avis aux ceusses qui la veulent.
  • Je n'utilise plus Mandrake, mais je suis étonné que tu utilises encore Gideon, la version 'Alpha' de Kdevelop, alors que désormais que la version stable fonctionne depuis plus de 1 an !

    kdevelop

    QT vs Delphi.

    Passer de Delphi au C++, ce n'est pas la meilleure solution ... tu y arriveras quand même au prix de beaucoup d'energie et de patience, mais si ensuite, par malheur, tu essayes [juste] pour rire Python+QT, tu seras triste d'avoir gaspillé ton temps avec C++.

    Alban
  • Je n'utilise plus Mandrake, mais je suis étonné que tu utilises encore Gideon, la version 'Alpha' de Kdevelop, alors que désormais que la version stable fonctionne depuis plus de 1 an !

    kdevelop

    QT vs Delphi.

    Passer de Delphi au C++, ce n'est pas la meilleure solution ... tu y arriveras quand même au prix de beaucoup d'energie et de patience, mais si ensuite, par malheur, tu essayes [juste] pour rire Python+QT, tu seras triste d'avoir gaspillé ton temps avec C++.

    Alban
    La version stable ( fraichement compilée à partir des tarballs ou du dernier CVS) aussi bien que celle des rpm Mandrake est inutilisable sous Mandrake aussi bien la 9.2 que la 10.1 notamment lors des projets QT. J'en fait la démo à qui veut en 3 secondes. Vérifié sur plusieurs machines. Il me semble déjà avoir aperçu quelque chose qu confirmait mon experience sur le forum Kdevelop.
    C'est pourquoi j'utilise cette version de Gidéon qui elle fonctionne parfaitement. Voila

    bye
  • On m'a suggéré Eclipse comme IDE C++. C'est peut-être une solution qui marcherait aussi bien sous Windows que Linux, non ?
    si ensuite, par malheur, tu essayes [juste] pour rire Python+QT, tu seras triste d'avoir gaspillé ton temps avec C++.
    C'est pour faire de la CAO, j'ai peur qu'un langage interprété ne soit pas (encore) au même niveau que du compilé. Note : je ne connais rien à Python.

    Visiblement, il y a des possibilités d'avoir du QT 3.3 sous Windows en GPL. http://kde-cygwin.sourceforge.net/qt3-win32/compile-mingw.php
    (Inconvénient, je n'ai pas réussi à compiler avec MinGW pour le moment, je dois essayer avec Borland)
  • Visiblement, il y a des possibilités d'avoir du QT 3.3 sous Windows en GPL. http://kde-cygwin.sourceforge.net/qt3-win32/compile-mingw.php
    (Inconvénient, je n'ai pas réussi à compiler avec MinGW pour le moment, je dois essayer avec Borland)
    Cette solution est intéressante pour essayer. Mais si tu souhaites utiliser et vendre un logiciel sous Windows basé sur Qt... je ne pense pas que ce soit une solution viable.
Connectez-vous ou Inscrivez-vous pour répondre.