Votre question

Java et C++

Tags :
  • Java
  • Programmation
Dernière réponse : dans Programmation
7 Février 2005 13:18:28

Bonjour,

j'aimerais connaître les grandes différences entre Java et C++.
Je connais bien le Java maintenant et je voudrais essayer d'apprendre un autre langage, le C++ a l'air pas mal (le Perl aussi, mais ça a l'air complétement différent).

Ces 2 langages ont l'air de se ressembler beaucoup, dans la structure et dans le fait qu'ils soient orientés objet.

Quelles sont les principales différences?
De quoi j'ai besoin pour developper en C, uniquement un compilateur?

Merci.

Autres pages sur : java

7 Février 2005 15:25:19

Salut
j'ai fais un peu les deux langages mais tout ce que je peux vous dire c'est que java utilise beaucoup plus de classes abstraites, comme on dit tout en java est classe. Donc tu passe moins de temps à creer tes propres classes quoi! tu ne fais que declarer tes objets directement et tu travailles avec
en tout cas c'est la plus grande difference que j'ai constaté en java et c++
7 Février 2005 19:13:34

je suis en train de faire une application qui parse un programme C++ en Java et il n'y a quasimenent pas de grandes difference, si ce n'est :

- les pointeurs sont remplacés par des référencements
- les char * en C++ sont remplacés en String en Java
- le garbage collector en Java, est inexistant en C++
- l'heritage mutiple du C++ est "remplacé" par les interfaces en Java
point de vue rapidite, le C++ devancait Java, actuellement ils atteignent plus ou moins le meme niveau mais le C++ reste plus rapide
En gros, si t'as fais du Java, faudra t'accoutumer à la syntaxe et ca ira tout seul en principe. C'est plus complexe que le Java, mais ca reste d'un point de vue algorithmique

voila j'espere t'avoir un peu éclairé ;-)
Contenus similaires
7 Février 2005 20:58:41

Merci à vous.
Je vais essayer pour voir les differences.

Après je me mettrai au perl ! :-D
7 Février 2005 22:32:39

Hmm... Je ne connais pas Java, mais en tout cas je dirais qu'à l'instar du C, C++ est très proche de la machine (au niveau de la mémoire principalement), vu que ce langage une fois compilé n'est pas éxécuté par une machine virtuelle.

Personnellement, je te recommande de rester sur Java si t'as pas envie de plonger dans l'enfer du debugging de C++ (avec le compilateur g++ en tout cas, c'est une horreur :)  ).

Sinon, si tu as envie de connaître Perl, je te dis tout de suite de fuir ce langage comme la peste (qui n'est d'ailleurs pas un langage de programmation, mais de scripting. Me demandez pas quelle est la différence, je ne fais que répéter bêtement ce qu'on m'a dit). Préfère lui plutôt Ruby, qui lui est beau :)  (voire même Python, qui est très simple mais qui a une gestion de l'objet assez laide.)
7 Février 2005 22:35:20

Le java aussi rapide que le C++ et bien pas chez moi en tout cas...
J'ai fait un peu des deux et si ce n'était le coté 'vitesse' je serais un grand fan du java:
- les interfaces graphique se font super simplement en java
- que des références en java (en gros que des pointeurs) et pas la peine de se demander si une variable est un pointeur ou non....
- l'environnement de développement gratuit Eclipse (et il en existe d'autre) est super sympa a utiliser...
7 Février 2005 22:43:21

Citation :
par tiopai le 7/2/2005 22:35:20

Le java aussi rapide que le C++ et bien pas chez moi en tout cas...
J'ai fait un peu des deux et si ce n'était le coté 'vitesse' je serais un grand fan du java:
- les interfaces graphique se font super simplement en java
- que des références en java (en gros que des pointeurs) et pas la peine de se demander si une variable est un pointeur ou non....
- l'environnement de développement gratuit Eclipse (et il en existe d'autre) est super sympa a utiliser...


Des outils pour faire des interfaces graphiques rapidement, tu en trouves aussi pour le C++. Si t'es fainéant, tu fais ca via une IDE propriétaire (comme visual c++ par exemple, beurk...), ou si t'es roots tu peux tenter wxwidgets, ou tu fais rien à la souris pour la créer - sauf si tu décide d'utiliser un soft qui te permet de le faire, mais pour moi c'est une mauvaise idée -, et où en plus si tu te démerdes bien, ton appli sera portable (c'est à dire que tu pourras la compiler sur d'autres systèmes d'exploitation).

Quant à la vitesse, tout cela est lié au fait que Java travaille dans une machine virtuelle (un processeur et une mémoire simulée par ta machine, qui rajoute donc encore une couche d'abstraction).

Un autre avantage de Java est son extrême portabilité : vu que le code est éxécuté par une machine virtuelle, il suffit que la machine en question soit implémentée pour ton OS, et ton code Java tournera dessus ! (alors que C++, c'est pas la même galère .... :)  )
9 Février 2005 10:08:01

Citation :

Pwipwi a écrit :
Personnellement, je te recommande de rester sur Java si t'as pas envie de plonger dans l'enfer du debugging de C++ (avec le compilateur g++ en tout cas, c'est une horreur :)  ).


Ca donne envie ça :-D
En fait, j'arrive pas très bien à saisir la différence entre la compilation Java et celle de C++.
Je sais que C++ ne nécessite pas de machine virtuelle comme intermédiaire pour l'execution, ce qui le rend plus rapide.
Ce que je ne comprends pas, ce sont les problèmes de portabilité: si j'écris un programme en C++ je pourrai le compiler sous windows et sous linux sans le modifier?

De plus, à ce que j'ai lu le compilateur C ne vérifie pas le code qu'il compile, il suppose que le programmeur sait ce qu'il fait.
Donc si je met int i=i+j et que ça dépasse la taille d'un int, il ne le verra pas?

C'est le problème d'apprendre avec Java à mon avis, on s'habitue à ses paticularités de compilation et c'est dur de comprendre comment fonctionnent les autres langages. Et encore plus particulièrement ceux qui sont pas orientés objet :-o
9 Février 2005 22:08:42

Citation :
Ca donne envie ça
En fait, j'arrive pas très bien à saisir la différence entre la compilation Java et celle de C++.
Je sais que C++ ne nécessite pas de machine virtuelle comme intermédiaire pour l'execution, ce qui le rend plus rapide.


Java produit un binaire qui ne fonctionne que pour sa machine virtuelle, alors que C++ produit un binaire en instructions machine.


Citation :
Ce que je ne comprends pas, ce sont les problèmes de portabilité: si j'écris un programme en C++ je pourrai le compiler sous windows et sous linux sans le modifier?


Arg non, clairement pas :) 
C'est Java qui fait ca. Tu peux aussi le faire avec C++, mais il faut pour ca utiliser des librairies qui te le permettent (comme wxwidgets :)  )

Citation :
De plus, à ce que j'ai lu le compilateur C ne vérifie pas le code qu'il compile, il suppose que le programmeur sait ce qu'il fait.
Donc si je met int i=i+j et que ça dépasse la taille d'un int, il ne le verra pas?


Je doute qu'un compilateur te crache un jour des erreurs sur i = i + j. T'imagines tous les messages que ca cracherait ?
Un compilo ne peut logiquement pas t'avertir, vu qu'il ne sait meme pas ce qu'il y a dans i ou dans j.

Citation :
C'est le problème d'apprendre avec Java à mon avis, on s'habitue à ses paticularités de compilation et c'est dur de comprendre comment fonctionnent les autres langages. Et encore plus particulièrement ceux qui sont pas orientés objet


C'est sur que passer de l'objet au pas objet, ca fait mal... Note que l'inverse aussi :) 
9 Février 2005 23:14:57

Citation :

Pwipwi a écrit :
Un compilo ne peut logiquement pas t'avertir, vu qu'il ne sait meme pas ce qu'il y a dans i ou dans j.


Oui j'ai pas réflechi là :lol: 
Merci pour les expications..
je vais quand même essayer un peu le C++
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS