Question

Pros. et contre? depuis combien de temps l'utilisez vous? Qu'en est-il du jambi?

Était-ce utile?

La solution

J’ai utilisé Qt sur quelques projets que j’ai réalisés en c ++ sur plusieurs plates-formes sur une période de sept ans. Je pense que cela fonctionne assez bien et que je suis certainement plus rapide pour développer une application d'interface graphique décente sur Mac que de marcher dans un langage que je ne connaissais pas (Objective-C) à l'époque.

Je pense que le mécanisme signal / emplacement est un peu génial mais n’est pas horrible. Une fois que vous l'utilisez un peu, ce n'est pas un spectacle. Il est toujours facile de vérifier le rendement de ces connexions, car il est toujours agréable de vérifier le rendement de ces connexions, car votre application ira de son mieux et ne vous dira pas que cela n'a pas fonctionné.

Je n'ai jamais utilisé jambi.

Autres conseils

J'utilise Qt depuis plusieurs années pour le développement commercial et j'en suis très heureux.

L’un des avantages de Qt est qu’il fournit un grand nombre de bibliothèques ainsi que des éléments graphiques (par exemple, analyse XML, threads, mise en réseau), le tout dans un style cohérent et multi-plateforme. Cela signifie que nous avons rarement besoin d'utiliser d'autres bibliothèques, bien que nous utilisions boost pour certaines choses.

L'internationalisation était un autre facteur très important pour nous. Dans une application précédente, basée sur MFC, nous devions maintenir deux versions localisées, pour les deux langues que nous prenons en charge. Dans notre application basée sur Qt, nous n'avons qu'une version.

  • Le système de traduction Qt, utilisant linguist, est facile à utiliser et facilite la prise en charge de plusieurs langues (bien sûr, vous devez toujours traduire les chaînes, ce qui représente beaucoup de travail!)
  • Le système de présentation de l'interface graphique où les widgets se redimensionnent en fonction d'une présentation facilite grandement les choses. Dans différentes langues, la longueur des chaînes est différente. Avec les widgets de taille fixe (comme MFC), chaque boîte de dialogue doit être ajustée pour chaque langue, sinon certaines parties des étiquettes seront coupées. Avec Qt, ils se redimensionnent. Bien sûr, il y a des cas où cela ne fonctionne pas exactement mais où tout est beaucoup plus facile.
  • QString fait tout en Unicode et gère très facilement les conversions de différents codecs.

L’accès à la source est très précieux, bien que ce ne soit certainement pas unique à Qt. À plusieurs reprises, la possibilité de vérifier la source Qt a expliqué un comportement étrange ou donné un indice sur la manière de réaliser quelque chose.

Nous avons trouvé quelques bogues dans Qt, dont certains ont été corrigés après avoir été signalés à Trolltech. Dans d'autres cas, ils ont suggéré de contourner le problème. Celles-ci ont toutes été assez obscures et n'ont pas eu d'impact majeur sur notre développement.

Un des principaux inconvénients de Qt serait le manque de bibliothèques tierces utilisables dans des applications commerciales. Cependant, Qt étant assez complet, cela n’a pas été un gros problème pour nous, bien que cela dépende du type d’application que vous développez.

Je n'ai pas utilisé Jambi non plus.

Voici certains de mes avantages et inconvénients avec Qt:

Avantages:
Multiplateforme
Je sais que celui-ci est toujours utilisé, mais après un va-et-vient entre Windows et Linux avec Qt, il est étonnant de constater le peu de travail que je dois faire pour être opérationnel. Je pense que cela est facilité par le fait que je n'utilise que Vim avec Qt Designer.

QMake
C'est l'un de mes aspects préférés de Qt. Après avoir travaillé dans wxWidgets, FLTK, etc., j'en ai tellement marre de jouer avec différents systèmes de compilation et je ne veux pas créer manuellement mes makefiles. J'utilise actuellement CMake sur autre chose que Qt pour le moment, mais je pense que je vais même lentement passer à Qake. Cependant, il est tellement facile de commencer avec QMake.

QTestLib
J'ai examiné quelques autres frameworks de tests unitaires C ++ et lorsque j'ai créé mes tests à l'aide de QTestLib, cela ressemblait beaucoup à NUnit (C #) et en quelques minutes, j'ai passé plusieurs tests avec succès. J'ai également remarqué qu'il serait très facile de créer mon propre environnement d'intégration continue .

Au plus près de Java et .Net en productivité
La plupart des choses que j'entends / lisais au sujet de C ++ sont les suivantes: "Je peux être plus productif avec Java ou .Net". De mon expérience personnelle, je peux obtenir un prototype d'application s'exécutant dans Qt à l'aide de Vim et de Qt Designer, avant même le chargement d'Eclipse ou de Visual Studio. Je possède également un ensemble de bibliothèques très similaire à Qt, que ce soit en .Net ou en Java. Si ce n’est pas le cas, je peux utiliser le code C ++ existant.


Inconvénients :
Prix ??
C’est le facteur le plus important auquel je puisse penser actuellement. Cependant, le coût en vaut la peine, euh, si je savais combien d’argent je devais économiser sans appeler un représentant. J'ai acheté une licence à l'époque où ils bénéficiaient d'un rabais pour petite entreprise. Cela valait la peine, j'aurais déjà payé trois fois plus et je pense que c'est le prix actuel.

Développer n'importe où avec une licence commerciale
J'aimerais pouvoir développer sur n'importe quelle plate-forme, mais construire et vendre pour une autre plate-forme. Par exemple, développez sous Linux, puis construisez et déployez sous Windows si vous ne possédez que la licence commerciale Windows. D'après ce que je sais, vous ne pouvez développer et créer une application commerciale que sur la plateforme pour laquelle vous détenez une licence.

Immobilisation du vendeur
En quelque sorte, c’est plutôt une arnaque personnelle. Je n'aime pas être lié à un fournisseur spécifique parce que je suis suivi de près par la direction de la société et celle du produit. TrollTech a été acheté par Nokia, est-ce bon ou mauvais, je ne sais pas, mais une entreprise de cette taille peut faire des choses pervers.


Je pense que j'ai fini pour le moment :). Oh, je n’ai pas utilisé Jambi, mais j’ai vraiment envie de faire quelques projets prototypes pour découvrir à quel point il est facile d’utiliser un plugin développé en C ++ avec Jambi. Surtout en utilisant Jambi comme interface Web avec des plugins C ++.

Pour être honnête, je n’ai pas lu grand-chose à ce sujet. C’est donc peut-être impossible ou très facile.

J'ai utilisé Qt dans un emploi précédent. Je n'avais eu que très brièvement le contact avec Qt quelques années auparavant, alors j'étais à peu près un Qt newb.

Quand j'ai commencé, on m'a dit de choisir ma langue et mon environnement, mais un support multiplateforme était souhaitable. J’ai essayé Qt et Java, et j’ai même essayé C # juste pour le plaisir de le faire. Je me suis donné deux jours pour évaluer chaque option.

Peut-être que je suis un peu biaisé par mon passé en tant que développeur C ++, mais après avoir passé du temps sur chaque option, Qt était le seul à montrer des signes d’utilité sans une longue courbe d’apprentissage.

La documentation fournie avec Qt et les exemples d’applications ont facilité la tâche d’un développeur expérimenté, mais débutant, de devenir très rapide. Le prototype / les maquettes de l'application finale avaient été créés à la fin de ma période d'essai. Avec Java / Eclipse, Java / SunStudio et C # / VS.net, j’ai eu du mal à obtenir quelque chose de non trivial à cette époque.

Il a fallu un certain temps pour s’habituer aux signaux / slots, mais ce n’était pas si mal, et j’ai écrit quelques wrappers simples à affirmer lorsque les connexions ne permettaient pas d’empêcher les fautes de frappe stupides d’arrêter l’application. de travailler.

L'autre chose qui m'a plu, c'est que Qt avait presque tout ce dont j'avais besoin. Vous l’appelez - stockage, réseau, interface graphique, threads, conteneurs - Qt a une classe pour le gérer. Quel IMHO est important parce que mélanger des bibliothèques peut parfois causer des problèmes.

Avoir le code source de Qt était un avantage considérable, un avantage simplement, mais cela me permettait également de compiler Qt en utilisant le compilateur et les paramètres de mon choix, y compris une version de débogage à utiliser pendant le développement.

J’ai également trouvé le soutien de Trolltech assez bon. J'ai soulevé quelques bugs sur Qt, dont l'un a été corrigé et publié alors que je travaillais encore sur le projet (travail de 6 mois seulement).

Le seul point négatif que je me souvienne est la difficulté de déboguer des objets Qt (avec VS) - il existe un plugin Qt pour VS qui peut examiner les objets Qt, mais j'utilisais la version gratuite de VS et les plugins ne fonctionnent pas. . Mais ce n’est pas la faute de Qt.

Je n'ai pas utilisé jambi, donc je ne peux pas commenter.

En C ++, vos seules autres alternatives sont MFC et wxWidgets. QT / wxWidgets est en grande partie une préférence personnelle. Je pense que QT est un design épuré avec une bonne documentation.
QT coûte environ un mois de salaire de développeur si vous ne l’utilisez pas pour GPL.

scroll top