Qt en sursis ?

Arnaud de la Grandière |
Qt est une bibliothèque logicielle libre en C++ (devenue propriété de Nokia) qui fournit un certain nombre de fonctionnalités d'ordinaire dévolues à l'OS (interface graphique, gestion réseau, accès aux données, etc), afin de permettre un déploiement multi plate-forme rapide (Windows, Linux, Mac OS X, etc), par le biais d'une simple compilation. Elle est utilisée par des logiciels tels que Mathematica, Google Earth, ou encore Photoshop Elements.

Avec la mise en retrait de Symbian au profit de Windows Phone 7, de nombreux membres de la communauté se sont inquiétés de l'avenir de Qt chez Nokia. Aron Kozak indique sur le blog dédié à Qt que la bibliothèque a encore un peu d'avenir. Qt continuera d'exister sur Symbian, MeeGo et sur les plateformes "non-mobiles". En résumé : pas de Qt sur Windows Phone 7, ce qui risque d'avoir un impact non négligeable sur la pertinence de la librairie en tant que sésame universel, et qui décevra ceux qui se sont investis dessus avec le mobile en ligne de mire. Il faudra également réécrire les logiciels qui en tirent parti pour les faire fonctionner sur Windows Phone 7.

avatar Florent Morin | 

Dommage car 10 fois plus portable que Java par exemple.
Cependant, le projet KDE repose dessus donc la communauté du libre pourra lui donner une seconde jeunesse.

avatar Kyro | 

Plus portable que java ?

Qu'est-ce qu'on peut pas lire.

avatar Lio70 | 

Si vous voulez etre professionnel, apprenez a vous servir de Visual Studio et des langages qu'il couvre lorsque vous developpez pour Windows et Windows Phone, apprenez a vous servir d'Xcode de la meme maniere lorsque vous developpez pour MacOS et iOS. Si vous voulez developper pour d'autres plateformes, apprenez l'esperanto.

avatar tomate | 

@flomo

Deux possibilités: soit tu ne sais pas de quoi tu parles, soit tu t'es mal exprimé. Dans les deux cas ton commentaire laisse à désirer...

Java est juste par définition portable: "write once, run everywhere" pour autant que tu aies une JVM à disposition. Maintenant si tu parles d'intégration avec l'OS ("sensation" d'application native), même là il y'a matière à discuter: tu peux écrire du code en Qt qui va faire que ton appli ressemble à du Windows sur Mac (on trouve quelques exemples). Il y'a forcément un effort à faire pour parvenir à intégrer une appli dans Mac OS X. Ce même effort peut être fait en Java. On peut même appeler du code natif.

Seul avantage de Qt: ton code est compilé en natif donc pas besoin de JVM, mais par contre c'est du C++ qui demande un effort plus grand au niveau dévelopement et d'autre part tu dois maintenir et compiler ton applis pour toutes les plateformes. Pas tout le monde est d'accord de faire cet effort. Je dirais que tout dépend qui est le publique cible.

avatar Florian Innocente | 

Essai

avatar Florian Innocente | 

Test !!

avatar magicstick | 

@innocente

Oui, ca marche, maintenant sortez la cette app pour iPad!! ;-)

avatar boulifb | 

@Lio70:
Enfin une réaction intelligente... Je commençais à désespérer!
Rien ne vaut le natif!

avatar oomu | 

mettons un peu tout le monde d'accord :

QT permet "+ de portabilité que java" dans le sens où QT existe sur de nombreuses plateformes, est un produit solide et reconnu. Il existe quelques applications commerciales et libres à la fois mac/windows/linux/autre grâce à QT.

JAVA a échoué dans son but originel : solution universelle, "compiler une fois, exécuter partout". C'est maintenant devenu une excellente fondation pour des logiciels d'entreprises sous unix/linux.

QT, lui, d'une manière différente (compiler avec QT adapté au système visé), est une solution qui marche bien, est assez élégant à programmer et s'intègre nettement mieux aux interfaces des systèmes sans trop compromettre la portabilité du code c++

Bref, quand on veut faire un bon logiciel multiplateforme facilement, QT est actuellement une très bonne solution.

-
QT n'a aucun avenir sur nokia, peu importe le baratin tordu des dirigeants de nokia. On verra quand ce qui reste de te Trolltech sera démonté.

avatar canola | 

Qt est une bibliothèque logicielle libre en C++ (devenue propriété de Nokia)

Comment un logiciel libre peut-il devenir la propriété d'une entreprise? Je catch pas. Peut-être est-ce plutôt un logiciel propriétaire open source. Ça c'est possible.

Car qui dit libre, dit fork.

avatar YannK | 

Java a beau avoir comme motto "Write once, run everywhere"

En tant que end-user, quand je vois des applis Java tourner sous OS X, je pense juste que c'est de la merde tellement c'est lent et pas adapté à la plateforme ^^

Par contre, quand le dev en est passé par QT, bizarrement ça marche un peu mieux et ça rame beaucoup moins…

Java a beau être plus portable, y'a de nombreux cas où ça se conclue en grosse merde (pour diverses raisons, notamment certaines qui ne sont pas dues à Java en lui même, très certainement)
Du coup je comprend pourquoi Flomo pense ça, parce que la théorie est souvient bien différente de la réalité…

Après je parle que du côté utilisateur grand public, certainement pas le côté pro qui utilise Java comme fondation pour ses applis serveurs.
Mais… c'est juste une peine sans nom à utiliser pour l'utilisateur final, limite vision d'horreur de logiciel bâclé. Tout dev sérieux qui a du respect pour les utilisateurs s'interdirait de leur infliger ça s'il vise le grand public.

avatar clampin | 

J'aimerai qu'on rectifie un peu... Qt != QT... QT c'est QuickTime et la bibliothèque de Nokia s'écrit Qt (le t en minuscule est important).

Voilà, c'est ma contribution qui n'est pas totalement off topic

avatar biniou | 

Qt n'est pas une bibliothèque mais un Toolkit, c'est à dire un kit d'outils qui comprend des bibliothèques logicielles, un "méta-compilateur", un IDE et un Designer. (Si je n'ai rien oublié). Il ne gère pas l'OS, il ne gère pas le réseau (comme dit dans l'article). Il a une implémentation générique des Sockets et plus généralement des communications réseaux. Il ne permet pas la gestion des réseaux WiFi ou la configuration du réseau Ethernet.

L'implémentation même de Qt, n'est pas sans rappeler le clin d'oeil à Java. Il permet une implémentation Java-Like en C++. Mais attention, rien n'est plus rapide que les itérateurs pour les conteneurs sont beaucoup plus rapide que la version java like de Qt. De toute façon, pour reprendre ce que dit Stroustrup : utilisez le plus possible la STL, elle est optimisée !

Il ne faut pas juste une simple compilation. C'est surtout un ensemble de bibliothèques et un "méta-compilateur" (sans en plus parler des wrappers qui sont des "bibliothèques" un peu particulières). Qu'est-ce que c'est un "méta-compilateur" ? Ce n'est pas un compilateur. C'est plus spécifiquement un "meta-make" (comme CMake très utilisé dans le domaine médical : ITK, GTK, ... : merci KitWare). C'est à dire un outil de méta-méta-compilation qui permet de créer un "Makefile" qui lui servira à la compilation (ou un projet VisualStudio). Make est un méta-compilateur parce qu'il se place au-dessus du compilateur.

Alors Qt va-t-il mourir ? Non. Un jour ? Sûrement pas. Et ce pour plusieurs raisons :
1) Il est disponible en deux versions : Commercial et Libre. Et il y a deux version LGPLv2.1 (strict donc non compatible avec GPLv3) et GPLv3. Il est donc toujours possible de faire une fork à partir de la dernière version disponible (ou antérieure).
2) Il est utilisé par des logiciels commerciaux comme Google Earth, Skype, ... cf. l'article. Il permet un déploiement facile de ces applications avec un minimum de code spécifique (et oui, il y en a presque toujours).

avatar biniou | 

Et oui le coût de développement de 3 (voir plus) implémentations spécifiques est cher (en ressources) et c'est là que Qt montre son intérêt.
3) Il est largement utilisé en recherche, dans le domaine médical, dans l'aérospatial, la défense, l'industrie automobile, ... Il supporte une pléiade d'OS allant de Mac OS X, à des Linux embarqués ou encore QNX. Pourquoi s'imposer un JVM quand on peu directement implémenter avec Qt ? Surtout avec l'affaire autour de la JVM Dalvik. Il supporte les architectures ARM, MIPS, x86 et PowerPc.
4) KDE est basé sur Qt, il est intrinsèquement lié à Qt. Avant que Qt ne disparaisse, il faudrait que KDE disparaisse. Ubuntu utilise aussi massivement Qt.

Je pense que ce sont assez de raisons qui explique pourquoi Qt ne va pas mourir aujourd'hui ni demain. Qt est une merveille informatique. Trolltech était une excellente société. Si Nokia n'investit plus dans le logiciel, quelqu'un d'autre rachètera la partie Trolltech de Nokia.

C'est un peu comme quand on disait que Sun allait disparaître. Dans un sens oui, dans l'absolu non.

avatar biniou | 

Et pour ce qui est de la différence de vitesse entre Java et C++. Il n'y a rien qui prouve un différence significative (au sens statistique du terme) entre l'exécution d'un code Java et d'un code C++. C'est sûrement un des plus gros préjugé non fondé de l'informatique. Surtout avec le compilateur JIT. Et il y a eu assez d'articles SCIENTIFIQUES sur le sujet et pas de simple billets de blogs à 2 francs 50.

CONNEXION UTILISATEUR