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 :

L’avenir de Qt 4.8 passe-t-il par CopperSpice ?


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 L’avenir de Qt 4.8 passe-t-il par CopperSpice ?
    La dernière version de maintenance de Qt 4.8 est sortie, numérotée 4.8.7. Qt 5.0.0 est sorti fin 2012 ; l’un des objectifs était de garder une grande rétrocompatibilité avec les versions précédentes, pour faciliter la transition.

    Cependant, certains développeurs ont préféré effectuer des changements plus profonds dans Qt 4.8, notamment afin d’exploiter les templates C++ et les nouveautés de la norme C++11. Leur travail a donné naissance à CopperSpice, dérivé de Qt 4.8. L’un des points essentiels est la disparition du moc, le compilateur de métaobjets utilisé par Qt depuis ses débuts. Ce générateur de code servait, dans les années 1990, à pallier les manques du C++ à l’époque, qui rendait impossible l’implémentation de systèmes comme les signaux et slots (également implémentés dans Boost.Signals dès le début des années 2000, sans tel outil).

    Ce n’est pas la première fois que l’obsolescence de cet outil était pointée du doigt, malgré les justifications apportées dans la documentation. L’un des défauts couramment rapportés est l’impossibilité d’utiliser les templates avec ce système de métaobjets, mais également la performance (comparaisons de chaînes de caractères à l’exécution) — CopperSpice cite d’ailleurs dans sa documentation une liste d’inconvénients. Récemment, des preuves de concept ou des réflexions avancées ont été proposées pour s’en passer ou l’inclure au niveau du compilateur.

    CopperSpice se défait donc complètement de cet héritage du passé, remplacé par C++11. Par conséquent, du code utilisant CopperSpice n’a pas besoin d’outil externe pour sa compilation, ce qui pouvait rendre les choses plus compliquées pour l’intégration avec du code C++ existant ; le code C++ utilisant Qt peut être transformé à l’aide d’un outil automatique de traduction, baptisé PepperMill. Il intègre également des nouveautés de Qt 5. De même, la compilation se fait avec les GNU AutoTools, certes plus répandus que qmake, mais pas forcément plus modernes (contrairement à CMake, par exemple). L’un des objectifs à plus long terme est de remplacer les conteneurs de Qt par leurs équivalents de la STL (ce qui évite de les recoder).

    Cette manière de procéder pose cependant question : était-il nécessaire de créer un nouveau projet pour « juste » se débarrasser du moc, c’est-à-dire s’écarter d’une grande communauté ? Pourquoi repartir d’une version aussi ancienne (Qt 4.8.2 date de mai 2012), alors que Qt 5 a justement permis beaucoup de nettoyage ? Les développeurs de CopperSpice ont aussi leur propre version de Doxygen pour la documentation (renommée DoxyPress). L’univers Qt Quick ne fait pas partie des fonctionnalités de CopperSpice.

    Sources : annonce de CopperSpice, site officiel, discussion sur Phoronix.
    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 éclairé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    383
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 383
    Points : 658
    Points
    658
    Par défaut
    Quelqu'un a-t-il un retour positif sur CopperSpice avec un projet réel?

    Personnellement, cela me semble fou de se baser sur une telle librairie. Cela sent le non-support dans X années.
    Pourquoi ne pas avoir tenter d’intégrer leurs idées dans le projet original et faire profiter une plus grande communauté?
    Un petit si la réponse convient. Merci.

  3. #3
    Membre chevronné Avatar de Jbx 2.0b
    Homme Profil pro
    Développeur C++/3D
    Inscrit en
    Septembre 2002
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur C++/3D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2002
    Messages : 476
    Points : 1 785
    Points
    1 785
    Par défaut
    Assez d'accord avec RapotOR. On est déjà à Qt 5.5, avec des avancées significatives depuis Qt 4.8 (rien que le support des plateformes mobiles!) , et déjà presque 3 ans de développement. Pourquoi revenir en arrière ?
    Le moc on est tous d'accord pour s'en passer, mais au final, c'est pas la mort non plus. Ça justifie pas un fork à mes yeux en tout cas, et encore moins le passage de projet (pro ou pas) vers un framework pas du tout officiel.
    Qt c'est quand même 20 ans de loyaux services, et l'avenir semble radieux là ou beaucoup d'autres ont échoués.
    Et je suis sur qu'il finira bien par abandonner son moc et switcher vers un C++ 11/14... Peut-être pour Qt 6.0 ?

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur C++
    Inscrit en
    Octobre 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur C++

    Informations forums :
    Inscription : Octobre 2008
    Messages : 242
    Points : 705
    Points
    705
    Par défaut
    Du site officiel :

    The CopperSpice libraries were built using GNU Autotools
    Faire un nouveau projet utilisant un langage moderne avec des outils obsolètes... C'est contradictoire. En plus Qt est très proche de CMake, c'est vraiment n'importe quoi.

  5. #5
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 560
    Points : 15 487
    Points
    15 487
    Par défaut
    L'idée de se débarrasser de cette horreur de moc est très bonne. Le soucis, c'est que c'est les gens de Qt qui devraient faire ça, pas un fork. Je ne comprend pas pourquoi ça n'a pas été fait lors du passage a Qt5, pour le coup, ça aurait vraiment justifié le changement de numéro de version majeure.

  6. #6
    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
    En 2011, Thiago Macieira a développé les raisons qui ont poussé à garder le moc bien vivant : http://www.macieira.org/blog/2011/09/the-future-of-moc/. Les raisons comptent notamment la compatibilité au niveau des sources avec Qt 4 (il faudrait voir à quel point PepperMill transforme le code pour le rendre compatible avec CopperSpice), les besoins d'introspection et les fonctionnalités dynamiques comme le chargement d'extensions.
    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 !

  7. #7
    Expert éminent sénior Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 560
    Points : 15 487
    Points
    15 487
    Par défaut
    Pour les plugins et l'introspection, je m'en passe très bien. Si on pouvait éviter d'avoir a utiliser Moc dans 95% des cas, ça serait déjà pas mal.

    Pour l'introspection, je dirais même que je serais heureux si elle disparaissait. C'est une des fonctionnalités que j’exècre le plus dans les langages modernes.

  8. #8
    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
    Citation Envoyé par Jbx 2.0b Voir le message
    Assez d'accord avec RapotOR. On est déjà à Qt 5.5, avec des avancées significatives depuis Qt 4.8 (rien que le support des plateformes mobiles!) , et déjà presque 3 ans de développement. Pourquoi revenir en arrière ?
    +1. Qt 4 appartient au passé désormais. Pourquoi vouloir persister dessus et refuser de passer à Qt 5 ?

    Citation Envoyé par Jbx 2.0b Voir le message
    (rien que le support des plateformes mobiles!)
    Il vaudrait mieux dire "support officiel des plate-formes mobiles non Nokia". Symbian, Maemo et MeeGo utilisaient Qt 4(.7) quand ils étaient encore en vie. Il y avait également un projet officieux (Necessitas ou un nom dans ce genre) visant à porter Qt 4 sur Android.
    "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).

  9. #9
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 612
    Points
    30 612
    Par défaut
    Salut,

    Citation Envoyé par Markand Voir le message
    Du site officiel :



    Faire un nouveau projet utilisant un langage moderne avec des outils obsolètes... C'est contradictoire. En plus Qt est très proche de CMake, c'est vraiment n'importe quoi.
    Heuu, pourrais tu expliciter ton point de vue

    Bien sur, il n'y a pas de jolie interface à la CMake, avec les autotools, mais, si tu y regardes d'un peu plus près (et quand tu sais utiliser ces outils), je peux t'assurer que le trio autocon / automake / libtool a encore de belles journées devant lui

    A titre personnel, je sais être beaucoup plus efficace avec les auto-tools qu'avec Cmake, par exemple (mais bon, les gouts et les couleurs... hein )
    Citation Envoyé par RapotOR Voir le message
    Quelqu'un a-t-il un retour positif sur CopperSpice avec un projet réel?

    Personnellement, cela me semble fou de se baser sur une telle librairie. Cela sent le non-support dans X années.
    Pourquoi ne pas avoir tenter d’intégrer leurs idées dans le projet original et faire profiter une plus grande communauté?

    Citation Envoyé par Uther Voir le message
    L'idée de se débarrasser de cette horreur de moc est très bonne. Le soucis, c'est que c'est les gens de Qt qui devraient faire ça, pas un fork. Je ne comprend pas pourquoi ça n'a pas été fait lors du passage a Qt5, pour le coup, ça aurait vraiment justifié le changement de numéro de version majeure.
    Savez vous qu'il y a cinq ans de cela, j'ai introduit une requete sur le bugtracker de... (qui c'était, encore, avant digia ) dont le but était de permettre une plus grande compatibilité entre QMap et std::map...

    Ben oui, à l'époque (et, pour autant que je sache, à l'heure actuelle), QMap est limité à deux paramètres template (la clé et la valeur), alors que la std::map permet de préciser le comparateur à utiliser comme troisième paramètre.

    Disons juste que, à l'époque, pour le projet (professionnel !!!) sur lequel je travaillais, cela nous aurais vachement aidé d'avoir cette compatibilité accrue . Mais, lorsque cette proposition a été évaluée, on m'a gentillement répondu "cela va casser la compatibilité binaire... peut être pour la version 5"

    La version cinq est sortie depuis maintenant déjà pas mal de temps; et QMap n'est toujours pas compatible avec std::map...

    Tout cela pour dire que, oui, bien sur, je regrette sans doute autant que vous qu'ils se soient basés sur une version "si ancienne" de la bibliothèque, mais, d'un autre coté, je ne peux m'empêcher de constater qu'il y a (ou qu'il y a eu) un tres fort immobilisme de la de la part des "maisons mères". Et je ne peux m'empêcher de penser qu'il fallait sans doute un fork pareil pour essayer de leur donner un bon coup de pied là ou le corps rejoint la chaise

    Et puis, pensons positif... Cela incitera peut-être la maison mère à bouger un tout petit peu
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/05/2008, 14h29
  2. Réponses: 4
    Dernier message: 19/01/2008, 02h16
  3. Réponses: 3
    Dernier message: 14/03/2007, 12h04
  4. Réponses: 2
    Dernier message: 02/02/2007, 14h53
  5. Réponses: 1
    Dernier message: 07/09/2006, 20h07

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