|
Publicité ' | ||||||||||||||||||||||||
|
|
#241 | ||||
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 460 ![]() |
Citation:
Citation:
Citation:
Citation:
Le mode interpréteur de Java SE a été complètement mis de coté depuis la version 1.2 qui date justement de 1998. Et depuis le compilateur JIT n'a cessé d'être amélioré. Ce que veut dire par là c'est qu'un programme qui tourne sous machine virtuelle avec un compilateur JIT n'a pas à envier un programme natif ! a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
||||
|
00
|
|
|
#242 |
![]() ![]() Nicolas ValléeIngénieur Système Inscription : décembre 2005 Messages : 9 774 ![]() |
euh le cout de l'objet java qui prend moins de place que l'objet c (si on considère que les objets existent en c...
![]() je sais pas qui est ce type, mais il doit compter ce que consomme la JVM pour faire le chargement "paresseux" de la classe et de l'objet... et oublier le chargement réel, qui peut intervenir bien plus tard |
|
|
00
|
|
|
#243 | |
![]() ![]() Nicolas ValléeIngénieur Système Inscription : décembre 2005 Messages : 9 774 ![]() |
Citation:
ben on en reparlera quand tu regarderas de plus près l'intérieur de l'usine à gaz... je t'ai cité un papier de référence sur les machines virtuelles... qui soulignent certains aspects qui ralentissent le code, et qui restent vrais avec la compilation JIT à ma connaissance, la machine virtuelle java ne compile pas systématiquement le bytecode... premier point, qui implique que si l'on ne fait pas de boucles trop grosses et autres trucs du style, ce papier continue de s'appliquer. |
|
|
|
00
|
|
|
#244 | |
|
Expert Confirmé Sénior
![]() Développeur informatique Inscription : novembre 2006 Messages : 4 222 ![]() |
Citation:
Ceci dit bien que l'article soit intéressant je suis extrêmement sceptique... |
|
|
|
00
|
|
|
#245 | ||
|
Expert Confirmé Sénior
![]() Développeur informatique Inscription : novembre 2006 Messages : 4 222 ![]() |
Citation:
Citation:
S'il ya des ralentissements c'est parce que la mémoire est fragmentée ( système de pagination ) Sur ce coup-là Java peut tricher parce qu'une appli Java va demander plus d'allocation que nécessaire et verrouiller la mémoire demandée. Pour les threads c'est totalement archi-faux ( c'est vraiment de la mauvaise foi et de la méprise d'un soi-disant gourou de Java) parce que pour tout programme qui s'exécute que ce soit en code natif ou via un "framework" ( .NET ou bien JVM pour Java ) ,c'est le système d'exploitation qui gére le multitache et les threads. Donc votre Brian Goetz essaie de vendre un truc sur l'incrédulité des gens...( normal il est évangéliste après tout |
||
|
|
00
|
|
|
#246 | |||||||
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 460 ![]() |
Citation:
Perso j'y voit plutôt des détails d'implémentations pour des optimisations d'interpréteur de bytecode... Il ne parle pas vraiment de JIT...Citation:
Citation:
Citation:
Citation:
Il ne triche pas c'est justement un des objectifs du GC. Citation:
Citation:
Je crois qu'on arrivera pas à de mettre d'accord donc tout cela ne sert à rien bye bye a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
|||||||
|
00
|
|
|
#247 |
|
Membre expérimenté
![]() Inscription : avril 2006 Messages : 853 ![]() |
il faut savoir ce qu'on veut comparer
si on veut directement du java qui est compilé avant l'exécution, il y a gcj et autre produit commercial sinon oui les programmes en c++ consomme généralement moins de mémoire que ceux écrit en java, mais ce derniers a un énorme avantage, c'est son gain de productivité il y a aussi les processeur un peut fait pour java, par exemple ceux de azul. personnelement, je crois que l'emplois du C++ est de moins en moins nécessairement étant donné les gains fait en développement et le niveau de performance atteint avec les derniers JVM. Java a d'ailleurs fait un énorme progrès dans les systèmes embarqués. |
|
|
00
|
|
|
#248 |
|
Membre éclairé
![]() Inscription : décembre 2004 Messages : 306 ![]() |
Je me demande, en lisant les dernières pages, s'il ne faudrait pas revenir à la question initiale et aux 2 ou 3 premières réponses qui ont été données en page 1 de cette discussions!
Votre débat est intéressant mais vous comparez deux choses qui ne sont comparables que dans quelques petits pourcents des cas. Les ordinateurs d'aujourd"hui sont infiniment plus puissants et rapides que ceux d'il y a seulement quelques années (le post date de 2002 !), et l'interprétation ou la compilation JIT ne pèsent rien dans les applications courantes que nous utilisons tous les jours: je veux dire, par exemple: - l'Interface Utilisateur de n'importe quel produit (que ce soit un OS, que ce soit un tableur, un traitement de texte etc.), qui passe l'essentiel de son temps à attendre l'utilisateur et n'a pas besoin de le faire rapidement...; - un browser, qui est lent du fait de l'internet ou de l'intranet, et non du fait de son langage de programmation; - un lecteur de mail, pareil; - un Oracle/SQL/SyBase, bref un système de base de données dont la rapidité dépend quand même en grande partie de celle du disque et/ou de l'organisation des données dans la base; - etc. Dans toutes ces utilisations, je ne vois pas en quoi un code interprété (si ça existe encore, je laisse le soin aux spécialistes de se battre à ce sujet) ou compilé à la volée si nécessaire (s'il est utilisé, ce qui produit là aussi quelques améliorations) pourrait poser problème. Il reste encore quelques grands types d'utilisation courante (si on peut dire...), que sont par exemple les jeux vidéo, où la recherche de la performance est maximale... du point de vue graphique, ce qui est le boulot de la carte vidéo; ou des processus de commande/contrôle en temps réel où, éventuellement, on peut parfois (mais pas tout le temps) parler de nécessité d'une vitesse maximale et où certains préféreront sans doute C++. Notez que C#, qu'on a cité il y a quelques pages, le plus à la mode des langages du jour, que ce soit embarqué ou non, est identique à Java dans ce qu'il utilise aussi la compilation JIT. Et qu'on l'utilise de plus en plus partout, c'est sans doute un signe |
|
|
00
|
|
|
#249 |
|
Invité de passage
![]() |
Le C++ et le Java ne sont pas de la même génération, Java fait intervenir
de nouveaux concepts objets (Design Patterns). Il faudrait comparer le Java plutôt avec le C# (qui est son demi-frère dont le papa est Microsoft). Personnellement, j'utilise le C++ pour des applications qui demandent de la performance (et encore ça devient très discutable avec les dernières JVM), par exemple des jeux. Le C++ est un langage proche du code machine, il a une syntaxe plus compliquée, mais une fois que l'on a bien compris l'utilisation des différents opérateurs, on produit du code trés performant. Et puis, ça nous permet de comprendre comment fonctionne le compilateur, en Java, la syntaxe est plus simplifiée, de ce fait tout est masqué (références, pointeurs, tas, pile,etc..., les bases de la programmation se perdent...) Le java est très satisfaisant pour des applications multi-tiers, l'utilisation de base de données. Java est bien sûr tres portable (vous pouvez aussi bien écrire un code pour un pc de bureau que pour votre machine à laver ou téléphone !!). Pour moi, cette comparaison n'a pas lieu d'être, il faut apprendre le C++ ET le Java...OU le C++ ET le C#. Pour premier langage je recommande Java ou C#. |
|
|
00
|
|
|
#250 |
|
Membre émérite
![]() ![]() Inscription : juillet 2004 Messages : 713 ![]() |
Franchement, pour avoir utilisé les 2, je dis C++ sans hésitation. Avec une API comme QT4, il est possible de développer très rapidement une GUI et simplifier le code de manière portable. Il y a un bon designer. Les exécutables sont très performants. La documentation très bien structurée. Le code léger. Ca s'interface facilement avec d'autres bibliothèques.
Et pour ceux qui diront que QT4 est payant, je précise qu'il l'est si on fait du code payant, mais que lorsque le code est sous GPL, QT4 est utilisable librement (sous tous les OS maintenant). Le couple C++ et QT4 dépasse très largement Java en terme de performances, de rapidité de développement et d'interfaçage avec d'autres bibliothèques (OpenGL, SDL, VLC). |
|
|
00
|
|
|
#251 | |
![]() ![]() Geek entrepreneur Inscription : novembre 2004 Messages : 1 035 ![]() |
Citation:
Un design pattern c'est un patron de développement en traduction littérale, et en pratique c'est des designs qui ont fait leurs preuves (par exemple l'un des plus connus, le singleton). Donc je ne vois vraiment pas en quoi le fait de conceptualiser est propre a un langage ?!? Tu conceptualises/rationnalises pas en C++ toi ? ^^ |
|
|
00
|
|
|
#252 |
|
Membre habitué
![]() Giuseppe DamianiDéveloppeur Web Inscription : décembre 2003 Messages : 76 ![]() |
C++ vs Java est à mon avis un débat qui n'a pas lieu d'être. Si vous débutez, il faut apprendre soit l'un, soit l'autre, ou pourquoi pas C#. L'important c'est d'apprendre, au travers du language, les conceptes clés des infrastructures que vous aimeriez programmez (Drivers, Jeux, CRM, Client - Serveur, etc... ) et les mode de programmation (structuré, objet, agent, UML, etc..).
Quand vous saurez modéliser vous ferez alors le choix de la technologie la plus appropriée. Je pense que l'aire du choix du language est dépassée. Si vous savez programmer en C++ vous n'aurez aucune difficulter à apprendre Java ou autre chose. La difficulter d'apprentissage sera au niveau des librairies que ces languages proposent et à ce niveau je dirais que nous faison un mêtier d'artist. En effet, à un moment donnée vous devez décider d'investir du temps dans l'apprentissage de librairie (Swing, dot.net, ...) et ce choix augmente votre potentiel ou vous rend marginal. Un mêtier d'artiste quoi. Microsoft avec dot.net propose une librairie unifié qui nous libère de ce choix. Mais ce choix ne peut pas être fait au détriment du produit que nous allons construir. En résumé, les choses changes et l'important est de monter dans le train, par la porte ou par le toit, et de ne pas s'assoir trop longtemps. A mon avis, les choix sont dépendant du problème et c'est difficile de généraliser dans le sans où on choisie la technologie en fonction des données technique mais aussi des délais de livraison et du coût. C'est un problème d'optimisation. |
|
|
00
|
|
|
#253 | |
|
Membre actif
![]() Inscription : janvier 2005 Messages : 229 ![]() |
Citation:
|
|
|
|
00
|
|
|
#254 |
|
Membre à l'essai
![]() Inscription : mars 2007 Messages : 23 ![]() |
en premier langage, moi j'recommande le C++ ... bien qu'ayant une préférence pour JAVA. Mais c'est parceque je suis feignant !
le C++ t'apprend tout de suite à être beaucoup plus carré. Bien que d'autres en diront le contraire, on peut quasiment faire la même chose dans les 2 langages. En Java, c'est très vite la fête à la saucisse. Et même en Java 6, le garbage collector fait un peu ce qu'il veut. Vous m'direz qu'y'a des DesignPatterns efficaces contre ça ... mais ces Patterns étaient déjà utilisés sous C++ pour la plupart ! après, reste à savoir ce qu'on veut faire ! j'me vois pas aujourd'hui faire du client léger en C++. Les archi J2EE sont bien assez efficaces comme ça même si j'suis faché ac JBoss/Tomcat et que .NET 2.0, ça a de la gueule ! en plus, chez Avanade, on développe des nouveaux Frameworks (qui vont surement rester interne bref ... C++ !! |
|
|
00
|
|
|
#255 | |
|
Membre confirmé
![]() Inscription : mars 2007 Messages : 257 ![]() |
Citation:
Quant a la version 2.0, c'est un peu obsolète, on en est a la 6.0 là. J'imagine que tu veux parler des applets et de Windows qui a souvent une jvm 1.1. Mais c'est en train de changer car heureusement Microsoft n'a plus le droit de distribuer sa JVM. Et enfin pour ce qui est de la rapidité du langage, c'est un peu plus complexe que ce que tu affirmes. Prend un simple exemple de md5. En java il est 2 fois plus rapide que le md5sum de linux. Ensuite c'est vrai que tu peux optimiser a mort ton md5 en C et tu ira encore plus vite que java, mais tu auras perdu beaucoup de temps. Bref dans beaucoup de cas il est faux de dire que le C/C++ est plus rapide que java car ca dépend énormément du développeur derrière et du type de projet. C'est sur que pour écrire un driver ou un moteur 3d le C++ sera plus adapté. Mais pour écrire un traitement de texte pas sur du tout que le c++ soit plus efficace |
|
|
|
00
|
|
|
#256 |
|
Membre habitué
![]() Sébastien Développeur informatique Inscription : août 2003 Messages : 252 ![]() |
JAVA :
- plus simple que C++ - Documentation plus accessible - Multi plateforme - GUI facile a mettre en place J'aime aussi c++ pour les raisons suivantes : - natif donc plus rapide que java a l'execution - gestion de la memoire - pour les GUI, il faudrait que j'essaye des librairies specifiques (GTK...) car WINAPI
|
|
|
00
|
|
|
#257 | |
|
Expert Confirmé Sénior
![]() ![]() Inscription : août 2003 Messages : 4 325 ![]() |
Citation:
OK. Achete le GOF95, ou les bouquins de Coplien, regarde les exemples et dis-moi dans quels langages ils ont été écrits. (et bonne chance pour trouver une seule ligne de java) Bien que des personnes aient tendance à utiliser le terme pour tout et n'importe quoi (e.g. le dispose pattern), un pattern est sensé être une solution générique qui transcende les langages. Quant à Java, il ne fait intervenir aucune nouvelle notion OO. Bien au contraire, il en a moins qu'Eiffel ou même C++. Ses apports -- générationnels est un bien grand mot -- tournent autour de la JVM et de la richesse de sa bibliothèque qui vient en standard.
__________________
FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++ Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. |
|
|
|
00
|
|
|
#258 | |
|
Membre actif
![]() Inscription : août 2005 Messages : 282 ![]() |
Citation:
|
|
|
|
00
|
|
|
#259 | ||
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 460 ![]() |
Citation:
A mon sens c'est plus une différence de philosophie et on ne peut pas vraiment dire que l'un est plus complet que l'autre ou plus aboutis... Citation:
Seul Microsoft s'est éterniser avec sa VM 1.1 obsolète et non conforme... La compatibilité ascendante (le vieux programme marche avec la nouvelle JVM) est assurée de version en version (même s'il peut y avoir des bugs ou des cas particulier où la compatibilité peut être perdu). a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
||
|
00
|
|
|
#260 |
|
Membre régulier
![]() Inscription : octobre 2006 Messages : 145 ![]() |
Je ne vais pas rentrer dans la comparaison intrinsèque des 2 langages (je connais très peu le C++) mais le point suivant n'est pas à négliger:
- les offres d'emploi centrées sur Java sont beaucoup plus importantes que celles centrées sur le C++ De fait, Java est actuellement beaucoup plus utilisé et je ne vois pas le C++ remonter la pente de ce côté là. C# semble un concurrent beaucoup plus sérieux pour Java. Donc à choisir pour un débutant qui veut faire de la programmation son métier: le Java ou le C# s'il a la fibre M$, à moins de vouloir travailler dans des domaines spécifiques (jeux, temps réel, ...) où le C++ domine. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com