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. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 40
    Points : 38
    Points
    38
    Par défaut Quel avenir du C++ par rapport au C# ou à Java ?
    Que pensez-vous de l'avenir de C++ par rapport à C# ou même Java ? Cette question s'oriente surtout sur le devenir des logiciels de développement

  2. #2
    Responsable technique

    Avatar de Anomaly
    Homme Profil pro
    Directeur
    Inscrit en
    Juin 2003
    Messages
    10 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Directeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 338
    Points : 130 372
    Points
    130 372
    Billets dans le blog
    1
    Par défaut
    Le C++ restera, car il a été conçu pour les performances d'un vrai langage compilé. Tant qu'on ne proposera pas (officiellement) des versions de Java ou C# qui donne du vrai code compilé, sans s'encombrer de vérifications inutiles, le C++ n'a pas de soucis à se faire.
    Responsable technique forum & site

    Si ce message (ou un autre) vous a aidé et/ou vous semble pertinent, votez pour lui avec

  3. #3
    Membre actif Avatar de Causa Sui
    Inscrit en
    Mai 2003
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 133
    Points : 209
    Points
    209
    Par défaut
    J'aurais tendance a dire que C++ (avec C) sont de imbatables sur à peu prés tous les points: certes il ne sont pas toujours simple à utiliser et il est donc compréhensible que la plupart des débutant s'oriente de préférence vers de chose plus "simples" (Java, C#). Pourtant, en progréssant, les developpeurs sont tenté pour des raisons de performance de se diriger vers des languages plus puissant que sont C/C++ (voire ASM).
    Pour bien des avantages (surtout au niveau de la puissance) C++ reste toujours plus avantageux que Java/C# dans certaines situations. On peut a titre d'éxemple (paradoxal, certes) citer le fait que malgrés le dénigrement de Visual C++ de la part de Microsoft, c'est toujours le language qu'utilisent leurs propres developpeurs!
    Je crois que le seul risque pour C++ est de voir apparaitre des nouveaux conceptes de programation plus puissant que l'OO. Mais on en est pas encore là!

  4. #4
    Membre régulier
    Inscrit en
    Avril 2002
    Messages
    61
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 61
    Points : 83
    Points
    83
    Par défaut
    Je pense que C++ (et C) ont encore de l'avenir devant eux.
    N'oublions pas que les machines virtuelles JAVA et le CLR DOTNET
    sont elles-même écrites grâce à ces langages.
    N'oublions pas que les systèmes d'exploitations sont écrits grâce
    à ces langages.

  5. #5
    Futur Membre du Club
    Inscrit en
    Juillet 2003
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 4
    Points : 6
    Points
    6
    Par défaut
    c et c++ sont les langages systèmes par défaut (et par excellence ), et le seront encore très longtemps, puisque l'essentiel des efforts sont sur la création de langage de plus haut niveau (java et c#) ces derniers ont été inventé pour faire de l'applicatif.
    La question est :
    Peut on faire une application puissante (système, jeux , etc..) sans pointeur ?
    Perso je ne le pense pas, donc le c et c++ restera.
    LA FORCE est de pouvoir couper un morceau de chocolat en 4 et d'en manger qu' 1.

  6. #6
    Membre émérite

    Homme Profil pro
    Urbaniste
    Inscrit en
    Mars 2002
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Urbaniste

    Informations forums :
    Inscription : Mars 2002
    Messages : 255
    Points : 2 717
    Points
    2 717
    Par défaut
    Moi je dirai que chose langage a un domaine d'application plus ou moins restreint :
    - Java et C# pour des applications ultra-portable (le principe de machines virtuelles est une excellente idée, la preuve certains téléphones portables utilisent Java !)
    - ASM pour avoir une performance optimale : certaines parties de libraires sont écrites en ASM adapté à une architecture donnée (AMD K7, processeur Alpha, MMX, etc.). Certains parties des OS est écrite en ASM (je suis pas sûr que ce soit indispensable à l'heure actuelle ...)
    - PHP pour écrire des applications web en très peu de temps : j'ai écrit un programme qui décode les fichiers email de Eudora & Mozilla en 6 heures grâce aux expressions régulières ! L'avantage de PHP est qu'il intègre une multitudes de librairies dans le langage. Utilise des regexp est très simple dans PHP (comparé au C par exemple où il faut gérer la mémoire)
    - Pascal pour apprendre à programmer ou développer rapidement des applications (Pascal intègre plus de fonctions de base que le C)
    - C et C++ : pour le reste ... pour faire du code portable et très rapide !
    - etc.

    @+ Haypo

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    le C et le C++ sont les langages les plus rapides du moments apres l'asm, ils sont la seul alternative a l'assembleur pour faire des appli ou la vitesse d'execution est primordiale. De plus, le C++ est a un niveau si proche de l'asm, que ca m'etonerais qu'un langage BEAUCOUP plus performant sorte dans les années a venir.

    causa sui >> tout a fait d'accord, le seul risque pour le C++ est qu'il aparraisse un nouveau concept de prog plus puissant que la POO.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Points : 696
    Points
    696
    Par défaut
    Bien que la plupart des compilateurs acceptent l'asm inline, il y a quand même des possibilité pour creer un langage de entre l'asm et le C++. Il y a pas mal d'optimisations asm qu'on rencontre assez souvent, mais pour lesquelles on est obligé de passer par l'asm inline. Cependant un tel langage ne serait plus portable.

    Le fait que le C++ soit rapide ne rentre plus du tout en compte pour sa survie. Même pour un jeu, on retrouve des trucs salement codés, qui font qu'un jeu 'simpl' ne tourne que sur un 700 MGhz minimum. L'optimisation n'est plus tellement un soucis. Elle reste utilie que pour une classe très reduite dede programmes, os, émulateurs, encodeurs. Ca represente une partie ridicule.

    Quant aux fonctions de bases que l'on trouve comme donné dans l'exemple php les expressions regulières, si l'on programme avec un programme comme Borland C++ Builder avec la CLX (j'en parle parce que je connais, j'imagine que les MFC font pareil) les AnsiString ont déja beacoup de fonctions pour trravailler sur les chaines. Je ne crois pas que le fait que les fonctions standard soient limité constitue un problème.

  9. #9
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    oui le C++ n'est pas encore mort !!!

    mais a tout les fan d'ASm et autre optimisations extreme :-) je vous mets au defit de developper en assembleur les programmes d'aujourd'hui avec leur complexite.

    Les language comme java C# ne sont pas des langages pour debutants ce sont de langages encore de plus haut niveau que C++ qui permet de s'abstraire de toute une serie de problemes de plus ils ne permettent plus les veilles fintes de programmeur C (je n'ai absolument rien contre eux).

    Pour programmer en Java ou en C# il faut avoir un minimum d'approche objet alors qu'en C++ on peut tres bien faire du C.

    Mais il est vrai que C++ est plus rapide mais n'arrive t-on pas a un niveau ou on peut laisser de cote la rapidite pur (largement comblee par les processeur de nouvelle generation) et essaye d'avoir un soft bcp plus stable. C'est pas parceque c'est java ou C# que c'est pas plein de bug ca depends du programmeur mais au moins il y a toute une serie de pieges qui sont evites.

    Le seul argument que je lis ici et la a l'avantage de C++ c'est la rapidite et c'est toujours le meme.

    Personnellement un programme bien modelise est bcp plus performant que toute autre optimisation de code (souvent illisible) optimisation en ASM ou encore optimisation de compilation(les compilo sont assez optimise).

    La performance n'est pas seulement combien de nano seconde il faut a un programme pour executer une operation mais aussi combien d'heures il te faudra pour relire ton code et le comprendre 1 an apres, comment pourras tu maintenir ton code pour les 10 ans qui vienne.

    c#est ca egalement la performance.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    Mais il est vrai que C++ est plus rapide mais n'arrive t-on pas a un niveau ou on peut laisser de cote la rapidite pur (largement comblee par les processeur de nouvelle generation) et essaye d'avoir un soft bcp plus stable.
    Ah bah là non, je ne peux pas laisser dire ça !!!
    Perso mon domaine, c le développement 3D, et je passe mon temps à faire comprendre aux gens que le fait de se reposer sur la puissance d'un processeur pour compenser les erreurs d'optimisation est la pire des chose à faire !!! Je vois deux raisons principales :
    - Avec ce genre de raisonnement, on n'aurait pas encore les jeux qu'on a actuellement. En outre, le fait que les processeurs actuels soit beaucoup plus puissants que leurs prédécesseurs n'a rien de nouveau, c'était déjà le cas dans les années 80 !
    - Le fait de tout faire à la bourrine sans optimiser ne fera pas forcément que ça tournera beaucoup moins vite, mais risque en revanche d'altérer très fortément la REGULARITE d'éxecution : la vitesse sera très dépendante des conditions d'exécution et aura tendance à varier beaucoup trop d'une seconde à l'autre rendant le jeu injouable (désolé je prend le point de vue du dvlpeur 3D, mais je pense que c aussi applicable ailleurs...)

    Ceci dit, je suis bien d'accord qu'il ne faut pas faire du code illisible à force de vouloir tout le temps optimiser. Il y a surement un juste milieu... Mais de là à utiliser java ou c#, ya de la marge !

    En tout cas je peux t'assurer que les performances de java ne lui permettent pas d'exécuter un jeu vidéo complexe de façon acceptable, justement à cause de toutes les vérifications au runtime qui en font la facilité d'utilisation.

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Points : 696
    Points
    696
    Par défaut
    Je suis tout a fait d'accord que la rapidité n'est pas un argument, et je l'ai mentionné precedement. Mais dire qu'optimiser un code le rend illisible ca par contre c'est terriblement faux. Je travaille actuellement sur un projet sur lequel j'ai passé beacoup de temps pour l'optimisation. Ca fait plus d'un an que je suis dessus. Mais les lignes de codes que j'ai ecrites il y a un an et optimisée reste pour moi lissibles instantanément. C'est aussi ca savoir ecrire du code opitmiser, savoir l'ecrire tellement. Mais si effectivement tu en est incapable, mieux vaut ne rien optimiser.

    Encore une fois il existe enormement d'Api C++, qui lui permet de n'être pas moins désirable que le Java ou le C#.

  12. #12
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par jorix
    Peut on faire une application puissante (système, jeux , etc..) sans pointeur ?
    Perso je ne le pense pas, donc le c et c++ restera.
    euh petite rectification C# et java ne sont pas des langage sans pointeur !!!!

    au contraire tout est pointeur sauf que vu du developpeur il le voit pas et ca lui facilite pas ma la vie !!!

    masi encore TOUT EST POINTEUR

  13. #13
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Citation Envoyé par Blustuff
    Mais les lignes de codes que j'ai ecrites il y a un an et optimisée reste pour moi lissibles instantanément.
    pour toi c"est lisible ... et si un autre gars doit s"occuper de ce code ds 2 ans...


    Citation Envoyé par Blustuff
    Encore une fois il existe enormement d'Api C++, qui lui permet de n'être pas moins désirable que le Java ou le C#.

    je ne fais pas de denigrement de C++ je programme actuellement en C++

    mais je me "revolte" un peu contre une partie des developpeur C/C++ (pas tous bien heureusement) qui ne font que defendre sasn essaye d"apprendre.

    A mon avis si ces personnes avaient ete la au debut de l"air de l'info on serait encore taper de l"assembleur...

    Oui C# et Java sont base sur C++ mais en encapsulant des notions comme celle de pointeur.

    Oui C++ est plus rapide mais le probleme c"est qu'il contient plein de pieges de programmation

    Pour ce Qui est de l"optimisation

    1 optimise ta strructure de programme ( pour le rendre flexible et evolutif)
    2 optimise ton code avec les truc de base pas d"instanciation ds les boucles for.

    une fois que tu as fasi ca et que ca te convient toujours pas fais de l"optimisation extreme avec des truc illisibles masi c"est a tes risque et perile.!!!!!!





    Citation Envoyé par patapetz

    Mais de là à utiliser java ou c#, ya de la marge
    tout le monde parle de 3D et tout masi regarder ce qui ce fait en reconstruction 3D en java en imagerie medical ..
    Exemple d"image medical 4000x4000 code sur 12 ou 14 bit et c'est pas une image qu"un scanner genere....


    @+

  14. #14
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par sebA
    Mais il est vrai que C++ est plus rapide mais n'arrive t-on pas a un niveau ou on peut laisser de cote la rapidite pur (largement comblee par les processeur de nouvelle generation) et essaye d'avoir un soft bcp plus stable.
    Ca depends des domaines dans lequel tu travailles. Si tu developpe des applications sur des stations de travail, des PC ou des serveur, oui tu peux compenser la rapidite du code par celle du processeur. Par contre dans de l'embarque ce n'est pas possible.

    En plus je ne suis pas persuader que se reposer entierement sur la vitesse des processeurs soient une bonne chose en soi.
    Certes optimiser un code au point de le rendre illisible et immaintenable est une des pires choses a faire mais il est possible d'obtenir un code relativement rapide, stable et qui reste lisible.

  15. #15
    Membre à l'essai
    Inscrit en
    Mars 2002
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    c'est exactement ma pensee

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Points : 696
    Points
    696
    Par défaut
    On optimise pas du code comme ca parce que l'on trouve qu'il n'est pas assez rapide. C'est vant qu'il faut se poser la question de si il faut l'optimiser ou non. AMILIN a lu mon code optimisé en asm, et l'a trouvé tout a fait lisible. Je ne programme rarement que pour moi.

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 55
    Points : 41
    Points
    41
    Par défaut
    Un truc dont on n'a pas parlé et qui rejoins un peu l'avis de SebA, c que les compilateurs sont aussi des optimiseurs, et effectuent cette tâche de mieux en mieux.
    Par exemple, tout le monde sait qu'il ne fo pas écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for &#40;i=0; i<10000; i++&#41;
    &#123;
    	if &#40;a > 0&#41;
    	&#123; /* code qui ne modifie pas a */ &#125;
    	else 
    	&#123; /* code qui ne modifie pas a */ &#125;
    &#125;
    mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if &#40;a > 0&#41;
    &#123;
    	for &#40;i=0; i<10000; i++&#41;
    	&#123; /* code qui ne modifie pas a */ &#125;
    &#125;
    else
    &#123;
    	for &#40;i=0; i<10000; i++&#41;
    	&#123; /* code qui ne modifie pas a */ &#125;
    &#125;
    Or, cette optimisation, qui rend le code un peu moins lisible, n'est pas utile pour peu que vous utilisiez un bon compilateur optimiseur, et que vous sachiez régler les options d'optimisation, puisque le compilateur n'hésitera pas à faire lui-même cette optimisation...

  18. #18
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Points : 696
    Points
    696
    Par défaut
    ca c'est maintenant un sujet d'optimisation. Pour continuer cette discution, lire le post-it du forum C++ à ce sujet. Il y en 5 pages pleine. Il y est notement dit que les compilateurs ne font pas tout. Et l'exemple si dessous pourra être optimisé si sa structure est suffisement simple. Moi je préfère ne pas compter dessus, mais si cela n'en vaut pas la peine, autant laisser la plus lisible effectivement.

  19. #19
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Je ne suis pas capable malheureusement de donner un avis tres technique sur la question, mais dans mon cas je entre java et c++, c'est le c++!! c'est tellement plus rapide!
    En tout dans mon domaine (systeme), c'est c et c++ regneront encore longtemps! (et sous unix c'est encore mieux)

    le c# jamais essaye!

  20. #20
    HRS
    HRS est déconnecté
    Membre confirmé
    Avatar de HRS
    Inscrit en
    Mars 2002
    Messages
    677
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 677
    Points : 638
    Points
    638
    Par défaut
    de plus, si on considère le schéma donné par Epictète

    http://www.usethesource.com/cgi-bin/index.pl?section=Software

    C et C++ représentent des milliards de lignes de code de matière grise,
    réutilisables pour beaucoup

    qui va renoncer à cet investissement intellectuel ?

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