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 !
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é, ...)
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 ?
![]()
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.
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.Envoyé par elrond
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.
à 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 !![]()
C'est possible pour du code pur C++ANSIEnvoyé par Gregork
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...
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.Envoyé par Elrond
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.
C'est ce qui se dessine dans la majorité des grand comptes : Java (80%) ou .NET (20%) (option CORBA ou SOAP)Envoyé par Blustuff
Comme pour JavaEnvoyé par Blustuff
-> é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.
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![]()
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. ?
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+![]()
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.
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.
J'y vais ausi de mon grain de sel :
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.les applets java ne m'intéressent pas, pour faire du Web j'utilise PHP. Donc ma question se situe uniquement au niveau applications...
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
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.Envoyé par laffreuxthomas
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.
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.
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é.
Partager