2010-11-03 9 views
2

La prochaine version de Delphi sera-t-elle disponible avec un support multiplateforme et des composants basés sur Qt? Si oui, devons-nous distribuer avec Qt? (Je ne sais rien à propos de Qt) Comment Qt peut-il aider le monde Delphi, et pourquoi de nombreux programmeurs utilisant C++ ont-ils commencé à utiliser Qt, et qu'adviendra-t-il de VCL?Future Delphi avec Qt

+2

Qt Qt Qt Qt Qt Qt. Pas QT. :-) –

+2

en essayant de résister à changer le titre à 'Future Delphi avec Qt Qt Qt Qt Qt Qt Qt' – Vegar

+0

:-) Je vais essayer d'arrêter d'être anale à ce sujet. –

Répondre

3

doit-on distribuer avec Qt

Probablement. Beaucoup dépend de la façon dont il sera implémenté, et comment Qt sera lié aux exécutables. Il y a aussi des implications intéressantes selon le type de licence Qt utilisé. Le LGPL n'est pas la MPL ou BSD ...

pourquoi beaucoup de programmeurs utilisant C++ a commencé en utilisant Qt avec eux

Qt est une bibliothèque C++ et C++ développeurs utilisent directement. Il est logique de l'utiliser depuis C++ pour écrire des applications portables. Il est beaucoup moins sensé de créer un wrapper sur un wrapper, ce que serait la Qt/VCL. Ils vont prendre cette route parce qu'il est plus rapide de fournir un cadre multi-plateforme de cette façon, mais ils n'ont rien appris des erreurs qu'ils ont faites (CLX, VLC.NET) et le répéteront à nouveau. Ils auront à mapper une bibliothèque écrite avec son design onw à la conception de la bibliothèque Delphi, et cela signifie beaucoup de compromis sans aucun contrôle sur le cadre sous-jacent. À mon humble avis, ce sera un échec comme le CLX et le VCL.NET.

1

Il y aura une nouvelle bibliothèque VCL +, libérée avec la bibliothèque VCL "classique". Pour autant que nous le sachions, cette bibliothèque VCL + sera basée sur Qt 4. Et la VCL "classique" restera, mais uniquement pour Windows.

Comme Qt est basé sur C++, il y aura une DLL contenant une version "plate" de la bibliothèque, prête à être accédée à partir du code Delphi. Cette DLL devra être libérée avec votre application. Puisque Qt peut être lié statiquement, je suppose que cette DLL contiendra tout le code Qt nécessaire, prêt à fonctionner sous Windows/Linux/MacOsX. Mais une autre possibilité sera d'avoir une DLL "plate" qui pourra appeler d'autres Qt dll, qui pourraient être mises à jour exprès, quand une nouvelle mise à jour officielle de Qt sera publiée: il vaudrait mieux ne pas compter sur EMB pour suivre les mises à niveau de Qt, ce n'est pas d'acheter une nouvelle licence Delphi pour avoir accès au framework Qt mis à jour.

Je soupçonne que la façon dont Qt sera utilisé par les programmeurs Delphi sera loin de la façon dont les programmeurs C++ utilisent la bibliothèque. Qt repose fortement sur les macros et la pré-compilation (compiler une application Qt prend beaucoup de temps), tandis que Delphi va s'appuyer sur des composants et une orientation de classe plus classique (qui se compile rapidement). Nous ne pouvons que deviner ce qui a été fait avec la bibliothèque CLX, quand Borland a publié Delphi et Kylix basé sur Qt 2. J'espère qu'ils ont appris de cette expérience (CLX n'a ​​jamais été largement déployé/utilisé). Mais Qt 4 est définitivement beaucoup plus attractif que Qt 2 l'était.

Ce que nous ne savons pas encore, c'est à quel point la VCL + va s'appuyer sur Qt Core. Une partie de la RTL sera-t-elle traduite pour mieux correspondre au design Qt? Par exemple, le multi-threading et les sockets vont-ils appeler les parties correspondantes du Qt Core? Il serait logique, pour une compatibilité multiplateforme, de ne pas réinventer la roue, puisque les ingénieurs de Qt ont déjà fait le dur labeur et le maintiennent ...

1

Eh bien, d'après leur feuille de route précédente, la version actuelle (Delphi XE) était supposé fournir un support multiplateforme; c'est-à-dire, compiler votre projet pour différentes plates-formes (Win, Mac, Linux), ne pas porter l'IDE à ces plates-formes. Mais ils ne l'ont pas fourni, et l'ont reporté aux prochaines versions.

Le current roadmap est toujours vague; il dit qu'ils vont le fournir, mais pas de délai précis (sauf pour l'aperçu du compilateur 64 bits). Embarcadero a reporté les fonctionnalités attendues (par exemple support 64 bits, ou support multi-plateforme) sans en informer correctement les clients à plusieurs reprises, par exemple, la plupart (sinon tous) de leurs clients ne pensaient pas que le support multiplateforme était exclu. XE jusqu'à quelques semaines avant la sortie officielle. Ce ne serait donc pas une surprise pour moi de voir qu'ils remettent à plus tard ou rejettent totalement leur feuille de route actuelle.

Pour Qt, selon Mike Rozlog, chef de produit Delphi, au his interview with Delphi Podcast; leur support multiplate-forme serait basé sur leur précédente bibliothèque multiplateforme (CLX) qui était disponible dans Delphi 6 et Delphi 7. Même il mentionne que la plupart des applications CLX existantes pourraient compiler avec succès en utilisant la nouvelle fonctionnalité multiplateforme. Donc, si cela n'a pas été changé, alors oui, ce sera une solution de base Qt. CLX était également basé sur la bibliothèque Qt. Si elle est basée sur Qt, vous devez déployer également la bibliothèque d'exécution Qt.Sous Linux, ça ne devrait pas être un problème, car pour autant que je sache, la plupart des distributions Linux ont déjà Qt runtime installé. Pour Windows, je sais qu'il n'est pas installé par défaut. Je ne sais pas à propos de Mac OS.

Comment Qt aide le monde Delphi

Qt est un framework multi-plateforme populaire et bien établie qui est détenu et développé par Nokia, et est publié gratuitement (licence LGPL). Delphi est probablement supposé utiliser des widgets Qt GUI pour la prise en charge de l'interface graphique multi-plateforme, mais Qt lui-même consiste en de nombreuses bibliothèques différentes pour presque tout, et juste un cadre graphique.

pourquoi beaucoup de programmeurs utilisant C++ a commencé en utilisant Qt avec eux

Vous devriez demander cela de développeurs C++, mais pour autant que je peux dire; Qt est un framework multiplateforme éprouvé, a un joli concepteur IDE et UI (Qt Creator), peut être facilement intégré avec des outils de développement populaires (par exemple Visual Studio), a un bon support, vous pouvez trouver le port Qt pour presque tous les principaux langages de programmation, et Nokia l'utilise comme cadre logiciel de base pour leurs plates-formes mobiles actuelles et futures (par exemple Symbian^4 et MeeGo).

ce qui se passera pour VCL

se référant à nouveau Mike Rozlog; ils vont garder la VCL comme un framework basé sur Windows, et fournir un nouveau framework pour le développement multi-plateforme qui est similaire à la VCL.

+3

La LGPLv2.1 n'est pas la meilleure licence pour une Qt/VCL, en particulier les sections 5 et 6. Sauf si Embarcadero va de manière commerciale, et obtient une licence commerciale redistribuable. –

+0

Comme quand il l'a fait avec Kylix –

+0

Mais c'était TrollTech et maintenant c'est Nokia.Voyons voir, surtout parce que Qt est en réalité publié sous trois licences différentes, GPLv3, LGPLv2.1 et commercial. –