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

C++ Discussion :

[Debat] C++ et IHM


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    screetch
    Invité(e)
    Par défaut [Debat] C++ et IHM
    Bonjour,

    Ceci est un fork du passionnant débat du topic: "C et C++, mythe et réalité".

    Afin de conserver les discussions qui sont de trés grande qualité, mais de faire en sorte que chaque sujet reste disctinct, nous avons décidé de les séparer ansi.

    J'espère que vous comprendrez notre démarche.
    Si vous avez des remarques concernant cette opération, merci de nous les adresser par mp.

    r0d, pour l'équipe de modération.


    Citation Envoyé par Mongaulois Voir le message
    C'est vrai, mais avec le C++, tu peut tous faire (je ne vois pas de contre exemple). Aprés, je pense que le c++ est un trés bon language pour comprendre les différents concept de programmation. Et si tu as bien tout assimiler, passer à un autre langage est plus simple.
    Tu peux tout faire mais peu de chances que ce soit le meilleur outil pour tout.
    Une webapp est mieux ecrite en Java qu'en C++.

    Pour les interfaces graphiques, C# montre clairement sa superiorité.

    C'est justement de cela dont parlais dj.motte, et j'aime beaucoup cette remarque : Se borner à un seul langage que l'on sacralise, c'est bon pour les novices de l'informatique...

    Connaitre plus de concepts est important, y'a pas que la POO dans la vie!
    Dernière modification par r0d ; 22/08/2007 à 20h37.

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Citation Envoyé par screetch Voir le message
    Une webapp est mieux ecrite en Java qu'en C++.

    Pour les interfaces graphiques, C# montre clairement sa superiorité.
    On fait entrer dans la danse les autres langages tant qu'à faire ? Parce que les applis Java sont surtout côté client et même on parle souvent de Java alors qu'ne fait c'est du JS, et côté serveur, c'est plus PHP, Perl, Python, Ruby que Java.

  3. #3
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 288
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par screetch Voir le message
    Pour les interfaces graphiques, C# montre clairement sa superiorité.
    Je m'inscrit en faux. J'ai fais beaucoup de c# ces derniers temps (et je risque d'en faire encore beaucoup), et pour faire une simple boite de dialogue jolie, ok, il n'y a pas mieux. Mais dés que ton ihm nécessite du graphisme (images qui bougent, masques qui changent, etc.), d'une part ça rame pire que java, et d'autre part, c'est extrêmement difficile à optimiser.

  4. #4
    screetch
    Invité(e)
    Par défaut
    Je parle de webapp, pas de pages generees par script. Je parle plutot de Tomcat, Cocoon, etc, qui sont des outils Java. Je suis pas a mon aise dans ce sujet mais je sais que les sites Web sont soit scriptes en PHP/ASP/perl/autres, soit sont geres par des machines virtuelles Java qui repondent aux requetes. Mais l'important est que le C++ n'apparait jamais dans cette liste !

    Niveau IHM j'en fais pas car j'ai horreur de ca, mais en ce qui concerne l'ergonomie et la puissance de l'IHM cree, C# est superieur au C++ en general. Il existe des cas a adapter bien sur selon ce que l'on souhaite faire, mais il me semble que c'est justement le but du topic que de dire que tout BON programmeur ne se cantonne pas a un seul langage et essaye d'utiliser l'outil adapte a son besoin. =)

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Par défaut
    Citation Envoyé par screetch Voir le message
    Niveau IHM j'en fais pas car j'ai horreur de ca, mais en ce qui concerne l'ergonomie et la puissance de l'IHM cree, C# est superieur au C++ en general.
    ben comme ya pas d'IHM en C++ standard, difficile de faire une comparaison...

  6. #6
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Un bon petit Qt tient LARGEMENT tête aux IHM standards Java ou C# je pense, quand même ...

  7. #7
    screetch
    Invité(e)
    Par défaut
    Certes Qt y arrive pas mal mais vous admettrez que c'est extremement lourd! Il y a une phase de pre pre processing, des macros, un outil make specifique, etc.

    Donc CERTES on peut tout faire en C++ MAIS dans ce cas la C# propose en natif tout ce que Qt a du faire a la paluche a grand renfort d'etapes supplementaire de compilation et autres macros.

    DONC C# est un peu mieux adapté a l'IHM (ca a ete limite fait pour) MAIS on peut le faire en C++, c'est juste PLUS LOURD.

  8. #8
    Membre émérite
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Par défaut
    Citation Envoyé par screetch Voir le message
    Je parle de webapp, pas de pages generees par script. Je parle plutot de Tomcat, Cocoon, etc, qui sont des outils Java. Je suis pas a mon aise dans ce sujet mais je sais que les sites Web sont soit scriptes en PHP/ASP/perl/autres, soit sont geres par des machines virtuelles Java qui repondent aux requetes. Mais l'important est que le C++ n'apparait jamais dans cette liste !

    Ah si si, au boulot, j'utilise C++ Builder et Delphi pour écrire une application Web. :-)

    Vive la galère

  9. #9
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    C'est parce que tu n'utilises pas les bons outils.
    Au contraire, C++ est bien plus adapté pour faire ce genre de choses que les langages de script populaires.

    En particulier, du côté performance et extensibilité, en C++, les applications web peuvent réellement être écrites de manière asynchrone, sécurisée, et très réactive, en décomposant l'acceptation, le chargement et la gestion des requêtes.
    Bien évidemment ce n'est possible qu'avec FastCGI ou SCGI.

    Voir par exemple Boost.CGI, bibliothèque en cours de développement.

    Il y a aussi simplement des abstractions de haut niveau simples pour créer facilement des "scripts CGI" en C++, et non pas des serveurs complets, come cgicc.

  10. #10
    Membre émérite
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Par défaut
    tu perds aussi pas mal de temps à recompiler le projet quand tu veux simplement corriger un bug, C++ est p-e bien, mais oublie borland à ce niveau là.

    Je préfère de loin m'amuser à développer en D pour obtenir la même qualité.

    Le problème que j'ai, est que j'utilise de mauvais outils, que mes classes C++ sont partagées avec Delphi, et Java via un binding SWIG.

    D'ailleurs, je me demande si le partage de classes via un connecteur C++->Delphi écrit en C++ est intéressant par rapport à des outils comme COM, & Co.

  11. #11
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Cette après-midi je n'étais pas dispo, sinon je serais intervenu instantanément.

    Premier point : IHM
    Les IHM en C++ c'est pour la plupart des usines à gaz, en exagérant un peu. Seulement, Qt gère ça très bien, avec comme Miles l'a dit un système signal/slot inégalé encore en C++, à ma connaissance.
    De plus, pas besoin d'utiliser moc et compagnie. qmake gère tout ça très bien, et pour peu qu'on ait un bon IDE sous la main, ou un éditeur du genre vim/emacs, on peut automatiser tout ça avec un simple raccourci. C'est bien ce qu'on fait en C# non ? Un designer, puis on clique sur des boutons, bam les fichiers sont générés, un autre bouton et hop tout est compilé. De plus, pas besoin de framework. Installer Qt n'est pas si dur, et sur developpez on couvre quand même 2 groupes d'IDE pour l'installation. Et puis c'est toujours pareil : on compile et on ajoute les répertoires pour les entêtes et le linker. Je ne vois pas ce que C++/Qt a à envier à C#.

    Deuxième point : C++ par rapport aux autres langages (fonctionnels, logiques, à faible typage ...)
    Le C++ supporte ou permet d'implémenter ce qu'il faut pour supporter ces paradigmes. Cependant, ici c'est l'histoire du marteau et du tournevis ... Sauf pour la programmation fonctionnelle. Mais bon les DSEL avec comme langage hôte C++ c'est quand même pas si dur à gérer. Donc si un projet nécessite vraiment d'implémenter un DSEL pour supporter tel ou tel paradigme de programmation, ca n'est pas tellement compliqué. Mais peut-être qu'utiliser un autre langage s'avèrera plus approprié.

    Pour les optimisations du compilo, c'est quand même assez correct ... Les compilos réputés sont assez bons dans ce domaine, et en progrès constant.


    Je tiens à insister sur le fait que le C++ est un langage qui permet tant de choses, et pas de framework derrière. Les meilleures bibliothèques (Boost pour les outils génériques, Qt pour l'IHM avec un gros support XML/Réseau/BDD [...], ...) point de vue technique et utilité combinées à une bonne utilisation du C++, c'est un duo gagnant. Ce n'est pas dur de les intégrer à un projet, elles possèdent tout ce qu'il faut pour faciliter le développement, ... C# et Java, pour ne citer qu'eux, se retrouvent assez vite rattrappés.

  12. #12
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

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

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Aux (avant) dernières nouvelles, tout ce que fait moc est faisable en C++ moderne sans passer par du préprocessing.

    Simplement, à l'époque, et même maintenant pour une plus grande portabilité, ces techniques n'étaient pas utilisables.

    Quant à qmake, on put très bien s'en passer, il n'est en rien nécessaire à Qt.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  13. #13
    screetch
    Invité(e)
    Par défaut
    si on se passe de qmake il faut s'occupper de moc.

    Comment puis je faire pour integrer mes sources Flex/Bison qui sont dans mon projet a un projet Qt ?

    Je ne dis pas que Qt est nul, je dis qu'ils ont implemente eux memes des choses qui sont implementees de base en C#, comme les priprietes et l'introspection.

  14. #14
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Je ne te dis pas de te passer de qmake, mais de le rendre transparent grâce à ton IDE/éditeur avancé.

  15. #15
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    mais beaucoup plus contraignant que ce que permet un langage avec un support direct.
    Ce n'est absolument pas contraignant à utiliser une fois qu'on a conçu les bons outils pour le faire. Concevoir ces outils peut être cependant assez contraignant, mais il s'agit a priori d'une réalisation unique.
    Il est évident, par exemple, que de créer un DSEL pour programmer de manière spécifique n'est pas trivial, même avec Boost.Proto.

  16. #16
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Citation Envoyé par screetch Voir le message
    si on se passe de qmake il faut s'occupper de moc.
    Si tu le fais à la main, avec CMake ou SCons, c'est automatisable.

  17. #17
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    Les IHM en C++ c'est pour la plupart des usines à gaz, en exagérant un peu. Seulement, Qt gère ça très bien, avec comme Miles l'a dit un système signal/slot inégalé encore en C++, à ma connaissance.
    C'était ironique ?
    Parce que bon Qt c'est une grosse usine à gaz qui veut tout faire, ça utilise un préprocesseur bidon (qui peut permettre d'écrire du code non sûr et non type-safe) pour implémenter certains trucs qu'on fait parfaitement en C++, ça utilise des pointeurs dans des interfaces publiques -- souvent à la place de références -- et des allocations dans tous les sens avec une gestion des ressources pas claire (c'est toujours mieux que wxwidgets bien entendu)

  18. #18
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Oui, c'est très criticable. Seulement, FLTK, wx, gtkmm et consorts sont dépassés de loin.
    Mais aux débuts de Qt, les points que tu abordes n'étaient pas si critiqués je pense. L'accent a été mis dessus après je pense.

    Vraiment il est dommage que ça n'utilise pas quelques petites choses apportées et reconnues ces dernières années...

    Sinon, on peut aussi parler de Adam & Eve ... Mais c'est autre chose. Je n'ai jamais essayé par contre. Quelqu'un peut apporter des précisions ?

  19. #19
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Juste pour mettre mon grain de sel.
    wxWidgets tient très bien la comparaison avec Qt quand on a compris que ces deux framework ont une vision très différente de la conception d'IHM.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  20. #20
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Le point négatif est que wxWidgets n'est pas autant objet que ne l'est Qt.

Discussions similaires

  1. Réponses: 26
    Dernier message: 11/08/2013, 19h27
  2. Débat sur les outils de développement RAD.
    Par PsychicStorm dans le forum Débats sur le développement - Le Best Of
    Réponses: 20
    Dernier message: 20/08/2003, 11h29
  3. [DEBAT] Cadre ou Technicien ?
    Par Maître Kenobi dans le forum Emploi
    Réponses: 50
    Dernier message: 05/06/2003, 23h19
  4. [DEBAT]Différence entre pme et grande entreprise
    Par dante2002 dans le forum Emploi
    Réponses: 6
    Dernier message: 02/06/2003, 17h20
  5. Réponses: 13
    Dernier message: 11/05/2003, 13h25

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