IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Quelques pensées sur Qt 5, quelles seront ses lignes directrices ?


Sujet :

Qt

  1. #1
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 585
    Points
    188 585
    Par défaut Quelques pensées sur Qt 5, quelles seront ses lignes directrices ?
    Qt 5, quelles seront ses lignes directrices ?


    Six ans déjà que Qt 4.0 est sorti, en juin 2005. Depuis lors, beaucoup de choses ont changé dans l'industrie du logiciel : le développement se déroulait principalement pour le desktop, alors que les périphériques mobiles se sont répandus. L'interface utilisateur est passée de la souris au toucher, du statique au fluide. Sept versions mineures depuis cette époque ont permis à Qt de s'approcher des demandes actuelles, avec la sortie de Qt Quick par exemple. La base d'utilisateurs de Qt ne cessant de croître, il faut toujours rester proche des besoins nouveaux des développeurs.

    Ainsi, pour rester à la pointe de la technologie, pour rester un framework leader dans l'industrie en général, Qt doit continuer à se renouveler. Qt 4 a été une évolution, les prochaines versions de Qt devront être dans sa perspective technique. Ces dernières années, de nouvelles fondations ont été esquissées pour la prochaine génération : Qt Quick, QML Scenegraph, Lighthouse, Qt WebKit.

    En plus de son orientation vers l'open gouvernance, voici quelques pistes architecturales pour Qt 5.

    Objectifs pour Qt 5

    Mieux utiliser le GPU, pour obtenir des applications graphiques fluides et performantes, même avec peu de ressources.
    Rendre la création d'application avancées plus facile et plus rapide, avec QML et JavaScript.
    Faire en sorte que les applications connectées au Web soient aussi puissantes que possible, notamment au niveau de l'insertion de contenu Web dans des applications Qt.
    Réduire la complexité et la quantité de code requise pour implémenter et maintenir un port.

    Qt 4.7 contient encore du vieux code qui empêche certaines évolutions, qui empêchent Qt d'être aussi bon que possible pour la création d'applications next-gen. La plupart du code convient encore, alors que certaines parties bloquent le chemin de Qt 4.x.

    Faciliter la migration entre Qt 4 et Qt 5

    Avec Qt 5, il est prévu d'effectuer des changements bien précis dans les API pour abandonner certaines limitations du passé. La difficulté du portage de Qt 3 vers Qt 4 ne sera pas réitérée : la compatibilité des sources sera conservée pour la majorité des cas, alors que, à d'autres endroits, il sera nécessaire de la briser.

    Il est actuellement envisagé de se focaliser sur un petit ensemble de systèmes supportés (Wayland, X11 pour Linux, en plus de Mac OS X et de Windows), le nombre total de plateformes supportées dépendra de l'activité de la communauté, suivant le principe de l'open gouvernance. Les autres systèmes d'exploitation ne seront pas maintenus par Nokia (principalement les UNIX commerciaux). Le but de Qt 5 est de fournir les meilleures fonctionnalités sur chaque plateforme, ce qui implique que l'on va d'abord fournir des fonctionnalités plus différenciées entre les OS, tout en offrant une réutilisation du code aussi efficace que possible pour la majorité des plateformes.

    Développé ouvertement

    Le modèle de développement va complètement changer entre Qt 4 et Qt 5, changement qui se profile depuis déjà longtemps : Qt 4 a principalement été développé par Trolltech puis Nokia, le fruit de ce travail a été publié. Qt 5 se veut développé par la communauté, un projet open source dès le tout début. Il n'y aura pas de différences entre un développeur de chez Nokia et un contributeur externe.

    Vision

    Qt 5 devrait être la fondation d'une nouvelle manière de développer des applications. En offrant toute la puissance de Qt en C++ natif, le focus sera déplacé vers un modèle, où le C++ est principalement utilisé pour implémenter les fonctionnalités derrière Qt Quick. Qt 5 mettra Qt Quick au centre, sans se couper du code déjà existant, il s'agira plus d'une restructuration. Les applications Qt/C++ traditionnelles vont continuer à fonctionner avec Qt 5, même si quelques changements vont être apportés sur les fondements de la manière de développer des applications.

    On devrait s'attendre à ce que toutes les IU soient écrites en QML. JavaScript deviendra un citoyen de première classe de l'environnement Qt : beaucoup de logique, voire toute une application sera écrite en JavaScript, non en C++. Le but est que les développeurs commencent d'abord avec QML et JavaScript pour n'implémenter des fonctionnalités en C++ que lorsque cela est nécessaire. Dans ce cas, toute la puissance des API C++ pourra être utilisée pour implémenter des fonctionnalités plus complexes ou dont l'exécution doit être très rapide.

    Le modèle basé sur QWidget sera conservé, les API liées aussi pour la compatibilité, mais le long terme devrait voir QML comme le futur des interfaces utilisateur pour desktop. La solution retenue sera probablement des composants basés sur QML qui s'intègrent dans le style natif des plateformes desktop.

    Les quatre grands changements architecturaux

    Les premiers changements sont déjà en cours depuis un certain temps, le travail débute pour le reste. La plupart de ces changements pourraient être effectués avant août.

    Changer l'architecture de la pile graphique

    Qt Quick et QML Scenegraph seront au centre de la nouvelle architecture. QPainter sera toujours disponible et est très utile pour bien des choses, mais il ne sera plus utilisé pour l'interface principale. Qt aura besoin d'OpenGL (ES) 2.0 pour fonctionner. Les QWidget seront rendus par-dessus le graphe de scène, pas l'inverse comme actuellement.

    Qt Components et Qt Mobility feront donc partie intégrante de Qt, plus des modules avec un statut spécial.

    Baser tous les ports de Qt sur Lighthouse

    Le projet Lighthouse a été lancé pour fournir une meilleure manière pour abstraire l'intégration au système de fenêtrage que ce qui est actuellement disponible. La maturité est proche avec Qt 4.8, son utilisation sera probablement requise pour Qt 5.0.

    Utiliser une structure de répertoires modulaire

    Beaucoup a déjà été fait ces dernières semaines, le travail est d'ores et déjà visible dans les nouveaux dépôts : http://qt.gitorious.org/qt. Cette modularisation va permettre de faciliter et d'accélérer l'intégration de contributions à Qt.

    Séparer les fonctionnalités liées à QWidget dans une bibliothèque distincte

    Les classes basées sur QWidget sont actuellement très importantes ; le modèle va cependant changer et les IU seront principalement faites avec QML. Séparer les fonctionnalités basées sur QWidget est donc une manière d'obtenir une architecture propre dans Qt 5.

    Beta fin 2011, version finale en 2012

    On ne doit pas trop changer dans les fondations de Qt, on veut aussi rendre facile le portage d'applications vers Qt 5 : on ne peut donc pas changer trop dans la base de code déjà en place. Beaucoup des changements proposés se basent sur la modularisation de Qt, avec chaque bibliothèque partagée dans son propre répertoire. On devra supprimer quelques API rarement utilisées si elles se révèlent contraignantes à maintenir sans empêcher d'avancer. Du code en version beta devrait être disponible fin 2011, avec une version finale pour 2012.

    Billet original
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2010
    Messages : 14
    Points : 41
    Points
    41
    Par défaut
    JavaScript deviendra un citoyen de première classe de l'environnement Qt : beaucoup de logique, voire toute une application sera écrite en JavaScript, non en C++.
    L'horreur !

  3. #3
    Membre averti

    Homme Profil pro
    Inscrit en
    Février 2010
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2010
    Messages : 243
    Points : 398
    Points
    398
    Par défaut
    Citation Envoyé par Kikohs Voir le message
    L'horreur !
    Bah je pense que c'est valable pour les dev du web, genre flash et autres petits jeux gentils.

    Il sera bien sûr toujours possible de faire du C++ pour les applications sérieuses, avec une couche QML-javascript pour l'UI. Ca obligera peut-être à une meilleure séparation entre les deux et une meilleure conception en général.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 198
    Points : 101
    Points
    101
    Par défaut
    J'ai lu les 192 messages du billet original.
    Très majoritairement les développeurs ne veulent pas de QML/Javasript, et ne comprennent pas la dépendance à OpenGL ES. Ils attendaient d'autres évolutions. Les réponses de l'équipe Nokia sont peu convaincantes, d'autant qu'elle ne propose aucun Proof Of Concept de la nouvelle orientation pour des application lourdes.

    Conclusion : vers quelle bibliothèque graphique multi-plateforme en C++ et innovante se tourner ?

    Remarque sur les réponses au billet : les utilisateurs de Qt sont plus polis que le moyenne des développeurs ou alors la modération est très sévère.

  5. #5
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 585
    Points
    188 585
    Par défaut
    Voici même une réponse à tous ces commentaires : http://labs.qt.nokia.com/2011/05/11/responses-to-qt-5/
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  6. #6
    Expert confirmé Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 364
    Points : 5 378
    Points
    5 378
    Par défaut
    Citation Envoyé par Kikohs Voir le message
    JavaScript deviendra un citoyen de première classe de l'environnement Qt : beaucoup de logique, voire toute une application sera écrite en JavaScript, non en C++.
    L'horreur !
    Je n'y connais pas grand chose mais ça me fait penser à Gecko de Mozilla.

  7. #7
    Membre expert Avatar de air-dex
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 654
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 654
    Points : 3 774
    Points
    3 774
    Par défaut
    On sent la patte de Nokia qui cherche à unifier ses deux frameworks de développement, à savoir Qt (C++) et WRT (JavaScript).
    "Ils ne savaient pas que c'était impossible alors ils l'ont fait." Mark Twain

    Mon client Twitter Qt cross-platform Windows et Linux. (en cours de développement).

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 824
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 824
    Points : 1 544
    Points
    1 544
    Par défaut
    Moi je fais confiance ! Et j'ai hâte !
    "Heureusement qu'il y avait mon nez, sinon je l'aurais pris en pleine gueule" Walter Spanghero

  9. #9
    Rédacteur

    Inscrit en
    Novembre 2006
    Messages
    1 272
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 272
    Points : 1 672
    Points
    1 672
    Par défaut
    Perso actuellment le QML c'est plus un jouet qu'unatre chose. Je ne pense pas que Nokia fasse le bon choix de mise sur le tout QML.
    Vous voulez participer aux Tutoriels, FAQ ou Traductions et faire partie de l'équipe Qt de Developpez.
    N'hésitez pas à me contacter par MP.

  10. #10
    Membre expérimenté Avatar de Firwen
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    472
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2009
    Messages : 472
    Points : 1 587
    Points
    1 587
    Par défaut
    Integration de javascript pour des petits développements léger et portable : why not ?.

    La dépendance à OpenGL me semble beaucoup plus embêtante, étant donné que beaucoup de plate-formes ne dispose pas d'accélération 3D performantes
    It's not a bug, it's a feature

  11. #11
    Membre actif Avatar de Causa Sui
    Inscrit en
    Mai 2003
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 133
    Points : 209
    Points
    209
    Par défaut
    Pourquoi encore du Javascript? Et pourquoi pas un vrai langage de programmation comme Common Lisp, ADA, Haskel ou SmallTalk?

    Ensuite il faut encore voir ce qu'on appelle Javascript: on parle de l'aberration moyenâgeuse qui est utilisée par les navigateurs Web ou bien d'un dialecte de l'ECMAScript 5, avec un vrai modèle objet et un typage des données?

  12. #12
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 585
    Points
    188 585
    Par défaut
    Quelques infos supplémentaires sur ce qui sera retiré dans Qt 5 : http://labs.qt.nokia.com/2011/05/12/...evel-the-list/.
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  13. #13
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 585
    Points
    188 585
    Par défaut
    Quelques présentations sur Qt5 à la conférence MeeGo : http://labs.qt.nokia.com/2011/05/13/...go-conference/
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 52
    Points : 60
    Points
    60
    Par défaut
    OpenGL :

    c'est précisé dans l'article que le support du GPU devrait être amélioré ce qui explique en partie la dépendance vers openGL 2.0.
    et puis comment utiliser le QML SceneGraph sans openGL?

    @Firwen : Pour le support de l'acceleration matériel : Pour les plateformes qui ne l'ont pas, comme les ordinateurs (sous linux ) avec de vieilles carte graphiques, cela ne devrait rien changer pour eux mais n'est ce pas un rêve d'avoir des performances et une acceleration matérielle si les pilotes ne sont plus supportés par les fondeurs de processeurs graphique?
    (je me base sur ma propre expérience pour dire ca étant l'heureux possesseur d'une carte graphique ati x600.... )


    QML
    Je suis beaucoup mitigé c'est vrai concernant QML et javascript de manière générale, c'est déroutant pour les habitués du designer....

    Cela ressemble a un jouet pour le moment, mais ca permet je pense de forcer le codeur à réfléchir un peu plus dans un style MVC et peut être une meilleure conception pour certaines applications.

    Si cela permet en plus de moins galérer pour faire des interfaces graphiques sympas, et refilant le boulot à un designer ben pourquoi se priver?

    @Causa tout le monde (ou presque connait) HTML/javascript/CSS, cela permet de prototyper des interfaces graphiques rapidement, donc pourquoi ne pas essayer avec Qt... De plus le javascript est un langage limité et simple d'utilisation. Il ne peux communiquer avec le système (j'ai pas vérifié les interaction systèmes avec le javascript de Qt) et est donc normalement sécurisé. Pour les parties : intéraction avec le système ou code critique c'est toujours Qt qui serait utilisé.
    Je vais ajouter que : meme si avec Qt il y a généralement peu de fuite mémoires, ca limite encore plus ce genre d'erreurs.

    Les dévelopeurs sont réfractaires au changement de manière générale, moi j'attends avec un impatience cette nouvelle mouture

Discussions similaires

  1. Quelques questions sur SAS et ses capacités
    Par joyeux_lapin13 dans le forum Débutez
    Réponses: 4
    Dernier message: 11/03/2011, 10h09
  2. Réponses: 19
    Dernier message: 21/10/2005, 19h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo