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 :

[Débat] C++ vs Java


Sujet :

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

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2002
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 152
    Points : 94
    Points
    94
    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"

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 31
    Points : 41
    Points
    41
    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 !

  3. #3
    Membre confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2002
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 137
    Points : 621
    Points
    621
    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é, ...)

  4. #4
    Membre régulier
    Inscrit en
    Décembre 2002
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 152
    Points : 94
    Points
    94
    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"

  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 : 105
    Points
    105
    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

  6. #6
    Membre régulier Avatar de Hypnos
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2002
    Messages : 87
    Points : 108
    Points
    108
    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.

  7. #7
    Membre régulier
    Inscrit en
    Décembre 2002
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 152
    Points : 94
    Points
    94
    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"

  8. #8
    Membre averti Avatar de Epictète
    Inscrit en
    Mars 2002
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 219
    Points : 341
    Points
    341
    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

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

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

  11. #11
    Membre averti Avatar de Epictète
    Inscrit en
    Mars 2002
    Messages
    219
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 219
    Points : 341
    Points
    341
    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...

    Pour se former sur Java voir ces cours et tutoriels : http://java.developpez.com/cours/

    Pour les débutants Java celui la est vraiment au top : Programmation Java pour les enfants, les parents et les grands-parents.
    -> Consultez les cours et tutoriels
    -> Consultez la F.A.Q du forum que vous utilisez
    -> Lisez les règles du forum

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 5
    Points : 7
    Points
    7
    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

  13. #13
    Membre régulier
    Inscrit en
    Décembre 2002
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 152
    Points : 94
    Points
    94
    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"

  14. #14
    Membre régulier
    Inscrit en
    Décembre 2002
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 152
    Points : 94
    Points
    94
    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"

  15. #15
    Membre habitué
    Avatar de Tifauv'
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 102
    Points : 129
    Points
    129
    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.
    - Un pointeur, c'est comme un fusil chargé mal reglé avec la gachette qui s'appuie toute seule des fois.
    - Nan nan nan ça c'est le C. Un pointeur, c'est la même chose, mais avec le Quad Damage.

  16. #16
    Membre habitué

    Inscrit en
    Mai 2002
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 13
    Points : 166
    Points
    166
    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.

  17. #17
    Membre éclairé

    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    412
    Détails du profil
    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2002
    Messages : 412
    Points : 657
    Points
    657
    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

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

  19. #19
    Membre éclairé

    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    412
    Détails du profil
    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2002
    Messages : 412
    Points : 657
    Points
    657
    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.

  20. #20
    Membre habitué
    Avatar de Tifauv'
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 102
    Points : 129
    Points
    129
    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é.
    - Un pointeur, c'est comme un fusil chargé mal reglé avec la gachette qui s'appuie toute seule des fois.
    - Nan nan nan ça c'est le C. Un pointeur, c'est la même chose, mais avec le Quad Damage.

Discussions similaires

  1. [Débat] Technologie .NET vs JAVA
    Par neo.51 dans le forum Débats sur le développement - Le Best Of
    Réponses: 1047
    Dernier message: 14/01/2019, 17h15
  2. [Débat] .NET vs JAVA/J2EE
    Par tssi555 dans le forum VB.NET
    Réponses: 5
    Dernier message: 10/12/2008, 08h54

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