Est ce que le Java est la continuité C++ ???
Est ce que le Java est la continuité C++ ???
Aaaaah, alors pas du tout
Java serait plutôt dans la lignée de SmallTalk, donc purement objet (tout dérive d'une classe objet). SmallTalk a qnd-même la réputation d'être plus facile et plus puissant (point de vue expressivité -> pas performance...)
Alors que le C++... y a une phrase que j'aime en rapport avec le C++ (qui va déplaire à certains mais bon...):
"C++ : an octopus made by nailing extra legs onto a dog"
Et je rejoins Clement pour le reste
ps: y a que la syntaxe qu'est a peu pres la-même
8) je rejoints clement d'accord, mais bon sachez tout de meme que java utilise l'heritage simple, mais également l'heritage multiple .
et ca , avec la meme bibliotheque !
en effet, un programmeur java ne conseillera jamais de faire de l'heritage simple , que ce soit avec java ou un autre language ...![]()
ouais, j'avais meme lu ca sur une interview de bjarne stroustrup qui mettait en evidence le fait que java utilisait d'une autre manière l'heritage multiple ...
va savoir !
J crois qu'il parle des interface mais ca n'a rien a voir...
Puis l'heritance multiple est qqchôse d'assez controversé... par exemple à cause du fait qu'il peut y avoir le "clashing" de méthodes (2 methodes de parents différents sont exactement les mêmes, lequel des deux est herité...?)
Non.Envoyé par Vince ++
Java a repris beaucoup de la syntaxe du C(++), mais ces deux langages sont assez différents.
C++ est d'origine très ancienne (C plus encore), donc plus "primaire".
Il supporte beaucoup de concepts: procédures, types utilisateurs, objets et héritage (multiple), généricité (patrons), exceptions...
Tout ça en gardant un bon niveau d'abstraction.
Mais il reste d'abord focalisé sur la performance, donc bas niveau.
Java est plus récent, donc plus "propre".
Il limite les risques en ignorant: héritage multiple, désallocations explicites, patrons, distinction référence/donnée, type dépendant du système...
Il est orienté web, portabilité et comportement reproductible.
Mais les performances sont sacrifiées...
J'ai sous les yeux le resultat d'une recherche publiee sur Wired.
Ici un link qui donne une definition des languages (tous ou presque):
http://<br /> http://www.informatik...ist.html<br />
Malheureusement, il manque cet excellent Graphe.
En gros voila ce que le graphe contient:
Java a 3 parents
- Scheme 84
- SmallTalk 80
- C++
C++ vient du
C with classes qui vient du
C qui vient du
B qui vient du ...
SmallTalk va chercher ses sources dans Lisp qui vient de Fortran
Scheme remonte a Algol qui vient de Fortran
Bien sur, tout ca se recoupe, c'est a dire que C++ a aussi des ancetres Fortran.
Bref, si je trouve un soft link vers ce schema, je le mets. En attendant, lisez donc le papier plus haut, ca date un peu, mais ca reste interessant.
![]()
Christophe Ludet
Testez vos connaissances Java - http://knotty.developpez.com
Donner des ailes a votre application (J2EE patterns) - http://knotty.developpez.com/j2ee
je vais mettre tout le monde d'accord en disant que java et C++ descendent du codage binaire avec les swicths.
alors mon avis avec un parti pris pour C++ ( en connaissant JAVA ) : non c'est 2 langages différentes meme si elles sont une syntaxe presque semblable et ce sont 2 langages objets. Les points commun s'arretent la.
pointeur, pour ou contre ??? le debat restera ouvert et sans issu. Moi je suis pour.
garbage collector, pour ou contre ??? ca va avec les pointeurs, je suis completement contre. Je prefere defaire ce que je fais comme ca je sais quand et comment ce sera fait. Pour info il existe des garbages collector en C++.
pour ou contre l'heritage multiple ??? c'est un faux debat, c'est une propriété proposée, apres si elle est mal utilisée c'est autre chose. C'est comme si on accusait le marteau quand un type se tappait sur ses doits.
La portabilité ??? c'est peut etre qu'une impression mais plus le temps passe, plus j'ai l'impression que ca devient de moins en moins portable ...
Les trucs que j'aime pas en JAVA ( ca concerne que moi evidement ) :
l'utilisation abusive du design pattern MVC.
les classes internes.
les interfaces.
la lenteur.
Merci de vos réponses, après avoir lu tous vos posts cela m'amène à une autre question.
Aurai-je beaucoup de mal à migrer du C/C++ au Java ??? (car la syntaxe ressemble mais le concèpte à été repenser)
Personnelement j'ai commencé par le C++ puis le Java. Et je dois dire que le java est plus agréable à utiliser (plus logique à mon gout). mis à part qq différence (comme le keyword "abstract" en java par exemple; y a pas de keyword "virtual" en java -> les messages sont lié au type dynamique), je crois pas que ca devrait poser trop de problème, on s'y habitue viteEnvoyé par Vince ++
![]()
Merci beaucoup MelloW. Je suis fixé.
Merci a tout le monde pour m'avoir éclairci, sur ce sujet.
J'ai trouvé plusieurs graphes grace à google:Envoyé par knotty
http://www.levenez.com/lang/history.html#05
http://www.epemag.com/zuse/Images/43ab.gif
http://merd.net/pixel/language-study/diagram.html
Chaque graphe a sa propre interpretation evidemment...
Le dernier lien cite le C++ comme seul réfèrence du Java (première version) par exemple... Je crois que le premier lien est le plus complet.
tres sympa, merci
Le premier est grosso modo celui dont je parlais.
Christophe Ludet
Testez vos connaissances Java - http://knotty.developpez.com
Donner des ailes a votre application (J2EE patterns) - http://knotty.developpez.com/j2ee
C'est plus facile dans ce sens là que dans l'autre !Envoyé par Vince ++
Mieux vaut tard que jamais...
et c'est pour faire quoi?
Si tu veux t'orienter dans l'industrie, C++ à de beau jours devant lui.
A part ça passe direct à Java. En tout cas sous Windows C# va remplacer c++.
Thomas
En faite si je demande ça c'est parce que je pense qu'un jour le Java écrasera C\C++ d'ou ma question.
D'ailleur, il me semble que beaucoup d'université americaine arrête d'enseigner le C\C++ pour le Java.
Oui je suis d'accord avec toi.Si tu veux t'orienter dans l'industrie, C++ à de beau jours devant lui.
Je suis en BTS électronique et je programme essentiellement des µControleurs en C et assembleur et je maitrise assez bien C++ Builder (simple loisir). Et je remarque que beaucoup de BTS info industriel se servent du C++. D'ou mon choix pour se language plutôt qu'un autre.
Mais si un jour il venait a passer au Java, et bien je voulais savoir si j'aurai du mal à m'adapter.
Je vous remerci donc pour vos réponses et de m'avoir éclairé.
PS: D'autres remarques sont là bienvenu, pour moi.
c'est sutout parceque c'est plus propre tet donc plus pédagogique comme langage quand on apprend la poo.D'ailleur, il me semble que beaucoup d'université americaine arrête d'enseigner le C\C++ pour le Java.
meme si la syntaxe de java ressemble a celle de C++, il vaut mieux ne pas connaitre le C++ si on veux apprendre facilement le java (par exple : pas de pointeurs dans java).
c'est en fait un langage orienté objet reprenant les caractéristiques principales du C++, mais supprimant les principales origines d'erreurs: pointeurs, surcharge d'operateurs, heritage multiple...
Merci sifao, donc je conclus que passer du C au Java n'est trop dur, du moins pour quelqu'un qui ne connais que le C.
Non. Si tu veux un ordre d'idée, pour apprendre à programmer correctement en Java, il faut au moins 2 mois à temps plein pour quelqu'un qui se débrouille bien. Et la connaissance de C++ n'est juste qu'un tout petit plus. (c'est juste mon avis bien entendu)
Ne sous-estime pas le travail, donc.
Thomas
Partager