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 :

Le moc : a-t-il toujours une raison d'exister ? [Débat]


Sujet :

Qt

  1. #1
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 617
    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 617
    Points : 188 587
    Points
    188 587
    Par défaut Le moc : a-t-il toujours une raison d'exister ?
    Outil adoré/détesté qu'est le moc, il est souvent reproché à Qt : pourquoi diable un tel framework a-t-il besoin d'un outil supplémentaire de précompilation ? Aucun autre n'en a besoin ! Les fonctionnalités fournies par cet outils sont aussi possibles sans (wxWidgets pour le système de signaux et de slots, CAMP pour l'introspection, etc.).

    Sa présence conduit à l'existence d'autres outils : notamment, QMake pour l'appeler au bon moment lors de la compilation, des plug-ins spéciaux pour les EDI, etc.

    Mais qu'en est-il réellement ?

    Au début, il servait aussi à aplanir le terrain : les compilateurs avaient un respect très aléatoire de la norme, cet outil permettait l'égalisation du terrain, donc une utilisation plus vaste du framework. Ça, c'était Qt 1, en 1991. Qt 4 est sorti en 2005, disposant toujours de la bestiole. Pourtant, les compilateurs sont plus respectueux de la norme (notamment, en 2005 est sorti Visual Studio 2005, première version disponible partiellement disponible avec Visual Studio 2005 Express mais aussi troisième version à respecter la norme, la première étant Visual Studio 2002).

    Reste la question de l'introspection : les compilateurs de l'époque n'étaient certainement pas aussi souples que les actuels. Admettons. Quid de CAMP, qui torture les compilateurs actuels mais fonctionne à merveille ? Il fonctionne à merveille sur VC7 et sur GCC 3.4.5, soit les versions les plus anciennes de ces deux compilateurs encore supportées par Qt. C'est donc possible.

    À quoi sert-il donc ? A-t-il encore une utilité réelle ?
    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
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par dourouc05 Voir le message
    wxWidgets pour le système de signaux et de slots

    Ben c'est pas la même chose. C'est comme comparer les signal/slot de boost et de Qt, ce n'est pas la même chose. Le but n'est pas le même et il ne propose pas la même chose.

    Pour l'introspection, c'est intimement liée et c'est un peu le même problème, c'est ne pas vraiment comparable. C'est l'objectif qui est différent.

    De plus rien n'empêche d'utiliser d'autre signal/slot ou introspection plus adapté a nos besoin en parallèle de Qt.


    Moc est là pour générer du code que l'on ne veut pas faire, simplifier l'écriture du code et pour le bon fonctionnement d'un ensemble de fonctionnalité interne. A peu prés tous les générateur de makefile le supporte sans problème. Les générateurs de code sont assez courant. Ce n'est pas aussi obscure.

  3. #3
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 617
    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 617
    Points : 188 587
    Points
    188 587
    Par défaut
    Citation Envoyé par yan Voir le message
    Moc est là pour générer du code que l'on ne veut pas faire, simplifier l'écriture du code et pour le bon fonctionnement d'un ensemble de fonctionnalité interne. A peu prés tous les générateur de makefile le supporte sans problème. Les générateurs de code sont assez courant. Ce n'est pas aussi obscure.
    Justement, n'y aurait-il pas d'autres manières de procéder que d'utiliser un outil propriétaire ? Les avantages de cet outil sont-ils suffisants pour qu'une autre solution ne puisse pas être envisagée ?*
    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 !

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par dourouc05 Voir le message
    Justement, n'y aurait-il pas d'autres manières de procéder que d'utiliser un outil propriétaire ? Les avantages de cet outil sont-ils suffisants pour qu'une autre solution ne puisse pas être envisagée ?
    Vue le fonctionnement de Qt pour moi non. Y as déjà eu un gros débat ici :
    http://www.developpez.net/forums/d88...es-superobjet/
    C'est sûr le super Object mais le moc découle du même problème.

    Enlever le moc obligera le développeur à faire beaucoup de chose en plus. Comme de décrire tout les meta-data à la main ou faire attention sur les signaux (qui serais une classes pour le coup).

    Travailler avec des template n'est pas forcement friendly. Sans compter qu'il y as des choses qui sont impossible à faire.


    De plus, le fait d'avoir le moc permet d'éviter qu'un développeur ne fasse n'importe quoi . Surtout que plusieurs fonctionnalités importantes sont inter-dépendant entre eux ( signal/slot, metadata, eventloop, ...).

    Je trouve qu'il explique bien leur points de vue ici :
    http://qt.developpez.com/doc/4.6/templates/

  5. #5
    Rédacteur
    Avatar de Amnell
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2009
    Messages
    1 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 840
    Points : 5 545
    Points
    5 545
    Par défaut
    J'ajouterai à la suite du dernier lien de Yan celui-ci :

    http://lists.trolltech.com/qt-intere...ad00000-0.html
    N'oubliez pas de consulter la FAQ Qt ainsi que les cours et tutoriels C++/Qt !

    Dernier article : Débuter avec les Enlightenment Foundation Libraries (EFL)
    Dernières traductions : Introduction à Qt Quick - Applications modernes avec Qt et QML
    Vous cherchez un livre sur Qt 5, Qt Quick et QML ? Créer des applications avec Qt 5 - Les essentiels

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/09/2007, 15h14
  2. [W98 SE]Explorateur de fichier ouvre toujours une nouvelle fenêtre
    Par leportois dans le forum Windows 2000/Me/98/95
    Réponses: 3
    Dernier message: 02/08/2007, 15h45
  3. Réponses: 4
    Dernier message: 24/08/2006, 12h19
  4. Fonction ne retournant pas toujours une valeur
    Par mastochard dans le forum C
    Réponses: 14
    Dernier message: 25/05/2006, 12h13

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