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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 345
    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 345
    Points : 130 333
    Points
    130 333
    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.

  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.

  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 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

  17. #17
    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

  18. #18
    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.

  19. #19
    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
    Citation Envoyé par lunatix
    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.
    C'est déjà fait...

  20. #20
    Membre régulier Avatar de Merfolk
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 170
    Points : 113
    Points
    113
    Par défaut
    hello,

    un exemple : IPHONE => "state of the art" du "C / C++ / Cocoa"
    et c'est partit pour durer des années je pense

    ce n'est pas parce que .NET existe qu'il faut tout "enterrer"
    C/C++ ça reste utilisé pour des produits récents & de superbe qualité.

    il n'y a pas que le monde windows non plus

    imho : C & cie ne sera jamais vraiment remplacé.

    ne faut pas oublier que pas mal de boulot de développeur = de la maintenance de code, faire évoluer des vieux dinosaures logiciels & leur rajouter des modules. Le language est "imposé" dans bcp de projet de toute façon.
    Même si C.SuperNet 10.2 pointe le bout de son nez dans 5 ans et est vraiment génial , une majorité des gros logiciels (devs pour entreprise je parle) ne seront de toute façon pas "convertis" dans ce language, faute de temps / coûts & volonter de ne pas bugger un truc qui marche. C'est vraiment un processus très lent.

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