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

Débats sur le développement - Le Best Of Discussion :

Quel avenir du C++ par rapport au C# ou à Java ?


Sujet :

Débats sur le développement - Le Best Of

  1. #161
    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 : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Je suis de l'avis de Luc, d'ailleurs il y a pas mal de critiques sur la mailing list de Qt par rapport à ce COW qui coûte en temps, même si c'est moins, il coûte tout de même - en faisant un profiling de certains bout de mon code, on ne voit que les incréments et décréments atomiques, preuve qu'ils coûtent même beaucoup -. C'est pas astucieux, c'est classique - voir Stutter, toujours encore puisqu'il fait un comparatif de temps d'exécution avec toutes les méthodes -
    Et je n'ai pas non plus compris pourquoi ils ont réimplémenté une STL, en plus souvent plus lente que celle de GCC. Parce que certains compilos supportés n'en avaient pas d'adéquat ? Peut-être. Mais alors au moins garder celle native quand elle marche mieux

  2. #162
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    Je persiste a penser que Qt a pris la bonne decision.
    Par exemple un QImage en valeur de retour n'aura pas de surcout.
    et c'est aussi beaucoup plus lisible ...

    et puis aussi les conteneurs de Qt sont garantie multiplateforme,
    je sais qu'il y avait eu des problemes entre les differentes STL.
    Le fait qu'ils soient un peu moins performant ne me derange pas vraiment,
    s'il y garantisse un souci de portabilité en moins.

    Oui je sais je suis pro-Qt mais en meme temps j'ai tellement été agreablement surpris ! je fais de l'opengl avec, et ca marche partout. C'est quand meme super.

    A+

  3. #163
    Rédacteur
    Avatar de cladsam
    Profil pro
    Inscrit en
    Août 2003
    Messages
    1 785
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Août 2003
    Messages : 1 785
    Points : 2 436
    Points
    2 436
    Par défaut
    juste au passage... on parle de l'avenir de C++ ou d el'avenir de Qt???
    Chef de Projet SAP. Certifié Prince2 Practitioner
    ---------------------------------------------------
    Anakin Skywalker turned to the Dark Side after his failed attempt to upgrade R/2-D2 to R/3-D2.

  4. #164
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    En fait Je disais que l'avenir du C++ en entreprise passait par Qt...
    et ca a divergé apres ....
    toutes mes excuses

  5. #165
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    et en meme temps j'ai montré les resultats d'un benchmark,
    qui montre que C# n'est pas si loin que ca du C++ ...
    d'ou mon sentiment que le code natif n'est peut-etre plus tellement justifiable... du moins en entreprise pour des programmes de gestion ... et meme plus ...

  6. #166
    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 : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Tu as fait comment le port vers le C++ ?

  7. #167
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    Je l'ai ecrit en C++ en premier ... sans Qt
    Puis en Java, reecriture totale.
    puis un port vers C#

    le programme charge un model 3d en memoire. Il y a donc beaucoup d'intersection a trouver entre une ligne et un triangle, trouver la tangence sphere/ligne, sphere/sommets, sphere/plan...

    Ce n'est pas un benchmark avec quelque boucles, mais reellement une application concrete.... Il n'a pas d'interface graphique, juste le noyau.

    voila...

  8. #168
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    J'oubliais un grand avantage de C++, surtout avec les proc. multi-coeurs:
    OpenMP

    c'est tout simplement quelque chose que j'attendais de pouvoir paralleliser "simplement" par de simples directives...

  9. #169
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Citation Envoyé par epsilon68
    Je persiste a penser que Qt a pris la bonne decision.
    Par exemple un QImage en valeur de retour n'aura pas de surcout.
    et c'est aussi beaucoup plus lisible .
    Un type image a typiquement une sémantique d'entité en ce qui me concerne. Si on veut simplifier l'écriture, on remplacer le shared_ptr<Image> pour une enveloppe Image qui a les mêmes mécanismes qu'un shared_ptr et qui fournit des manipulateurs directement accessibles (-> opérateur.() et non operateur ->()). Le COW n'est pas nécessaire ici. Voire je trouve qu'il complique les sémantiques. Mais bref. Ce sont des débats C++iens qui sont à 100000 lieues des problématiques en Java ou C# (vu les absences de sémantiques autre qu'entité pour les types non primitifs ; quoiqu'en C# les types sur les piles ont peut-être bien des arrières goûts de sémantique de valeur)

    Pour la prog concurrente, qu'elle cible des multi-coeurs ou autres, il semblerait que cela soit le grand dada de Sutter après le C++/CLI. Il semblerait qu'il faille s'attendre à des changements de compréhension et de styles -- comme le RAII suite à la compréhension des exceptions ? A suivre.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  10. #170
    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 : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Ca serait intéressant, on verra bien ce qu'il va raconter

  11. #171
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    Les resultats de mon benchmark m'avait beaucoup etonné,
    je pensais le code managé plus lent que ca....

  12. #172
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par epsilon68
    Pour tester la rapidité d'execution de C++/Java/C#
    J'ai realisé un vrai programme calculant la trajectoire d'un outil sur une surface 3d (triangles). Je l'ai programmé pour Java et utilisé le convertisseur Java -> C#.
    la difference n'est pas enorme entre C++ et C# (facteur de 1.6)
    A votre avis, le code natif a-t-il encore beaucoup d'avantage par rapport au code managé ? en entreprise ?
    attention tu ne dis pas si ta carte est accélérée 3d ;
    pour afficher des simples polygones en 3d voir des modèles 3d , C# et .NET serait aussi performant que C++ /code natif.
    Tout simplement parce que le framework décharge le cas échéant à la carte graphique les calculs 3d.
    Mais je te défie de réaliser tout un jeu 3d avec IA derrière ou même un logiciel de raytracing avec C#.
    Bref de faire la mise en charge d'un projet applicatif

    Moi personnellement je pense que le C++ se joue sur Qt, du moins en entreprise, et que la force du C++ se situe dans sa portabilité, dans sa rapidité et surtout dans le nombre de librairies et programmes deja ecrits.
    Quid de la VCL ( BCB) et ATL/MFC (VC++) ?
    Qt c'est portable d'accord mais jamais vu le moindre projet en entreprise avec Qt.
    As-tu vu des offres d'emploi de développeur avec cette technologie ?
    Pas entendu le moindre projet là-dessus
    Dernière modification par mat.M ; 04/07/2006 à 16h00.

  13. #173
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    Citation Envoyé par mat.M
    attention tu ne dis pas si ta carte est accélérée 3d ;
    pour afficher des simples polygones en 3d voir des modèles 3d , C# et .NET serait aussi performant que C++ /code natif.
    Tout simplement parce que le framework décharge le cas échéant à la carte graphique les calculs 3d.
    Mais je te défie de réaliser tout un jeu 3d avec IA derrière ou même un logiciel de raytracing avec C#.
    Bref de faire la mise en charge d'un projet applicatif
    ce n'est que du calcul pur, pas la moindre interface graphique....

    Citation Envoyé par mat.M
    Qt c'est portable d'accord mais jamais vu le moindre projet en entreprise avec Qt.
    As-tu vu des offres d'emploi de développeur avec cette technologie ?
    Pas entendu le moindre projet là-dessus
    c'est vrai, mais si j'avais des projets c++, je m'appuierais sans hesiter sur Qt... malheureusement .NET rafle tout

  14. #174
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Citation Envoyé par mat.M
    Qt c'est portable d'accord mais jamais vu le moindre projet en entreprise avec Qt.
    As-tu vu des offres d'emploi de développeur avec cette technologie ?
    Pas entendu le moindre projet là-dessus
    Cela doit dépendre des secteurs je pense. Je vois mal utiliser la VCL chez nous -- certains projets utilisent en revanche sur QT.
    Il me semble que Adobe utilisait QT -- maintenant ils développent leur propre truc (qu'ils mettent en open source) et qui me parait fort intéressant.
    Et puis ce n'est certainement pas sur la licence GPL, le conseil vendu à des particuliers, et les livres vendus que Trolltech va arriver à se financer.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  15. #175
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par Luc Hermitte
    Cela doit dépendre des secteurs je pense. Je vois mal utiliser la VCL chez nous -- certains projets utilisent en revanche sur QT.
    Sans vouloit troller pourquoi ne pas utiliser la VCL pour les projets sur lesquels tu travailles ?
    C'est trop du Pascal Object modifié C++ ?

  16. #176
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    La VCL devrait etre abandonné maintenant je crois non ?
    et Qt prouve qu'il est vraiment mature.

    Qt pour moi est vraiment l'outil ideal du C++,
    par la je veux dire qu'on ne commence pas un projet en se disant:
    ... hummm j'ai besoin d'une classe String...
    je peux déjà dire que le projet va mal commencer parce qu'on ne concentre pas sur l'essentiel, le pourquoi du projet finalement...

    Qt4 est pour moi un boost pour C++
    sans jeu de mot

  17. #177
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Sans vouloit troller pourquoi ne pas utiliser la VCL pour les projets sur lesquels tu travailles ?
    C'est trop du Pascal Object modifié C++ ?
    Parce que ceux qui se servent de QT c'est pour tourner sous autre chose que windows et une vieille distribution (et pas une autre) de linux ?
    Je ne fais que supputer.
    En ce qui me concerne, le design est effectivement trop limité par l'archi objet du Delphi. Et puis, je n'ai pas l'impression que cela soit dans les moeurs (la tradition) des applis que l'on développe.

    Pour la maturité de QT, j'attendrais la stabilisation du pool d'utilisateurs de la version 4. Version qui change pas mal de choses. Après, je me suis déjà exprimé sur cette lib. Et ici n'est pas vraiment le lieu.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  18. #178
    Membre du Club
    Inscrit en
    Janvier 2006
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 107
    Points : 48
    Points
    48
    Par défaut
    je débute juste le c++ mais avant et toujours maintenant en parallèle je fais du JAVA.
    JAVA est très bien et simple. Cette simplicité nous permet de développer des application rapidement, mais si jamais nous recherchons des choses plus pousser comme l'intéraction avec l'OS c'est mort...
    Le C/C++ offre ces possibilités et faut rapeller que les OS sont programmer dans ces langage ( + Assembleur ) sauf erreur de ma part

  19. #179
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par maminova77
    JAVA est très bien et simple. Cette simplicité nous permet de développer des application rapidement, mais si jamais nous recherchons des choses plus pousser comme l'intéraction avec l'OS c'est mort...
    Attention les puristes de la portabilité à tout prix vont te tirer dessus
    Ceci dit je partage totalement cet avis

  20. #180
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    en tout ca, si trolltek sort un binding QT (qui est effectivement une tres bonne librairie) pour java, c'est qu'il doit y avoir une raison. C++ pour faire des applications "desktop", ca devient un poil trop complexe face a des langages de plus haut niveau je pense.

Discussions similaires

  1. Quel intéret du Portage par rapport à indépendant ?
    Par sylk974 dans le forum Structure
    Réponses: 20
    Dernier message: 01/03/2019, 08h46
  2. Réponses: 1
    Dernier message: 16/08/2010, 10h34
  3. Réponses: 2
    Dernier message: 31/10/2009, 15h01
  4. Quel est l'intéret de Google Chrome OS par rapport à Android ?
    Par Annaelle32 dans le forum Actualités
    Réponses: 16
    Dernier message: 13/07/2009, 18h38
  5. Réponses: 1
    Dernier message: 30/04/2007, 10h13

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