Developpez.com - Rubrique Qt

Le Club des Développeurs et IT Pro

Qt : peut-il être considéré comme un langage de 4e génération ?

Le 2010-02-22 16:25:06, par crazy_inf, Membre régulier
Peut-on considérer Qt comme un langage de 4e génération?

Qu'appelle-t-on un langage de "4e génération" ?

C'est un langage qui doit offrir :
  • un langage déclaratif de manipulation de données ;
  • un langage impératif simple (procédural, fonctionnel ou orienté objet) ;
  • un langage de description d'interfaces graphiques avec idéalement un éditeur d'interface ;
  • un langage de description de rapports imprimables avec idéalement un éditeur de rapport ;
  • un langage de programmation événementielle avec idéalement une liaison entre le code et l'interface graphique.
Peut-on considérer Qt comme un tel langage ?
  Discussion forum
33 commentaires
  • gbdivers
    Inactif
    Qt est-il un language ?

    Je dirais non

    Par contre, je dirais que le QML semble etre un language de 4eme génération selon ta définition (un peu à vue de nez, je ne connais très mal QML)
  • Jeromnimo
    Membre du Club
    Je rejoins le post précédent, Qt n'est pas un langage, c'est le C++ / java le langage utilisé... qui ne sont pas des langages de 4ème génération
  • johnlamericain
    Rédacteur
    En effet, Qt n'est pas un langage mais bien une bibliothèque C++. L'ensemble des fonctionnalités qu'elle embarque (EDI, Tools, Designer...) fait de cette bibliothèque un Framework complet téléchargeable et utilisable facilement.
  • atomicJo
    Membre habitué
    Envoyé par crazy_inf


    C'est un langage qui doit offrir :
    • un langage déclaratif de manipulation de données ;
    • un langage impératif simple (procédural, fonctionnel ou orienté objet) ;
    • un langage de description d'interfaces graphiques avec idéalement un éditeur d'interface ;
    • un langage de description de rapports imprimables avec idéalement un éditeur de rapport ;
    • un langage de programmation événementielle avec idéalement une liaison entre le code et l'interface graphique.

    Selon moi, ça ressemble plus à la description d'un framework que d'un langage
  • yan
    Rédacteur
    +1, c'est un framework que tu décrit
    * un langage déclaratif de manipulation de données ;
    c'est à dire?

    * un langage impératif simple (procédural, fonctionnel ou orienté objet) ;
    Qt est écrit en C++

    * un langage de description d'interfaces graphiques avec idéalement un éditeur d'interface ;
    Qt fournie ce qu'il faut

    * un langage de description de rapports imprimables avec idéalement un éditeur de rapport ;
    Peut tu donner un exemple. Pour l'impression, Qt ne fournie pas d'éditeur.

    * un langage de programmation événementielle avec idéalement une liaison entre le code et l'interface graphique.
    Qt fournie ce qu'il faut(event loop,signal/slot,...). Mais je comprend pas la partie en gras
  • crazy_inf
    Membre régulier
    Envoyé par johnlamericain
    En effet, Qt n'est pas un langage mais bien une bibliothèque C++. L'ensemble des fonctionnalités qu'elle embarque (EDI, Tools, Designer...) fait de cette bibliothèque un Framework complet téléchargeable et utilisable facilement.
    D'abord merci pour vos réponses...
    Donc, je reformule ma question d'une autre façon en disant: Que-ce qu'il lui (Qt) manque pour devenir un langage?

    Envoyé par yan

    Qt fournie ce qu'il faut(event loop,signal/slot,...). Mais je comprend pas la partie en gras

    Merci pour ta réponse.
    En fait, c'est une définition que j'ai dû avoir par le biais du site Wikipedia et c'est presque la même avec celle qui nous a été fournie en classe
    En tout les cas, la phrase celle où t'as cité en gras je n'arrive pas à la piger aussi...mais on peut toujours éssayer de comprendre, on sait que GUI faites en Qt ont une interaction implicite avec le système d'éxploitation (avec les thèmes du OS plutôt )...j'ai dit une bêtise là?
  • johnlamericain
    Rédacteur
    Envoyé par crazy_inf
    Donc, je reformule ma question d'une autre façon en disant: Que-ce qu'il lui (Qt) manque pour devenir un langage?
    Pourquoi veux-tu que Qt devienne un langage ?
    Je ne pense pas qu'un framework peut devenir un langage, tu as des exemples contraires ?
    J'irais même plus loin de disant que je ne pense pas qu'un framework à l'intention de devenir un langage (ni la prétention).
  • gbdivers
    Inactif
    Il ne faut pas hésiter à cliquer sur les liens

    Un L4G ou langage de quatrième génération est un langage de programmation...
    Un langage de programmation est un langage informatique...
    On appelle langage informatique un langage formel...
    on désigne par langage formel un mode d'expression (...) d'un ensemble de mots (...) d'une sémantique.
    Pour Qt, la sémantique et les "mots" de base ne sont pas définit par Qt mais par C++. C'est donc C++ le language.

    Pour faire un analogie avec la "vraie vie", ton manuel de grammaire et ton dictionnaire larousse forment le langage de base (C++ ici) et ton cours d'informatique et ton dictionnaire des termes informatiques constituent un complément (Qt ici)

    Donc pour répondre à ta question "Que-ce qu'il lui (Qt) manque pour devenir un langage?", je dirais... un langage !

    La question est alors : peut-on considérer C++/Qt comme un langage de 4eme génération ?
    Pareil, je ne pense pas. Qt peut être utiliser avec d'autres langages.

    je ne pense pas qu'un framework à l'intention de devenir un langage
    J'irai même plus loin : ce n'est pas forcement intéressant pour un framework de devenir un langage. Beaucoup de "gros" framework peuvent être utilisés par plusieurs langage, ce qui facilite son utilisation.
  • dourouc05
    Responsable Qt & Livres
    Envoyé par gbdivers
    La question est alors : peut-on considérer C++/Qt comme un langage de 4eme génération ?
    Pareil, je ne pense pas. Qt peut être utiliser avec d'autres langages.

    On parle bien ici du couple C++/Qt, en faisant totale abstraction de tous les autres bindings existants. À ce titre, on peut dire que majoritairement oui :
    - C++ fait de l'impératif objet ;
    - Qt fournit des GUI, que l'on peut déclarer avec QML, avec un éditeur graphique pour QML ;
    - Pas de rapports de base à ma connaissance, mais on peut sans problème créer les classes nécessaires et les imprimer (mais est-ce le but original ? pas du tout !) ;
    - Les évènements : on pourrait considérer les signaux-slots comme un équivalent, donc oui.

    Par contre, le langage déclaratif de manipulation de données, je ne vois pas trop ce qu'on veut dire par là.

    Envoyé par gbdivers
    J'irai même plus loin : ce n'est pas forcement intéressant pour un framework de devenir un langage. Beaucoup de "gros" framework peuvent être utilisés par plusieurs langage, ce qui facilite son utilisation.

    C'est pour ça qu'on a Vala pour la GLib, et, par extension, GTK. Il s'agit d'un langage un peu bizarre, je dirais : c'est une sorte de surcouche du C, qui permet de faire de l'objet sans devoir aller chercher loin dans le langage. Ça permet d'avoir un langage propre, le Vala, et de garder exactement la même API, sans devoir se priver des bindings. Qu'est-ce qui empêcherait PyQt de continuer à binder Qt s'il change de langage ?

    Qu'est-ce qui pourrait pousser Qt à changer de langage, sans penser dans un premier temps à tous les problèmes engendrés par un tel changement ?
    - La possibilité d'avoir un support équivalent sur toutes les plateformes (des parties de code pourraient être franchement ismpplifiées en supprimant le support d'anciens compilateurs, d'anciens frameworks...) ;
    - Le contrôle du langage : pas besoin de tricher pour inclure une nouvelle structure comme le foreach, on pourrait faire très exactement la même chose que le PHP (càd avoir un mot-clé as, qui est bien plus explicite qu'une virgule dans ce cas précis) ;
    - L'intégration parfaite : pour écrire dans une sortie standard C++, il faut commencer par surcharger des fonctions pour qu'elles prennent en entrée les types Qt...
  • bretus
    Membre éprouvé
    Bonjour,

    Envoyé par gbdivers

    Donc pour répondre à ta question "Que-ce qu'il lui (Qt) manque pour devenir un langage?", je dirais... un langage !
    Avec la puissance du pré-compilateur, la question se pose au moins de savoir si c'est une extension du langage C++.

    qmake transforme quand même des .ui, des bon vieux xml sans c++ en fichier c++ ( traduction de code ).

    S'adjoint à ça l'ajout de mot clef dans le langage c++ : slot et signal, ainsi que Q_OBJECT qui est plus qu'une macro.

    Alors, langage de 4ième génération ou pas, ce n'est pas seulement un ensemble de classe et de bibliothèque en C++... Il y a quand même une sur-couche pour mettre en place des mécanismes qui serait un peu lourd avec la "grammaire" actuelle du C++...