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

  1. #1
    Membre régulier

    Inscrit en
    mai 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : mai 2008
    Messages : 72
    Points : 106
    Points
    106
    Par défaut
    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  


    Homme Profil pro
    Inscrit en
    novembre 2008
    Messages
    5 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2008
    Messages : 5 295
    Points : 15 129
    Points
    15 129
    Par défaut
    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
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    avril 2007
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2007
    Messages : 47
    Points : 40
    Points
    40
    Par défaut
    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

    Avatar de johnlamericain
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    août 2004
    Messages
    3 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2004
    Messages : 3 742
    Points : 8 164
    Points
    8 164
    Par défaut
    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.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    mai 2006
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mai 2006
    Messages : 164
    Points : 161
    Points
    161
    Par défaut
    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
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    mars 2004
    Messages
    10 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    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 031
    Points : 13 919
    Points
    13 919
    Par défaut
    +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

    Inscrit en
    mai 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : mai 2008
    Messages : 72
    Points : 106
    Points
    106
    Par défaut
    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

    Avatar de johnlamericain
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    août 2004
    Messages
    3 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2004
    Messages : 3 742
    Points : 8 164
    Points
    8 164
    Par défaut
    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).

  9. #9
    Inactif  


    Homme Profil pro
    Inscrit en
    novembre 2008
    Messages
    5 295
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2008
    Messages : 5 295
    Points : 15 129
    Points
    15 129
    Par défaut
    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


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    août 2008
    Messages
    24 983
    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 : 24 983
    Points : 176 625
    Points
    176 625
    Par défaut
    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é
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mars 2009
    Messages
    544
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mars 2009
    Messages : 544
    Points : 1 026
    Points
    1 026
    Par défaut
    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
    Inscrit en
    juin 2005
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : juin 2005
    Messages : 162
    Points : 277
    Points
    277
    Par défaut
    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
    Profil pro
    Inscrit en
    mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : mars 2007
    Messages : 1 415
    Points : 3 134
    Points
    3 134
    Par défaut
    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
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    mars 2004
    Messages
    10 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    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 031
    Points : 13 919
    Points
    13 919
    Par défaut
    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
    Profil pro
    Développeur informatique
    Inscrit en
    août 2008
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : août 2008
    Messages : 148
    Points : 227
    Points
    227
    Par défaut
    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
    Profil pro
    Inscrit en
    mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : mars 2007
    Messages : 1 415
    Points : 3 134
    Points
    3 134
    Par défaut
    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


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    août 2008
    Messages
    24 983
    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 : 24 983
    Points : 176 625
    Points
    176 625
    Par défaut
    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
    Profil pro
    Inscrit en
    avril 2009
    Messages
    184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2009
    Messages : 184
    Points : 263
    Points
    263
    Par défaut
    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
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    mars 2004
    Messages
    10 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    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 031
    Points : 13 919
    Points
    13 919
    Par défaut
    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

    Inscrit en
    mai 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : mai 2008
    Messages : 72
    Points : 106
    Points
    106
    Par défaut
    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?!

Discussions similaires

  1. Langage POO pour génération de statistiques
    Par boon31 dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 07/08/2007, 19h18
  2. Langage POO pour génération de statistiques
    Par boon31 dans le forum Langage
    Réponses: 5
    Dernier message: 26/07/2007, 12h06
  3. Algo/pascal : Génération d'un langage correspondant à une expression régulière
    Par Invité dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 27/02/2007, 13h17
  4. [TPC][DBGEN][langage C] Génération de données
    Par Xavinou dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 20/05/2005, 22h37
  5. langage de n° génération
    Par nako dans le forum Langages de programmation
    Réponses: 15
    Dernier message: 12/04/2005, 12h17

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