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

Contribuez C++ Discussion :

argument pour choisir c++ plutot que du code managé


Sujet :

Contribuez C++

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    688
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 688
    Points : 176
    Points
    176
    Par défaut argument pour choisir c++ plutot que du code managé
    Salut,

    Je me pose une question existentielle

    De nos jours quel sont les raisons qui nous poussent à opter pour développer un projet en C++ plutôt que d'utiliser un langage objet managé ?


    D'un côté certains soutiennent que les codes managés sont finalement aussi rapide que du C++.

    D'un autre ces mêmes soutiennent que le time to market est bien meilleur en Java/C# pour ne citer qu'eux.

    Même l'embarqué à l'instar d'android utilise Java.

    Donc au final qu'est ce qui justifie encore aujourd'hui le recours à du C++, hors mis pour des développement de niche, comme les jeux vidéos, les machines virtuelles... ?

    Merci de ne pas considérer cette question comme un "troll".

  2. #2
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    Par défaut
    Citation Envoyé par guillaume07 Voir le message
    D'un côté certains soutiennent que les codes managés sont finalement aussi rapide que du C++.
    Ils peuvent soutenir tout ce qu'ils veulent c'est pas le cas.
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

  3. #3
    En attente de confirmation mail
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Octobre 2010
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2010
    Messages : 501
    Points : 1 060
    Points
    1 060
    Par défaut
    Bonsoir,

    Le C++ est au moins encore nécessaire pour développer la JVM et le compilateur Java !

    Voici la fonction main de la JVM d'openJDK 1.7 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    int
    main(int argc, char ** argv)
    {
        int margc;
        char** margv;
        const jboolean const_javaw = JNI_FALSE;
     
        margc = argc;
        margv = argv;
     
        return JLI_Launch(margc, margv,
                       sizeof(const_jargs) / sizeof(char *), const_jargs,
                       sizeof(const_appclasspath) / sizeof(char *), const_appclasspath,
                       FULL_VERSION,
                       DOT_VERSION,
                       (const_progname != NULL) ? const_progname : *margv,
                       (const_launcher != NULL) ? const_launcher : *margv,
                       (const_jargs != NULL) ? JNI_TRUE : JNI_FALSE,
                       const_cpwildcard, const_javaw, const_ergo_class);
    }

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    Citation Envoyé par guillaume07 Voir le message
    Je me pose une question existentielle
    En général, on ne trouve pas de réponses à ces questions

    Citation Envoyé par guillaume07 Voir le message
    De nos jours quel sont les raisons qui nous poussent à opter pour développer un projet en C++ plutôt que d'utiliser un langage objet managé ?
    Perso, je n'ai jamais vu le choix d'un langage pour un projet résultant de ses propriétés intrinsèques et de ses avantages/inconvénients par rapport aux autres. Cela résulte en général d'une combinaison de culture des équipes, nécessités imposées par le projet, phénomène de mode, reuse disponibles, etc.

    Citation Envoyé par guillaume07 Voir le message
    D'un côté certains soutiennent que les codes managés sont finalement aussi rapide que du C++.
    La rapidité du code n'est pas un objectif systématique de toutes les applications. Donc ça peut ne pas être un critère pour le choix du langage

    Citation Envoyé par guillaume07 Voir le message
    D'un autre ces mêmes soutiennent que le time to market est bien meilleur en Java/C# pour ne citer qu'eux.
    J'ai vu faire l'exercice de style dans un projet : 1 équipe expérimentée Java et 1 équipe expérimentée C (alors, c'était du C, pas du C++) - même projet à faire. L'équipe C a fini un peu avant avec un taux de bug moindre. Je pense que la conclusion n'est pas le C est mieux mais tout simplement que le ttm dépend plus du contexte projet que des éléments techniques.

    Citation Envoyé par guillaume07 Voir le message
    Même l'embarqué à l'instar d'android utilise Java.
    android si on souhaite le considéré comme embarqué, n'en est qu'une (petite) parcelle. Et là on parle déjà d'embarqué de 'luxe'. Beaucoup de projet embarqué ne peuvent accueillir d'OS riche (linux + jvm ou windows XXX Embeded + .Net) : bye bye java/C#. Dans certains cas, les seuls compilateurs des cibles ... sont exclusivement C, donc aussi bye bye c++
    Logiciel Embarqué : Quels langages pour le développement embarqué ?
    Citation Envoyé par guillaume07 Voir le message
    Merci de ne pas considérer cette question comme un "troll".
    Ca en sera quand même un

  5. #5
    Débutant
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    688
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 688
    Points : 176
    Points
    176
    Par défaut
    Citation Envoyé par 3DArchi Voir le message
    La rapidité du code n'est pas un objectif systématique de toutes les applications. Donc ça peut ne pas être un critère pour le choix du langage
    En finance il y a des applications sensibles qui doivent être rapide, c'est dans ce contexte que s'incrit ma question.
    Et donc quand la question de rapidité se pose, je serais plus enclin à opter pour C++, et c'est là que certains conflit apparaissent car d'autres prétendent que c# notamment avec le JIT est tout aussi rapide.

    Citation Envoyé par 3DArchi Voir le message
    J'ai vu faire l'exercice de style dans un projet : 1 équipe expérimentée Java et 1 équipe expérimentée C (alors, c'était du C, pas du C++) - même projet à faire. L'équipe C a fini un peu avant avec un taux de bug moindre. Je pense que la conclusion n'est pas le C est mieux mais tout simplement que le ttm dépend plus du contexte projet que des éléments techniques.
    intuitivement c'est mon avis, mais d'autres prétendent, par exemple, qu'avec des outils comme resharper la phase d'implémentation est significativement accélérée, et d'autres arguments de ce style

  6. #6
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 611
    Points
    30 611
    Par défaut
    Salut,

    Je crois que chacun voit midi à sa porte...

    Une équipe réellement expérimentée en C++ fournira très certainement un meilleur résultat (en terme de temps de développement et de taux de bugs) qu'une équipe peu expérimentée en java, tout comme l'inverse sera très certainement vrai aussi.

    Il est aussi vrai que les langages managés ont l'énorme avantage de "tenir la bride serrée" au développeurs qui n'ont, jamais, qu'une seule manière autorisée pour faire quelque chose, ce qui simplifie énormément les choix architecturaux, et donc, simplifie énormément la recherche de bugs ou le refactoring (la seule question devenant du genre "est que A est la classe de base et B l'interface, ou est-ce plutôt le contraire ")

    D'un autre coté, le fait que le choix soit si limité donne (parfois) l'impression d'avoir à choisir "entre la peste et le cholera" car aucune solution ne s'avère réellement pertinante par rapport à un héritage multiple ou à une programmation générique, par exemple.

    Et, bien sur, les "pro managé" me contrecarreront avec leur sempiternelle "mais C++ est tellement permissif qu'il te permet même de te tirer une balle dans le pied"...

    Bref, on trouvera toujours du "pour" et du "contre", et la "gueguerre" entre les différents langages est loin d'être finie
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  7. #7
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Il faut être sincère aussi: il y a certain type d'applications que l'on ne peut raisonnablement pas faire en Java ou en C#. Par exemple, un démon qui est sensé tourner 24h/24 pendant 10 ans (sans planter) et qui doit exécuter une analyse en "temps réel" d'un flux Euronext, c'est impensable de le faire en java ou en c#. D'abord pour des raisons de rapidité de traitement (un flux Euronext ce sont des millions de données par minute), pour des raisons de gestion de la mémoire, et accéssoirement pour la gestion des ressources. Car pour ce type d'application qui requier précision et sécurité à l'extrême, on peut avoir besoin d'utiliser des accès à des ressources particuliers (par exemple accès au GPU pour booster certains types de calculs), et pour cela, il faut un accès bas niveau (donc pas de machine virtuelle).

    Mais par contre il n'y a pas que le C++ pour ce genre de choses.

    Après, certains grosses applications, il ne faut pas hésiter à découper en modules et à utiliser les avantages de différents langages à bon escient.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

Discussions similaires

  1. Réponses: 15
    Dernier message: 31/01/2014, 16h00
  2. Réponses: 6
    Dernier message: 08/02/2009, 15h13
  3. comment faire pour que le code PHP dialogue avec mes bibliotheques compilées
    Par Samson BAYIHA dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 22/09/2007, 02h45
  4. Réponses: 2
    Dernier message: 23/07/2007, 17h01
  5. Réponses: 11
    Dernier message: 19/11/2006, 13h45

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