IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

D�bats sur le d�veloppement - Le Best Of Discussion :

[D�bat] C++ vs Java


Sujet :

D�bats sur le d�veloppement - Le Best Of

  1. #521
    R�dacteur/Mod�rateur

    Avatar de gorgonite
    Homme Profil pro
    Ing�nieur d'�tudes
    Inscrit en
    D�cembre 2005
    Messages
    10 322
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : Ing�nieur d'�tudes
    Secteur : Transports

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 10 322
    Par d�faut
    Citation Envoy� par JPDMJC
    SVP, ne dites plus que le garbage collector est difficile � utiliser, lisez un peu et maitrisez le, tout simplement. Comme diraient mes tant regrett�s profs : "c'est marqu� dans la doc".

    je connais bien la th�orie des garbage collector, et je peux t'assurer que jusqu'� jdk v1.4, celui de Java �tait assez d�cevant compar� � ce qu'il est th�oriquement (et fait dans certains projets acad�miques ) possible de faire.... je ne pourrais pas te dire pour les jdk v1.5 et jdk v1.6, car j'ai �t� un peu surcharg�, et je n'ai pas suivi l'affaire....

    donc il y a certainement beaucoup de param�tres qu'il faut savoir manipuler, et qui s'adaptent mieux � certain type d'applications... mais il faut aussi savoir que si l'utilisateur lambda doit �tudier son code pour adapter le garbage collector, il va finir par trouver cela chiant, et repassera sur un garbage collector "par d�faut", ou � un langage o� l'on peut g�rer explicitement la m�moire de mani�re "facultative" (c'est un des avantages de C# sur Java )


    nb: au passage, pour ceux qui ont que DCOM utilisait un simple compteur de r�f�rence pour avoir quand lib�r� un objet distribu�, on peut dire que Sun n'�tait pas trop � la ramasse � l'�poque...


    Citation Envoy� par JPDMJC
    @the-gtm :
    tu dis : "C'est s�r, et c'est pour �a que les d�veloppeurs Java ne font que des programmes simples et passent leur temps � maudir le garbage collector qui leur complique tellement la vie..."

    --> Non mais il faut arr�ter le chichon l� hein Le garbage collector, c'est comme l'informatique : un informaticien comp�tent, curieux et pr�t � s'investir saura l'utiliser. L'autre, celui qui ne regarde pas plus loin que le bout de son nez aura effectivement des souci et dira "pouaha, c'est nul".
    Enfin, o� diable as-tu vu qu'on ne faisant que des softs simples avec Java ?? On ne doit pas parler de la m�me dimension.

    sa remarque �tait plac� sous le signe de l'ironie... pourtant quelqu'un comme toi qui regarde plus loin que le bout de son nez aurait du comprendre rapidement
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  2. #522
    Membre �m�rite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    D�tails du profil
    Informations personnelles :
    �ge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par d�faut
    ... donc le garbage collector convient � tout le monde ? pas de defaut ? de cas ou il se comporte mal ?

  3. #523
    Membre �m�rite
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    548
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 548
    Par d�faut
    Ma remarque �tait effectivement ironique

    Le garbage collector pose probl�me quand il cr�e des pauses trop longues pour l'application. C'est surtout g�nant dans l'embarqu� (les pauses sont "al�atoires" alors qu'on a besoin d'un comportement d�terministe), et dans les tr�s grosses applis, par exemple un serveur J2E avec beaucoup beaucoup de m�moire.

    Pour l'embarqu� je pense que le C++ est de toute fa�on plus adapt�, pour les serveurs il y a le GC concurrent qui fait quasiment tout le boulot sans bloquer l'application.

  4. #524
    Membre �m�rite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    D�tails du profil
    Informations personnelles :
    �ge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par d�faut
    ... et vous ne pensez pas du tout que entre deux pauses du garbage collector, votre programme peut utiliser largement trop de memoire ? jamais ? dans aucun cas ?

  5. #525
    Membre confirm�
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    259
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 259
    Par d�faut
    Citation Envoy� par epsilon68
    ... et vous ne pensez pas du tout que entre deux pauses du garbage collector, votre programme peut utiliser largement trop de memoire ? jamais ? dans aucun cas ?
    C'est a mon avis un choix de Java de privil�gier la vitesse d'ex�cution sur l'optimisation m�moire. Ce qui ne veut pas dire qu'on ne puisse rien faire pour am�liorer les choses. Ce que beaucoup ont tendance a faire c'est se dire que comme il y a un garbage collector on se prend pas la tete sur l'optimisation m�moire, �conomiser les instantiations d'objets et tout, selon moi c'est une erreur

  6. #526
    Membre tr�s actif
    Avatar de FloMo
    Homme Profil pro
    Freelance iOS
    Inscrit en
    Juillet 2004
    Messages
    726
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France, Deux S�vres (Poitou Charente)

    Informations professionnelles :
    Activit� : Freelance iOS
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 726
    Par d�faut
    A chaque nouvelle version de Java, on nous a promis les m�mes choses : plus de performances, plus de portabilit�. Le constat est que Java est vraiment trop lent.

    Personnellement, depuis que j'ai d�couvert l'API Qt4 coupl�e au C++, je trouve qu'elle n'a rien � envier � Java : les applications sont _r�ellement_ portables, les performances sont excellentes, l'API est riche et s'enrichit r�guli�rement. Le pied, quoi.

    En plus, il y a m�me un designer pour cr�er les interfaces ainsi qu'un plugin pour Eclipse. Rien � redire.

  7. #527
    Membre �m�rite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    D�tails du profil
    Informations personnelles :
    �ge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par d�faut
    Citation Envoy� par kpouer
    C'est a mon avis un choix de Java de privil�gier la vitesse d'ex�cution sur l'optimisation m�moire. Ce qui ne veut pas dire qu'on ne puisse rien faire pour am�liorer les choses. Ce que beaucoup ont tendance a faire c'est se dire que comme il y a un garbage collector on se prend pas la tete sur l'optimisation m�moire, �conomiser les instantiations d'objets et tout, selon moi c'est une erreur
    dans mon cas il fallait une memoire > 128 Mo (surement plus mais on n'a pas test�) et sinon apres modification, seulement 40 Mo

    tu ne trouves pas qu'il faut quand meme s'en pr�occuper ?
    de toute facon, je n'avais pas le choix, il tournait sur une machine productive avec des resources extremement control�es ...
    et tres honnetement 40 Mo c'est encore de trop, si j'avais pu le faire en C++, ca n'aurait pas depass� 4-5 Mo.

  8. #528
    Membre confirm�
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    259
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 259
    Par d�faut
    Citation Envoy� par FloMo
    A chaque nouvelle version de Java, on nous a promis les m�mes choses : plus de performances, plus de portabilit�. Le constat est que Java est vraiment trop lent.

    Personnellement, depuis que j'ai d�couvert l'API Qt4 coupl�e au C++, je trouve qu'elle n'a rien � envier � Java : les applications sont _r�ellement_ portables, les performances sont excellentes, l'API est riche et s'enrichit r�guli�rement. Le pied, quoi.

    En plus, il y a m�me un designer pour cr�er les interfaces ainsi qu'un plugin pour Eclipse. Rien � redire.
    Ca reste moins portable que java puisque tu dois compiler ton soft pour les diff�rents OS alors qu'un soft java fonctionnera naturellement sur tous les OS.
    Ca n'a l'air de rien, mais moi j'ai pas un FreeBSD ou un Mac chez moi pour compiler dessus par exemple au moins avec Java je n'ai pas ce soucis.
    De plus la vitesse c'est tr�s relatif, dans une application cliente, dans 90% des cas si elle est bien programm�e en java ou en c++ on verra aucune diff�rence car le facteur limitant c'est l'utilisateur.

    Citation Envoy� par epsilon68
    dans mon cas il fallait une memoire > 128 Mo (surement plus mais on n'a pas test�) et sinon apres modification, seulement 40 Mo

    tu ne trouves pas qu'il faut quand meme s'en pr�occuper ?
    de toute facon, je n'avais pas le choix, il tournait sur une machine productive avec des resources extremement control�es ...
    et tres honnetement 40 Mo c'est encore de trop, si j'avais pu le faire en C++, ca n'aurait pas depass� 4-5 Mo.
    C'est difficile a juger sans connaitre le contexte, mais si tu prend 40 Mo en Java alors que tu penses qu'en c++ tu prendrais que 5 Mo, c'est probablement qu'il y a des choses a optimiser dans ton dev java. Pour ma part je travaille sur un serveur en java qui recoit des paquets UDP (des centaines par seconde), les d�code, effectue des traitements, en r��met, tout en �tant un serveur sur lequel des clients peuvent se connecter pour r�colter divers informations, et ca prend ptet 5 Mo.

  9. #529
    Membre �clair� Avatar de orelero
    �tudiant
    Inscrit en
    Novembre 2004
    Messages
    389
    D�tails du profil
    Informations personnelles :
    �ge : 42

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 389
    Par d�faut
    Juste par curiosit�, n'�tant que amateur je me demande dans quelle circonstance un professionnel peut se creuser la t�te � choisir l'un des deux langages pour travailler sur un projet ?

    A priori je dirais que c'est tr�s rare.

  10. #530
    Membre �m�rite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    D�tails du profil
    Informations personnelles :
    �ge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par d�faut
    Citation Envoy� par kpouer
    Pour ma part je travaille sur un serveur en java qui recoit des paquets UDP (des centaines par seconde), les d�code, effectue des traitements, en r��met, tout en �tant un serveur sur lequel des clients peuvent se connecter pour r�colter divers informations, et ca prend ptet 5 Mo.
    5Mo c'est difficile � croire, mets donc ton server en charge, et tu verras que la JVM a tendance � s'etendre dans la memoire que tu lui as allou�.

    La consommation m�moire excessive en Java est une chose reconnu. Meme si on arrive � vivre avec la plupart du temps, il y a des cas ou on est reellement emb�t� c'est comme ca. Franchement ca serait decevant si vous continuiez � le nier. On ne va meme pas parler de la rapidit�, vu que la plupart disent que c'est aussi rapide que du C .

  11. #531
    Membre �m�rite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    D�tails du profil
    Informations personnelles :
    �ge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par d�faut
    Citation Envoy� par orelero
    Juste par curiosit�, n'�tant que amateur je me demande dans quelle circonstance un professionnel peut se creuser la t�te � choisir l'un des deux langages pour travailler sur un projet ?
    A priori je dirais que c'est tr�s rare.
    non, ca depend de la tache, de l'importance des differents facteurs comme la memoire, la rapidit�, et surtout de l'infrastructure du client.

  12. #532
    Membre �clair�
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    79
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2003
    Messages : 79
    Par d�faut
    je pense que chaque langage a �volu�, il suffit de voir dans le monde Java " Real Time Java" pour clouer le bec de ceux qui ne jure que par C++, et invers�ment allez voir les nouvelles librairies C++ pour faire plus facilement des applications solides et portables....

    donc voil� il suffit juste de bien connaitre le langage et puis c'est tout faut par chercher plus loin.

  13. #533
    Membre �m�rite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    D�tails du profil
    Informations personnelles :
    �ge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par d�faut
    a se demander qui devrait mieux connaitre Java

  14. #534
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    42
    D�tails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 42
    Par d�faut
    Citation Envoy� par orelero
    Juste par curiosit�, n'�tant que amateur je me demande dans quelle circonstance un professionnel peut se creuser la t�te � choisir l'un des deux langages pour travailler sur un projet ?

    A priori je dirais que c'est tr�s rare.
    Bonjour,

    Moi j'avais envie de d�velopper en dotnet !

    Au boulot on ne veut pas entendre parler de la technologique de chez Microsoft et on ne jure (les d�cideurs ?) que par Java.

    Assez bizarrement je me retrouve aujourd'hui a coder aussi rapidement que lorsque je faisais du VB6 et a r�aliser mes �crans avec tout autant de facilit�. Merci NetBeans et Matisse.

    L'ironie est que mes applications Java ne tournent et ne tourneront que sous Windows ce qui signifie que le crit�re de la portabilit� n'est pas.

    Quant aux performances je dois dire que je suis agr�ablement surpris car bien souvent les goulots dans une application sont li�s � de "mauvaises" habitudes... h�ritage du lourd pass�.

    Le plus dur quant on impose une technologie autre que celle que l'on a envie d'apprendre est d'y trouver son plaisir. Une fois celui-ci trouv� le reste vient presque tout seul.

  15. #535
    Membre �m�rite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    D�tails du profil
    Informations personnelles :
    �ge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par d�faut
    tr�s honn�tement j'aime Java mais je sais reconnaitre ses faiblesses quand elles sont visibles.

  16. #536
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    42
    D�tails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 42
    Par d�faut
    Citation Envoy� par epsilon68
    tr�s honn�tement j'aime Java mais je sais reconnaitre ses faiblesses quand elles sont visibles.
    Bah tant mieux pour toi.

  17. #537
    Membre �m�rite
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    D�tails du profil
    Informations personnelles :
    �ge : 50
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Par d�faut
    Citation Envoy� par knoum
    Bah tant mieux pour toi.
    tu aurais mieux fait de justifier:

    bien souvent les goulots dans une application sont li�s � de "mauvaises" habitudes... h�ritage du lourd pass�.

  18. #538
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    42
    D�tails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 42
    Par d�faut
    Citation Envoy� par epsilon68
    tu aurais mieux fait de justifier:
    Tout d'abord il faut lire "h�ritage d'un lourd pass�" et non "h�ritage du lourd pass�".

    Maintenant tu colles ce que tu veux derri�re cette phrase.

    En ce qui me concerne cela signifie que j'ai eu une mauvaise approche en d�veloppant en VB6.

    Cela ne veut en aucun cas dire que je critique VB ou les technologies Microsoft. J'essaie seulement d'avoir un avis critique quant � la fa�on que j'avais de d�velopper � l'�poque. Si les langages �voluent il faut bien que les d�veloppeurs �voluent aussi.

    Je pense que sans Java ou la POO - � travers un autre langage - j'aurais gard� cette fa�on de coder.

    Ma r�ponse initiale �tait li�e � la question de "orelero" et n'est pas en relation directe avec le sujet de cette discussion (C++ vs Java).

    Sur ce bon d�veloppement.

  19. #539
    Membre tr�s actif

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    452
    D�tails du profil
    Informations personnelles :
    �ge : 49
    Localisation : Afghanistan

    Informations forums :
    Inscription : Juin 2003
    Messages : 452
    Billets dans le blog
    1
    Par d�faut
    Il est incontestable que java est bcp mieux que c++ car il es plus �quilibr�
    dans Java 1.5 on a

    typage
    garbage collector
    type g�n�rique (mieux qu'en c++)
    simple heritage de classe
    heritage multiple d'interface
    notion d'interface
    creation de thread built - in
    Meta model en lecture , pas de meta class
    Closure (sorte de lambda ) en utilsant les classes anonymes mais tr�s lourd syntaxiquement
    pas de debuggage dans le m�me process
    modification de classe a l'execution mais tr�s limit� (pour l'instant )
    Appel dynamique de m�thode
    Portable
    interfacage DLL complexe il faut d�velopp� une couche supl�mentaire (
    remarque il existe un framework payant pour interfac� une DLL sans dev suppl�mentaitre )

    dans le C++ on a
    typage
    pas de garbage collector
    type g�n�rique
    heritage multiple de classe (possibilit� heritage tr�s riche mais tr�s complexe)
    thread en utilisant des APIs externes (plus lourd )
    pas de Meta model en lecture , pas de meta class
    pas de closure (sorte de lambda )
    pas de debuggage dans le m�me process
    modification de classe a l'execution impossible ou tr�s tr�s tr�s limit�
    pas d'appel dynamique de m�thode
    Pas Portable
    interface DLL sans dev suppl�mentaire

    Pour n'importe quel appli Java si on a un probl�me de performance en terme de calcul on peut isoler le code et le mettre dans une JNI.

    Si la taille de l'application de l'image est trop importante il y faut chercher a optimiser en utilisant des ClassLoader, et faire du profiling sur le code

    De plus il y a des options pour partager les Classes entre JVM

    Avant je pensait que java �tait lent et peut performant depuis que je d�veloppe avec java monkey engine je me dis que on peut - �tre un peut moin de performance mais on d�veloppe bcp plus vite.


    C'est sur dans l'absolu le C++ est plus rapide et moin gourmand en espace m�moire mais la charge de d�veloppement est bcp plus importante....

  20. #540
    Membre �clair� Avatar de orelero
    �tudiant
    Inscrit en
    Novembre 2004
    Messages
    389
    D�tails du profil
    Informations personnelles :
    �ge : 42

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 389
    Par d�faut
    Pour java il me semble que tu peux choisir entre un mode totalement interpr�t� comme c'�tait le cas dans les anciennes versions (1.2 ?) et un mode compil� (JIT) qui optimise le code � la vol�e selon l'environement (dans certains cas, para�t que les perfs sont meilleurs qu'en C++) ce qui restera strictement impossible avec le C++.

Discussions similaires

  1. [D�bat] Technologie .NET vs JAVA
    Par neo.51 dans le forum D�bats sur le d�veloppement - Le Best Of
    R�ponses: 1047
    Dernier message: 14/01/2019, 17h15
  2. [D�bat] .NET vs JAVA/J2EE
    Par tssi555 dans le forum VB.NET
    R�ponses: 5
    Dernier message: 10/12/2008, 08h54

Partager

Partager
  • Envoyer la discussion sur Viadeo