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 :

Qt : un langage de 4e génération ?


Sujet :

Qt

  1. #1
    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 ?

  2. #2
    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)

  3. #3
    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

  4. #4
    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.
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  5. #5
    Membre habitué
    Citation Envoyé par crazy_inf Voir le message


    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

  6. #6
    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

  7. #7
    Membre régulier
    Citation Envoyé par johnlamericain Voir le message
    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?

    Citation Envoyé par yan Voir le message

    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à?

  8. #8
    Rédacteur

    Citation Envoyé par crazy_inf Voir le message
    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).
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  9. #9
    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.

  10. #10
    Responsable Qt & Livres

    Citation Envoyé par gbdivers Voir le message
    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à.

    Citation Envoyé par gbdivers Voir le message
    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...
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), 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 !

  11. #11
    Membre éprouvé
    Bonjour,

    Citation Envoyé par gbdivers Voir le message

    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++...

  12. #12
    Membre actif
    Je crois que l'on peut comparer ça à Delphi : Delphi n'est pas un langage, mais un environnent de développement dont le langage est le Pascal Objet.

    Qt c'est pareil.

    Il y a un éditeur de code un peu comme l'EDI de Delphi et les librairies un peu à la manière des VCL, ...
    Le langage généralement utilisé étant le C++, comme le Pascal Objet en Delphi.

  13. #13
    Membre expert
    La définition de l'article wikipedia en anglais est plus pertinente je trouve :

    A fourth-generation programming language (1970s-1990) (abbreviated 4GL) is a programming language or programming environment designed with a specific purpose in mind, such as the development of commercial business software
    La question de crazy_inf se révèle donc pertinente, puisqu'un environnment de programmation peut répondre à la définition de langage de 4ème génération.

    C'est une définition à double tranchant. En effet, Qt a bien un but spécifique : le développement d'interface graphiques. Mais ce n'est pas un aspect métier de l'application, alors qu'un langage de 4ème génération est conçu pour fournir aussi (et surtout) les outils pour la partie métier. Je pense donc que QT ne peut pas être considéré comme langage de 4ème génération, car il ne peut pas servir de "socle" métier.
    Find me on github

  14. #14
    Rédacteur

    Citation Envoyé par jblecanard Voir le message
    En effet, Qt a bien un but spécifique : le développement d'interface graphiques. Mais ce n'est pas un aspect métier de l'application, alors qu'un langage de 4ème génération est conçu pour fournir aussi (et surtout) les outils pour la partie métier.
    Faux Qt n'est pas que de l'ihm. Ce n'est qu'une partie. Regarde bien les modules :
    http://qt.developpez.com/doc/latest/modules.html
    la partie GUI n'en est qu'une partie.


    Citation Envoyé par jblecanard Voir le message
    Je pense donc que QT ne peut pas être considéré comme langage de 4ème génération, car il ne peut pas servir de "socle" métier.
    Du coup je dit le contraire

  15. #15
    Membre actif
    Bonjour à toutes et à tous,

    Même si l'on peut émettre de la réserve quand au fait de considérer Qt comme un l4g, force est de constater que lorsque l'on développe avec Qt, on n'utilise pratiquement jamais d'autres bibliothèques (pour ma part ça sera jamais ^^). A vrai dire, on n'utilise plus que la syntaxe du C++ pour la couche métier, même la bibliothèque standard y est réimplémentée, par conséquent, je considère Qt comme un l4g.

    PS : Je me trompe peut être, mais il me semble qu'il y a confusion sur le mot "langage" et que l'on associe automatiquement ce mot à des langages plus bas niveau, or il s'agit bien ici d'un langage haut niveau : 4ème génération et non pas 3 ou moins.

  16. #16
    Membre expert
    Citation Envoyé par yan Voir le message
    Faux Qt n'est pas que de l'ihm. Ce n'est qu'une partie. Regarde bien les modules :
    http://qt.developpez.com/doc/latest/modules.html
    la partie GUI n'en est qu'une partie.
    En effet, je n'ai travaillé sur de gros projets en Qt et n'avais jamais touché à ces libs. Y a-t-il néanmmoins une ligne de conduite générale, une sorte de "philosophie" de développement avec Qt, ou bien s'agit il de modules destinés à rester indépendants ?

    Citation Envoyé par Shaidak Voir le message
    Même si l'on peut émettre de la réserve quand au fait de considérer Qt comme un l4g, force est de constater que lorsque l'on développe avec Qt, on n'utilise pratiquement jamais d'autres bibliothèques (pour ma part ça sera jamais ^^).
    En ce cas, il n'est pas choquant de considérer Qt comme un l4g. Au temps pour moi, j'ai parlé sans assez connaître Qt.
    Find me on github

  17. #17
    Responsable Qt & Livres

    Citation Envoyé par jblecanard Voir le message
    s'agit il de modules destinés à rester indépendants ?

    Les modules de Qt sont prévus pour être utilisés avec QtCore, ils dépendent tous de ce module, mais rarement sur d'autres. Tous peuvent être utilisés indépendemment des uns des autres, si on garde QtCore (qui porte d'ailleurs bien son nom : il est au coeur de Qt, sans lui rien ne tient).
    Vous souhaitez participer aux rubriques Qt ou PyQt (tutoriels, FAQ, traductions), 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 !

  18. #18
    Membre actif
    Et si Qt donnait lieu à un développement semblable à l'apparition de vala pour le monde Gtk ?
    On pourrait imaginer un langage adapté à la lib Qt, optimisant sa productivité, mais transformable en C++ pour espérer limiter les pertes de perf...
    Quand je vois vala qui simplifie le dev Gtk tout en profitant quasi automatiquement de toutes les libs déjà existantes, je me dis qu'il y a quelque chose à creuser...

  19. #19
    Rédacteur

    Citation Envoyé par huit_six Voir le message
    Et si Qt donnait lieu à un développement semblable à l'apparition de vala pour le monde Gtk ?
    On pourrait imaginer un langage adapté à la lib Qt, optimisant sa productivité, mais transformable en C++ pour espérer limiter les pertes de perf...
    Quand je vois vala qui simplifie le dev Gtk tout en profitant quasi automatiquement de toutes les libs déjà existantes, je me dis qu'il y a quelque chose à creuser...
    Qt utilise plutôt d'autre moyen :
    • Javascript avec le moteur de webkit
    • le futur qml.

  20. #20
    Membre régulier
    Bonjour,
    Voilà j'aimerai bien revenir sur les définitions d'un l4g proposées par wikipedia.
    En anglais:
    It became clear that some applications could be developed more rapidly by adding a higher-level programming language and methodology which would generate the equivalent of very complicated 3GL instructions with fewer errors.
    C'est vrai que Qt nous facilite la vie en nous proposant des équivalents à quelque instructions L3G qui nous étaient un peu plus compliquées au paravant.?!
    All 4GLs are designed to reduce programming effort, the time it takes to develop software, and the cost of software development.
    On parle bien évidement sur de gros projet là ( je n'ai pas de l'experience), mais en tant qu'utilisateur de Qt j'imagine bien que le nombre de lignes à coder sera bien moins inférieur en utilisant Qt.?!
    Un autre point à discuter:
    En anglais (toujours sur wiki)

    A number of different types of 4GLs exist:
    Table-driven (codeless) programming.
    forms generators.
    Report-generator programming languages.
    Data management.
    Il veut dire quoi par type là? parce que si on revient sur la définition en français c'est presque ces 4 choses cités que doit offrir un L4G?
    Et si vraiment, il veut dire par ce dernier "type (en fr)", Qt réalise bel et bien certaines de ces propriétés, donc on dira que Qt est un L4G?!

###raw>template_hook.ano_emploi###