Non non j'aime comment est fait le binding Qt, Qyoto, qui se base sur les outils de binding de KDE. Ce que j'aime pas, c'est l'attitude de Nokia qui ne facilite pas vraiment la tâche des binders en proposant une API uniquement en C++.
Mais tout Qt est fait en C++, je pense pas que tu te rends compte de la masse de travail que c'est de faciliter la taches de binders en ayant une autre API, et la maintenance.
Qt est un produit en C++. Nokia développe son produit qui est Qt. PyQt et co sont d'autres produits. C'est pas le rôle de Nokia de faire ça, de faciliter le binding puisque a la base le produit Qt est fait en C++. Les gens se sont lances dans des bindings, très bien mais on peut pas demander a Nokia de supporter un truc qu'il ont pas décide, supporte, voulu.
Et puis honnêtement pourquoi se faire chier a faire des APIs pas géniale pour matcher avec des langages comme C et faciliter le binding. On en veut pas, si c'est pour se retrouver avec des APIs a la GTK ma_fct_qui_s_appelle_super. Non merci!!!! Et puis chaque langage est spécifique ça deviendrai l'usine a gaz.
qui conseille dans la doc des solutions proprio comme s'il existait que des CLI proprios sous un OS proprio
Ils te conseillent pas de l'utiliser bien évidemment.
"Qt's ActiveX and COM support allows Qt for Windows developers to:"
Je pense que la phrase est claire que ca tue le cross platform de ton appli. Ils supportent pas les autres plate-formes (même si y'a Mono sous linux dans l'absolu), c'est juste pas teste. Il a jamais été marque qu'il faut l'utiliser, c'est un hack pour certaines applis Windows qui veulent du .Net/COM et co.
Mais c'est pareil dans tous langages, si on s'appui par exemple sur des libs spécifiques à une plateforme, c'est pas portable. On trouve une palanquée de libs sous Linux qui ne sont pas portées sous Windows par exemple.
Tu t'égares la. Un langage ne s'appuie pas sur des librairies , ERREUR. Un langage peut parfois fournir une librairie (exemple la std que tu dois implémenter sur ta plate-forme si tu veux qu'elle soit C++ compliant). Un framework utilise des librairies.
.Net n'est pas un langage mais un framework qui s'appuie entre autre sur le C# et des librairies (non portables pour certaines).
Qt est un framework aussi s'appuyant sur le langage C++ utilisant des libs mais dont Nokia s'assure qu'elles sont cross platform.
Un langage tu peux écrire la grammaire sans même parler de OS, librairies ou architecture.
On peut écrire la grammaire de Java, C++, C, C#.
Mais hélas pour le C# la frontière devient mince avec le langage proprement parle et un framework. C# inclue désormais tout un tas de concept qui ne collent plus avec l'idée originale et qui en vient a utiliser des libraires. Ex : Linq, syntaxiquement très étrange dans un langage et absolument pas implementable facilement sur nunux.
Donc oui dans l'absolu ActiveQt pourrai dire, ah mais sous Nunux tu as Mono ca marche. C'est tout simplement pas supporte et teste, pas dans les priorité de Nokia (ce que je comprends) et de plus tu n'as aucun contrôle puisque c'est un autre framework.
Supposons que sur mon appli Qt avec ActiveQt sous Windows, je fais du C# .Net avec fct A du framework 3.5. Niquel ca marche. Ah c'est Qt cross platform il disent mono sous linux parfait je recompile sous Nunux et la ça se branche sur Mono mais la fct A est pas implémenté, Craboum. Problème. Je comprends parfaitement que ça soit pas mis en avant car pas supporte et de plus c'est un hack, c'est une feature qui est que pour Windows dans des cas très précis (interfacage) et pour des raisons historique (des clients ont du demander) et cela est absolument pas garanti cross plate-forme. En fouillant un peu tu trouvera des features non cross platform dans Qt, mais le manuel dit : "Utilise les a tes risques et peril".
[^] # Re: Qyoto/Kimono
Posté par Alexis Ménard . En réponse à la dépêche Sortie de Qt 4.5. Évalué à 6.
Mais tout Qt est fait en C++, je pense pas que tu te rends compte de la masse de travail que c'est de faciliter la taches de binders en ayant une autre API, et la maintenance.
Qt est un produit en C++. Nokia développe son produit qui est Qt. PyQt et co sont d'autres produits. C'est pas le rôle de Nokia de faire ça, de faciliter le binding puisque a la base le produit Qt est fait en C++. Les gens se sont lances dans des bindings, très bien mais on peut pas demander a Nokia de supporter un truc qu'il ont pas décide, supporte, voulu.
Et puis honnêtement pourquoi se faire chier a faire des APIs pas géniale pour matcher avec des langages comme C et faciliter le binding. On en veut pas, si c'est pour se retrouver avec des APIs a la GTK ma_fct_qui_s_appelle_super. Non merci!!!! Et puis chaque langage est spécifique ça deviendrai l'usine a gaz.
qui conseille dans la doc des solutions proprio comme s'il existait que des CLI proprios sous un OS proprio
Ils te conseillent pas de l'utiliser bien évidemment.
"Qt's ActiveX and COM support allows Qt for Windows developers to:"
Je pense que la phrase est claire que ca tue le cross platform de ton appli. Ils supportent pas les autres plate-formes (même si y'a Mono sous linux dans l'absolu), c'est juste pas teste. Il a jamais été marque qu'il faut l'utiliser, c'est un hack pour certaines applis Windows qui veulent du .Net/COM et co.
Mais c'est pareil dans tous langages, si on s'appui par exemple sur des libs spécifiques à une plateforme, c'est pas portable. On trouve une palanquée de libs sous Linux qui ne sont pas portées sous Windows par exemple.
Tu t'égares la. Un langage ne s'appuie pas sur des librairies , ERREUR. Un langage peut parfois fournir une librairie (exemple la std que tu dois implémenter sur ta plate-forme si tu veux qu'elle soit C++ compliant). Un framework utilise des librairies.
.Net n'est pas un langage mais un framework qui s'appuie entre autre sur le C# et des librairies (non portables pour certaines).
Qt est un framework aussi s'appuyant sur le langage C++ utilisant des libs mais dont Nokia s'assure qu'elles sont cross platform.
Un langage tu peux écrire la grammaire sans même parler de OS, librairies ou architecture.
On peut écrire la grammaire de Java, C++, C, C#.
Mais hélas pour le C# la frontière devient mince avec le langage proprement parle et un framework. C# inclue désormais tout un tas de concept qui ne collent plus avec l'idée originale et qui en vient a utiliser des libraires. Ex : Linq, syntaxiquement très étrange dans un langage et absolument pas implementable facilement sur nunux.
Donc oui dans l'absolu ActiveQt pourrai dire, ah mais sous Nunux tu as Mono ca marche. C'est tout simplement pas supporte et teste, pas dans les priorité de Nokia (ce que je comprends) et de plus tu n'as aucun contrôle puisque c'est un autre framework.
Supposons que sur mon appli Qt avec ActiveQt sous Windows, je fais du C# .Net avec fct A du framework 3.5. Niquel ca marche. Ah c'est Qt cross platform il disent mono sous linux parfait je recompile sous Nunux et la ça se branche sur Mono mais la fct A est pas implémenté, Craboum. Problème. Je comprends parfaitement que ça soit pas mis en avant car pas supporte et de plus c'est un hack, c'est une feature qui est que pour Windows dans des cas très précis (interfacage) et pour des raisons historique (des clients ont du demander) et cela est absolument pas garanti cross plate-forme. En fouillant un peu tu trouvera des features non cross platform dans Qt, mais le manuel dit : "Utilise les a tes risques et peril".