Précédent   Forum du club des développeurs et IT Pro > Général Développement > Débats sur le développement - Le Best Of
Débats sur le développement - Le Best Of Décideurs : Le meilleur des débats sur les choix de technologies pour le développement. Ce forum est réservé aux professionnels.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Actualité déjà publiée
 
Outils de la discussion
Publicité
'
Vieux 09/01/2003, 02h13   #1
aliasjcdenton
Membre du Club
 
Inscription : décembre 2002
Messages : 150
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 150
Points : 42
Points : 42
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"
aliasjcdenton est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2003, 08h55   #2
goethe
Nouveau Membre du Club
 
Inscription : novembre 2002
Messages : 30
Détails du profil
Informations forums :
Inscription : novembre 2002
Messages : 30
Points : 27
Points : 27
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 !
goethe est déconnecté   Envoyer un message privé Réponse avec citation 31
Vieux 09/01/2003, 10h00   #3
gRRosminet
Membre éclairé
 
Homme Thierry
Ingénieur développement logiciels
Inscription : avril 2002
Messages : 121
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 : 121
Points : 354
Points : 354
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é, ...)
__________________
lisez les règles
pensez aux tutoriels (les miens)
neXtgen Povray Editor
gRRosminet est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 09/01/2003, 10h12   #4
aliasjcdenton
Membre du Club
 
Inscription : décembre 2002
Messages : 150
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 150
Points : 42
Points : 42
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"
aliasjcdenton est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2003, 10h43   #5
Elrond
Membre régulier
 
Inscription : décembre 2002
Messages : 60
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 60
Points : 78
Points : 78
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
Elrond est déconnecté   Envoyer un message privé Réponse avec citation 40
Vieux 09/01/2003, 23h34   #6
Hypnos
Membre régulier
 
Avatar de Hypnos
 
Inscription : mai 2002
Messages : 84
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 84
Points : 74
Points : 74
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.
Hypnos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2003, 00h05   #7
aliasjcdenton
Membre du Club
 
Inscription : décembre 2002
Messages : 150
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 150
Points : 42
Points : 42
à 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"
aliasjcdenton est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2003, 00h43   #8
Epictète
Membre confirmé
 
Avatar de Epictète
 
Inscription : mars 2002
Messages : 219
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 219
Points : 266
Points : 266
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
Epictète est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/01/2003, 08h28   #9
gl
Rédacteur/Modérateur
 
Homme
Inscription : juin 2002
Messages : 2 034
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 34
Localisation : France, Hauts de Seine (Île de France)

Informations forums :
Inscription : juin 2002
Messages : 2 034
Points : 3 831
Points : 3 831
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.
gl est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/01/2003, 15h45   #10
Blustuff
Membre chevronné
 
Inscription : juillet 2002
Messages : 842
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 842
Points : 647
Points : 647
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.
Blustuff est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2003, 15h51   #11
Epictète
Membre confirmé
 
Avatar de Epictète
 
Inscription : mars 2002
Messages : 219
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 219
Points : 266
Points : 266
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
Epictète est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 10/01/2003, 23h26   #12
Psychos
Invité régulier
 
Inscription : juillet 2002
Messages : 5
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 5
Points : 6
Points : 6
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
Psychos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2003, 23h33   #13
aliasjcdenton
Membre du Club
 
Inscription : décembre 2002
Messages : 150
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 150
Points : 42
Points : 42
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"
aliasjcdenton est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2003, 01h36   #14
aliasjcdenton
Membre du Club
 
Inscription : décembre 2002
Messages : 150
Détails du profil
Informations forums :
Inscription : décembre 2002
Messages : 150
Points : 42
Points : 42
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"
aliasjcdenton est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2003, 19h12   #15
Tifauv'
Membre habitué
 
Avatar de Tifauv'
 
Inscription : mars 2002
Messages : 102
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 102
Points : 104
Points : 104
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.
Tifauv' est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 11/01/2003, 20h10   #16
Manolo
Candidat au titre de Membre du Club
 
Inscription : mai 2002
Messages : 13
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 13
Points : 12
Points : 12
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.
Manolo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/01/2003, 10h21   #17
laffreuxthomas
Membre éclairé
 
Inscription : mars 2002
Messages : 395
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 395
Points : 364
Points : 364
J'y vais ausi de mon grain de sel :

Citation:
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
__________________
Creapage.net/blog
laffreuxthomas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/01/2003, 08h01   #18
gl
Rédacteur/Modérateur
 
Homme
Inscription : juin 2002
Messages : 2 034
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 34
Localisation : France, Hauts de Seine (Île de France)

Informations forums :
Inscription : juin 2002
Messages : 2 034
Points : 3 831
Points : 3 831
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.
gl est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/01/2003, 13h42   #19
laffreuxthomas
Membre éclairé
 
Inscription : mars 2002
Messages : 395
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 395
Points : 364
Points : 364
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.
__________________
Creapage.net/blog
laffreuxthomas est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 13/01/2003, 13h51   #20
Tifauv'
Membre habitué
 
Avatar de Tifauv'
 
Inscription : mars 2002
Messages : 102
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 102
Points : 104
Points : 104
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é.
Tifauv' est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Actualité déjà publiée
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 19h58.


 
 
 
 
Partenaires

Hébergement Web