Publicité
+ Répondre à la discussion Actualité déjà publiée
Page 1 sur 95 123451151 ... DernièreDernière
Affichage des résultats 1 à 20 sur 1887

Discussion: [Débat] C++ vs Java

  1. #1
    Membre du Club
    Inscrit en
    décembre 2002
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : décembre 2002
    Messages : 152
    Points : 43
    Points
    43

    Par défaut [Débat] C++ vs Java

    Quels sont les avantages et les inconvénients respectifs majeurs des langages de programmation C++ et Java l'un vis-à-vis de l'autre ?

    </aliasjcdenton>

    "Un Homme devient vieux lorsque ses regrets prennent la place de ses rêves"
      0  0

  2. #2
    Nouveau Membre du Club
    Inscrit en
    novembre 2002
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : novembre 2002
    Messages : 30
    Points : 27
    Points
    27

    Par défaut

    C++ beaucoup plus rapide que java.
    java beaucoup plus portable que C++.

    pour toi nouveauté de programmation :
    - Le C++ n'est pas tout objet
    - les pointeurs !
      5  3

  3. #3
    Membre expérimenté

    Homme Profil pro Thierry
    Ingénieur développement logiciels
    Inscrit en
    avril 2002
    Messages
    122
    Détails du profil
    Informations personnelles :
    Nom : Homme Thierry
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2002
    Messages : 122
    Points : 549
    Points
    549

    Par défaut

    Java et C++ sont deux langages distincts (bien que très semblables) et n'ont pas les mêmes objectifs. En effet, pour faire ton choix entre les deux cela dépend de ton objectif et de tes contraintes (support, nombre d'utilisateurs, portabilité, ...)
      3  0

  4. #4
    Membre du Club
    Inscrit en
    décembre 2002
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : décembre 2002
    Messages : 152
    Points : 43
    Points
    43

    Par défaut

    Eh bien en fait je désire connaître (un bien grand mot, disons plutôt apprendre ) les deux.

    Et c'est justement la question que je me pose de savoir dans quel cas il est plus judicieux d'utiliser l'un plutôt que l'autre. J'ai bien compris en ce qui concerne la rapidité d'exécution et la portabilité mais quels sont les autres critères de choix en fonction de quel genre d'application ?

    </aliasjcdenton>

    "Un Homme devient vieux lorsque ses regrets prennent la place de ses rêves"
      0  0

  5. #5
    Membre régulier
    Inscrit en
    décembre 2002
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : décembre 2002
    Messages : 60
    Points : 79
    Points
    79

    Par défaut

    C++ est plus complet (on peut a peu pres tout faire avec), plus performant (quand correctement concu et code), plus generaliste(bien que en principe objet, on n'est pas oblige de faire de l'object avec), plus puissant (template, ...), plus complet (il vit depuis longtemps et possede de tres nombreuses librairies, standard ou non). C'est egalement un langage tres complique et tres sujet a l'erreur et a l'introduction de bogues.

    Java est plus facile a apprendre et utiliser, plus portable, plus objet.

    Dans les deux cas il peut y avoir des problemes de compatibilite. Au niveau C++, c'est surtout lie a la portabilite (si tu code du C++ standard), mais le code est ensuite rarement compatible, sur une meme machine , d'un compilateur a un autre. Au niveau Java, il y a des problemes de compatibilite et support entre les versions. La version 2.0 de Java n'est pas supportee partout et par tous.
    Si la connaissance peut créer des problemes, ce n'est pas par l'ignorance que l'on peut les résoudre.
    -- Isaac Asimov
      5  0

  6. #6
    Membre régulier Avatar de Hypnos
    Inscrit en
    mai 2002
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : mai 2002
    Messages : 84
    Points : 75
    Points
    75

    Par défaut

    Citation Envoyé par elrond
    C'est egalement un langage tres complique et tres sujet a l'erreur et a l'introduction de bogues
    Effectivement, car le C te permet de faire n'importe quoi, tu dois donc bien savoir ce que tu fais, car tu peux vite arriver à écrire dans une partie de la mémoire non désrée et écraser des données d'autres variables de ton programme. Le C ne te dira pas qu'il y a une erreur si ton programme est syntaxiquement correct, c'est à toi à garder les yeux ouverts.

    En Java tu es beaucoup plus paterné, tu ne sais pas faire grand chose par toi-même, tu appelles des fonctions qui se débrouillent.

    Pour moi, je me suis directement tourné vers le C et n'ai appris le Java que plus tard, par curiosité. Parce qu'avec le C je me sentais plus libre.
    Errare humanum est ... sed humanus naturae erratum est.
      1  0

  7. #7
    Membre du Club
    Inscrit en
    décembre 2002
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : décembre 2002
    Messages : 152
    Points : 43
    Points
    43

    Par défaut

    à tous pour vos réponses !

    Je crois que c'est la rapidité d'exécution et la liberté du fait de pouvoir accéder à tout qui m'attirent le plus et c'est pour cela que je vais me mettre sérieusement au C++ (m'en tape d'la difficulté ).

    Encore une chose : N'existe-t'il pas différents compilateurs pour permettre de porter un code sous différentes platformes ? Du style j'écris un prog, je crée un executable pour Windows avec un compilateur puis je crée un deuxième executable (du même code) pour Unix avec un compilateur pour Unix ? Ou bien c'est plus compliqué du fait que vous vous servez vraiment de l'architecture de la machine en question ?

    Merci !
    </aliasjcdenton>

    "Un Homme devient vieux lorsque ses regrets prennent la place de ses rêves"
      0  0

  8. #8
    Membre confirmé Avatar de Epictète
    Inscrit en
    mars 2002
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : mars 2002
    Messages : 219
    Points : 271
    Points
    271

    Par défaut

    Citation Envoyé par Gregork
    Encore une chose : N'existe-t'il pas différents compilateurs pour permettre de porter un code sous différentes platformes ? Du style j'écris un prog, je crée un executable pour Windows avec un compilateur puis je crée un deuxième executable (du même code) pour Unix avec un compilateur pour Unix ? Ou bien c'est plus compliqué du fait que vous vous servez vraiment de l'architecture de la machine en question ?
    C'est possible pour du code pur C++ANSI

    Cependant contrairement à Java, il manque plein de chose à C++ ce qui fait que pour faire certaines choses (exemple interfaces utilisateurs : swing en java, en C++ rien) , ou accès sgbd (jdbc en Java, en C++ rien), etc, tu doit soit utiliser une lib pour l'OS, donc non portable, soit trouver une lib portable. Mais c'est une LIB en plus, c'est pas inclus dans le standard C++.

    Dans Java c'est inclus, donc toujours standard et toujours portable.

    Le vrai choix entre C++ ou Java se situe au niveau du besoin. Exemples de besoins :

    - Faire un jeux 3D compilé en natif pour windows : C/C++/Delphi
    - Faire une application web : Java, ASP, ASPX, PHP, Delphi, etc...
    - Faire une application distribuée d'entreprise : Java, .NET...
    -> Consultez les cours et tutoriels
    -> Consultez la F.A.Q du forum que vous utilisez
    -> Lisez les règles du forum
      1  0

  9. #9
    gl
    gl est déconnecté
    Rédacteur/Modérateur

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

    Informations forums :
    Inscription : juin 2002
    Messages : 2 095
    Points : 3 954
    Points
    3 954

    Par défaut

    Citation Envoyé par Elrond
    C++ est plus complet (on peut a peu pres tout faire ).
    Je ne suis pas tout a fait d'accord, il existe de nombreuses choses qui n'existe pas directement en C/C++, mais qui necessite des bibliotheques speciales ou qui sont des fonctionnalites propres au compilateur (ex : IHM, Son, Graphisme, Base de donnee, etc.) alors que la plupart de ces fonctionnalites sont de base en Java.
      2  0

  10. #10
    Membre chevronné
    Inscrit en
    juillet 2002
    Messages
    842
    Détails du profil
    Informations forums :
    Inscription : juillet 2002
    Messages : 842
    Points : 648
    Points
    648

    Par défaut

    Pour quoi Java ou .net pour une application distribuée en entreprise ???

    Quoiqu'il en soit, une autre particularité du C++ est de n'etre pas restreint a la programmation sur PC. En C++ tu peux très bien programmer pour des machines des automates des plateformes ou je ne sait quoi. Pour quasiment tout ce qui est programmable on pourra creer un compilateur C++

    Quoiqu'il en soit, si tu apprends le C++, il n'y aura pas grand chose de plus a apprendre pour le Java. (En fait il y aura surtout a oublier) Et quoiqu'on en dise, même si il y a des noms de fonctions a rééaprendre pour le Java, ce n'est qu'un moindre mal, sachant qu'en C++ tu as enormement de fonctions qui font plus ou moins la même chose, suivant les librairies que l'on choisit d'utiliser. Les noms fonctions ca s'apprends pas par coeur, ca s'utilise a l'arrache.
      1  0

  11. #11
    Membre confirmé Avatar de Epictète
    Inscrit en
    mars 2002
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : mars 2002
    Messages : 219
    Points : 271
    Points
    271

    Par défaut

    Citation Envoyé par Blustuff
    Pour quoi Java ou .net pour une application distribuée en entreprise ???
    C'est ce qui se dessine dans la majorité des grand comptes : Java (80%) ou .NET (20%) (option CORBA ou SOAP)

    Citation Envoyé par Blustuff
    soit, une autre particularité du C++ est de n'etre pas restreint a la programmation sur PC. En C++ tu peux très bien programmer pour des machines des automates des plateformes ou je ne sait quoi. Pour quasiment tout ce qui est programmable on pourra creer un compilateur C++
    Comme pour Java

    -> énormément d'applications embarquées pour Java...
    -> Consultez les cours et tutoriels
    -> Consultez la F.A.Q du forum que vous utilisez
    -> Lisez les règles du forum
      1  1

  12. #12
    Invité régulier
    Inscrit en
    juillet 2002
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : juillet 2002
    Messages : 5
    Points : 6
    Points
    6

    Par défaut

    je suis tout à fait d'accord avec epictète. Java était avant tout destiné à être embarqué, mais a d'abord percé là où on ne l'attendait pas.

    Aujourd'hui certaines machines virtuelles ont été porté vers de architectures autres que x86 (strongarm, powerpc ...).

    Pourquoi java est il devenu le numéro 1: tout simplement parce qu'il permet au développeur de s'affranchir d'un grand nombre de difficultés (notamment au niveau gestion de la mémoire). On peut donc développer plus vite des applis souvent moins buggées.

    Le C++ n'est cependant pas mort pour autant, et est encore largement utilisé en entreprise, notamment grâce à ces performances par rapport à java (langage compilé).
    Mais en ce qui concerne la portabilité, il vaut mieux ne pas trop y penser
      0  0

  13. #13
    Membre du Club
    Inscrit en
    décembre 2002
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : décembre 2002
    Messages : 152
    Points : 43
    Points
    43

    Par défaut

    Mais y-a-t'il une chance pour que C++ soit abandonné un jour ou cela semble-t'il impossible du fait de sa grande popularité mais surtout du fait qu'il n'y a pas (ou peu) d'autres langages natifs aussi puissants ?

    Même question pour Java : quelles sont ses chances d'être remplacé un jour, par quoi, etc. ?
    </aliasjcdenton>

    "Un Homme devient vieux lorsque ses regrets prennent la place de ses rêves"
      0  0

  14. #14
    Membre du Club
    Inscrit en
    décembre 2002
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : décembre 2002
    Messages : 152
    Points : 43
    Points
    43

    Par défaut

    Ok, alors au boulot !

    En tout cas merci à tous pour toutes ces explications très enrichissantes, qui, même si elles ne me font pas choisir un des deux languages me donnent juste envie de toucher aux deux

    Peut-être que c'est en pratiquant que j'en viendrai à donner ma préférence à l'un ou à l'autre. Mais c'est vrai que pratiquant le Java depuis 2 mois maintenant, je reste tout de même séduit et attiré par le côté vitesse de C++ mais surtout par le fait qu'on reste de libre de "toucher à tout" et de "jouer avec la machine". Quant au principe de la programmation orientée objet, je crois qu'il ne doit pas être trop difficile de passer de l'un à l'autre, les structures de programmation restant identiques (ou très similaires) pour les deux languages, à ce que j'ai compris...

    Voilà, voilà...
    A+
    </aliasjcdenton>

    "Un Homme devient vieux lorsque ses regrets prennent la place de ses rêves"
      0  0

  15. #15
    Membre habitué Avatar de Tifauv'
    Inscrit en
    mars 2002
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : mars 2002
    Messages : 102
    Points : 103
    Points
    103

    Par défaut

    Je pense aussi qu'il faut apprendre les deux, mais dans un certain ordre:

    Java en premier puis C++

    Tu apprendras ainsi à 'concevoir' des applications en objet (avec Java). Tu penseras plus en objet quand tu feras du C++. En effet, on peut faire des choses abominables en C++ (mix entre C et objet), alors que si tu prends l'habitude de voir bien les divers objets et leurs interactions, tu appliqueras naturellement ces méthodes au C++ et tu auras des applis plus propres et moins buggées.
      0  2

  16. #16
    Candidat au titre de Membre du Club
    Inscrit en
    mai 2002
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : mai 2002
    Messages : 13
    Points : 12
    Points
    12

    Par défaut

    Ce que tu dis n'est pas faux Tifauv en C++ on peut prendre de mauvaises habitudes !
    Mais je pense que le C++, en ayant fait du C avant, est beaucoup plus rapide à mettre en oeuvre que le Java.
      0  0

  17. #17
    Membre éprouvé
    Développeur Web
    Inscrit en
    mars 2002
    Messages
    409
    Détails du profil
    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : mars 2002
    Messages : 409
    Points : 408
    Points
    408

    Par défaut

    J'y vais ausi de mon grain de sel :

    les applets java ne m'intéressent pas, pour faire du Web j'utilise PHP. Donc ma question se situe uniquement au niveau applications...
    Les applets s'exécutent côté client. Donc tu ne peux pas les remplacer par des PHP, mais par du JavaScript. Ce sont les Servlets et JSP qui jouent sur le même tableau que les PHP.

    Sinon je pense que C++ est sur la pente descendante pour l'informatique de gestion. Reste l'info industrielle.

    Enfin, l'avenir (et le présent !) des applications distribuées est dans les nouvelles techno
    - parcequ'elles permettent de s'affranchir des détails techniques de communication -> on se concentre sur la prog métier.
    - parceque la démarche des éditeurs est d'en faire des standards

    Et voilà pour info un post qui traite déjà du sujet : http://www.developpez.net/forums/viewtopic.php?t=16969

    Thomas
      0  0

  18. #18
    gl
    gl est déconnecté
    Rédacteur/Modérateur

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

    Informations forums :
    Inscription : juin 2002
    Messages : 2 095
    Points : 3 954
    Points
    3 954

    Par défaut

    Citation Envoyé par laffreuxthomas
    Sinon je pense que C++ est sur la pente descendante pour l'informatique de gestion.
    C'est ce qu'il se disait de Cobol il y a deja pas mal d'annee. Resultat c'est encore utilise, ca recrute meme encore un peu et certaines personnes se voient obligees de s'y mettre pour telle ou telle mission.
    Pour resumer, il faut se mefier des technos sur la pente descendante, certaines mettent quelques dizaines d'annees avant d'etre relegue au rang de simple curiosite.
      1  0

  19. #19
    Membre éprouvé
    Développeur Web
    Inscrit en
    mars 2002
    Messages
    409
    Détails du profil
    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : mars 2002
    Messages : 409
    Points : 408
    Points
    408

    Par défaut

    oui en fait c'est tout à fait ce que je veux dire : C++ va vivre le même sort que Cobol. On a le temps de voir venir mais plus le temps passera et moins ça sera intéressant.
      0  1

  20. #20
    Membre habitué Avatar de Tifauv'
    Inscrit en
    mars 2002
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : mars 2002
    Messages : 102
    Points : 103
    Points
    103

    Par défaut

    Je ne suis pas tout à fait d'accord. Je pense que Java devrait se développer pour les applications non-OS et être utilisé quand on n'a pas besoin de vitesse pure.

    Mais pour tout ce qui est développement système, le C/C++ est le seul langage utilisable (avec un peu d'assembleur éventuellement). Et pour le moment, aucun langage n'est capable de le remplacer. Donc, le C/C++ devrait durer encore un bon bout de temps.

    Par contre, c'est une hérésie que Cobol soit encore utilisé.
      0  0

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •