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. #301
    Nouveau Candidat au Club

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Afghanistan

    Informations forums :
    Inscription : Juin 2003
    Messages : 452
    Points : 0
    Points
    0
    Billets dans le blog
    1
    Par défaut
    ce ne serait pas marketing... ça se saurait

    oui mais je pense qu'il y a du vrais sun c'est pas microsoft

    de plus je le dis encore il faut voir ce de quoi est capable le java monkey engine ou le jeux tribal trouble
    des évolutions sont prévu pour utilsé des processeur multi coeur comme celui de la PS3
    et normalement il y aura une version de java sur PS3

  2. #302
    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
    Points : 607
    Points
    607
    Par défaut
    Citation Envoyé par super_navide
    et normalement il y aura une version de java sur PS3
    En fait si j'ai bien compris Java est le langage utilisé pour faire des trucs interactifs sur les Bluray
    http://www.pcinpact.com/actu/news/35...ragon-lair.htm
    http://en.wikipedia.org/wiki/BD-J

  3. #303
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    J'ai notions il y'a un cours sur ce site que j'ai lu et il y a les souvenir de facs
    Premier principe, ne pas faire en hard ce qui ne peut pas y etre plus efficacement fait qu'en soft.

    Citation Envoyé par super_navide
    c'est sur ca ne serait pas facile ne mettre au point un tel processeur mais un algos basic comme le marks and sweep pourrait très bien être cablé dans le processeur
    Avec quel gain? Un tel algo est limite par la bande passante de toute maniere.

    comme séparé la mémoire en deux espaces les classes et les instances
    En quoi est-ce que ca concerne le processeur?

    de plus il y a aussi le system d'exploitation qui pourrait être objet et facilter le fonctionnement du GC
    Qu'est-ce que ca signifie pour un S.E. d'etre objet? Qu'est-ce que ca apporterait?
    Qu'est-ce que le S.E. pourrait faire pour facilite le fonctionnement du GC?

    java est un vrai langage objet moin que Smalltalk mais quand même bien plus qu'en C++
    Je ne vois pas en quoi? A part que Java force une certaine idee de l'OO.

    Ca semble peut-être évident mais calculer la complexité d'un algorithme est la vrais source de performence et n'est pas un reflexe chez tous les développeurs
    Le probleme sera le meme quel que soit le langage.

    de plus si sun proclame que java sera la future plateforme pour les jeux videos ca n'est pas pour rien
    Tu es sur que ce ne sera pas Fortress
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  4. #304
    Nouveau Candidat au Club

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Afghanistan

    Informations forums :
    Inscription : Juin 2003
    Messages : 452
    Points : 0
    Points
    0
    Billets dans le blog
    1
    Par défaut
    En fait si j'ai bien compris Java est le langage utilisé pour faire des trucs interactifs sur les Bluray
    http://www.pcinpact.com/actu/news/35...ragon-lair.htm
    http://en.wikipedia.org/wiki/BD-J
    à l'adresse suivante il y a un article sur les futures versions de java sur d'autre support
    http://weblogs.java.net/blog/invalid...forms_n_1.html

    Premier principe, ne pas faire en hard ce qui ne peut pas y etre plus efficacement fait qu'en soft.
    en hard c'est forcement plus rapide car il y a pas de decodage d'instruction

    certain programme de traitement d'image implémenté sur des FPGA donnes des résultat meilleur que l'excution de celui ci sur un processeur

    le revère de la medaille c'est que c'est plus complexe en mettre en place et plus difficile à maintenir

    la règle est plutot ne pas faire en hard ce qui pourra surrement être amélioré ou ce qui doit évoluer ou doit être corrigé

    et encore les carte graphique font bcp de chose en hard et sont souvent amélioré

  5. #305
    Nouveau membre du Club
    Inscrit en
    Mars 2004
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 26
    Points : 28
    Points
    28
    Par défaut
    Je n'ai pas tout suivi le debat (il y a beaucoup a lire ), je risque de répéter ce qui a été dit avant.

    Je travaille avec les 2 langages et les applis générées communiquent ensemble (grace a Corba).

    J'en ai conclu que l'utilisation de tel ou tel langage dépend de l'application cible. Dans mon cas, on a un serveur multithreadé en Java qui commande et gere des serveurs de calcul en C++.

    Java est mieux pour le multithreading, son API et son IDE (Eclipse) qui permet d'etre plus productif qu'en C++. Java a certains concepts pas tres simples a aprehender avec par exemple la gestion de la memoire avec garbage collector. Les evolutions du langages tendent a ressembler a du scotch pour palier les differences avec .Net.

    C++ est plus performant. En contrepartie, il est compliqué a mettre en oeuvre (pointeurs, fuites de mémoires moins évidentes qu'en Java, ...) . L'IDE VS 2003 est plutot moyen en C++ (meilleur en C#). Les API sont aussi dispo (boost, STL, ...) mais sont plus dures a maitriser.

    A deboguer, le C++ a ma preference (VS assure plus qu'Eclipse sauf en multithread ou Eclipse semble etre roi ) et on accede a peu pres a tout assez facilement. Alors qu'en Java, on a l'impression que tout est caché.

  6. #306
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par super_navide
    en hard c'est forcement plus rapide car il y a pas de decodage d'instruction
    Tu oublies de regarder le systeme dans son ensemble. Si tu prends de la place sur un processeur pour y mettre quelque chose, tu renonces a la possibilite d'y mettre autre chose.

    certain programme de traitement d'image implémenté sur des FPGA donnes des résultat meilleur que l'excution de celui ci sur un processeur
    Et? D'une part, les caracteristiques des algos de traitement d'image sont passablement differentes des caracteristiques des algos de GC et je ne vois pas pourquoi le gain a mettre un des premiers sur un FPGA est transposable en quoi que ce soit aux seconds.

    Deuxiemement, le passage du FPGA a l'integration dans un processeur ne me semble pas si simple que cela.

    La conception d'un circuit est un compromis. J'aimerais bien avoir une idee de ce que tu esperes gagner en mettant un GC dans un processeur. Apres on pourra discutter de ce que tu veux enlever et donc de ce que tu perds la, et enfin de l'interface du GC avec l'OS et les processus utilisateurs -- deux choses qui ne me semblent pas tres simples a concevoir mais ca ne vaut pas la peine d'entrer la dedans si il n'y a en fait pas de gain a esperer.

    le revère de la medaille c'est que c'est plus complexe en mettre en place
    Oui.

    et plus difficile à maintenir
    Les temps de cycle sont plus long -- et plus couteux --, mais ce n'est pas particulierement
    plus difficile.

    la règle est plutot ne pas faire en hard ce qui pourra surrement être amélioré ou ce qui doit évoluer ou doit être corrigé
    C'est vrai aussi. Mais il faut d'abord savoir ce qu'on espere gagner. Partir sur le principe "en mettant dans le hard, c'est plus rapide", c'est oublier qu'une telle idee fut mainte fois prouvee fausse (il y a des instructions qui ne sont pas generees par les compilateurs parce qu'elles sont plus lentes que leurs equivalents par exemple).
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  7. #307
    Nouveau Candidat au Club

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Afghanistan

    Informations forums :
    Inscription : Juin 2003
    Messages : 452
    Points : 0
    Points
    0
    Billets dans le blog
    1
    Par défaut
    le seul truc que je trouve bien avec C++ et que personne ne dit c'est qu'une fois le programme compilé il n'a pas besoin d'une machine virtuel pour être executer donc c'est plus simple à deployé

    C'est vrai aussi. Mais il faut d'abord savoir ce qu'on espere gagner. Partir sur le principe "en mettant dans le hard, c'est plus rapide", c'est oublier qu'une telle idee fut mainte fois prouvee fausse (il y a des instructions qui ne sont pas generees par les compilateurs parce qu'elles sont plus lentes que leurs equivalents par exemple).
    codé en hard un algo est forcement plus rapide (je ne parle pas de micro instruction comme dans les processeurs ciscs je parle de gravure de transistor ).
    le problème ensuite est de faire en sorte que le compilateur les utilises.

    De plus de mettre en hard des algo dans un processeur à un cout très important


    c'est pour ca que la PS3 utilise une autre statégie c'est de faire un jeux d'instructions très simple et de multiplier les coeurs.

    c'est le rapport prix/performence qui est un frein pour
    creer un processeur objet

  8. #308
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par super_navide
    codé en hard un algo est forcement plus rapide (je ne parle pas de micro instruction comme dans les processeurs ciscs je parle de gravure de transistor ).
    Qu'est-ce qui a ton avis est le facteur limitant des GC? Qu'est-ce que tu esperes gagner dessus en mettant un GC dans le processeur?

    (Mes reponses: la bande passante, je ne vois rien d'important a gagner, la bande passante restera le probleme.)

    le problème ensuite est de faire en sorte que le compilateur les utilises.
    Le premier probleme est de definir quelque chose d'utile. Pour un GC, si tu y arrives, meme si le compilo ne s'en sert pas ce n'est pas grave. Le code est ecrit une fois pour toute.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  9. #309
    Nouveau membre du Club
    Inscrit en
    Mars 2004
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 26
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par super_navide
    le seul truc que je trouve bien avec C++ et que personne ne dit c'est qu'une fois le programme compilé il n'a pas besoin d'une machine virtuel pour être executer donc c'est plus simple à deployé
    T'as pas encore été confronté au DLL Hell. Ca reserve de mauvaises surprises quand on ne fait pas attention.

  10. #310
    Nouveau Candidat au Club

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Afghanistan

    Informations forums :
    Inscription : Juin 2003
    Messages : 452
    Points : 0
    Points
    0
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    Qu'est-ce qui a ton avis est le facteur limitant des GC? Qu'est-ce que tu esperes gagner dessus en mettant un GC dans le processeur?

    (Mes reponses: la bande passante, je ne vois rien d'important a gagner, la bande passante restera le probleme.)



    Le premier probleme est de definir quelque chose d'utile. Pour un GC, si tu y arrives, meme si le compilo ne s'en sert pas ce n'est pas grave. Le code est ecrit une fois pour toute.

    il y a les regions de memoire du gc old space young space etc..
    ca correspond au caches du processeurs bcp d'objet jeune meurt jeune
    a partir de la les performances sont augmenté si on a un gc qui tourne sur le processeur pour libéré la mémoire dans le cache (pb de bande passante )


    actuelement tous ce fait dans le mémoire de plus haut niveau ce qui est un problème

  11. #311
    Nouveau Candidat au Club

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Afghanistan

    Informations forums :
    Inscription : Juin 2003
    Messages : 452
    Points : 0
    Points
    0
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Monorom
    T'as pas encore été confronté au DLL Hell. Ca reserve de mauvaises surprises quand on ne fait pas attention.
    et jar HELL tu connais

  12. #312
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Sun est une société comme les autres, et toutes les sociétés sont pareilles. Elles veulent un plus gros gateau. Faut pas être naïf comme ça les enfants.
    De la lecture intéressante sur un thème connexe: http://www.blinkenlights.com/classiccmp/javaorigin.html
    Blog|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. Et de toutes façons, ma BAL sur dvpz est pleine...

  13. #313
    Membre régulier
    Profil pro
    Inscrit en
    Août 2006
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 49
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par super_navide
    et jar HELL tu connais
    que je sache, on ne met pas tous les jar dans un répertoire commun, généralement nommé system32.

  14. #314
    Membre émérite

    Homme Profil pro
    Inscrit en
    Juillet 2003
    Messages
    2 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 2 075
    Points : 2 844
    Points
    2 844
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    Je suis d'accord, mais d'une part la performance en sequentiel sera toujours un facteur important (cf loi d'Amdhal), d'autre part on n'est qu'au tout debut... pour profiter des multicoeurs annonces, il faudra vraissemblablement changer de paradigme de programmation. Ce qui n'est pas gagne d'avance et ne pourra ce faire qu'avec un nouveau langage adapte. Le probleme est qu'a ma connaissance, on ne connait pas encore de paradigme parallele applicable universellement...
    Ne peut on pas déjà commencé à exploiter ce genre de processeurs avec des langages de type Erlang qui tente d'implémenter un paradigme plus concurentielle?

  15. #315
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par Gnux
    Ne peut on pas déjà commencé à exploiter ce genre de processeurs avec des langages de type Erlang qui tente d'implémenter un paradigme plus concurentielle?
    Si j'ai bonne memoire, l'approche d'Erlang fonctionne bien dans certains cas "faciles", ou il y a une decoupe naturelle en thread/process. Le probleme a mon avis est dans les cas difficiles, ou si on decoupe on se retrouve avec la question de la synchronisation et du risque qu'au dela d'un nombre relativement petit de processeurs, on ne sache plus progresser.

    Comme les perfs en monothreads vont saturer/saturent deja -- on commence a voir des propositions un peu folle du genre pousser les coeurs en frequence au dela de ce qui est soutenable en continu mais en changeant regulierement de coeur de sorte qu'en moyenne on reste dans les specs; la latence sature depuis un moment et si augmenter la bande passante reste possible et permet de compenser un peu, ce n'est pas non plus une solution pour tout -- la seule source de progression a long terme c'est la parallelisation. Et faire une decoupe en (simplement) 10 process n'est pas simple du tout et pas toujours possible. Comment alors decouper un 100 process ou plus? On peut commencer a envisager des algo ou il faut plus de calcul mais mieux parallelisable donc on gagne en latence, mais meme cela ce n'est pas simple non plus. Il faudra de toute maniere de l'aide des langages pour la decoupe -- et simplement avoir une notion de process ne suffira pas.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  16. #316
    Nouveau Candidat au Club

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Afghanistan

    Informations forums :
    Inscription : Juin 2003
    Messages : 452
    Points : 0
    Points
    0
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    Si j'ai bonne memoire, l'approche d'Erlang fonctionne bien dans certains cas "faciles", ou il y a une decoupe naturelle en thread/process. Le probleme a mon avis est dans les cas difficiles, ou si on decoupe on se retrouve avec la question de la synchronisation et du risque qu'au dela d'un nombre relativement petit de processeurs, on ne sache plus progresser.

    Comme les perfs en monothreads vont saturer/saturent deja -- on commence a voir des propositions un peu folle du genre pousser les coeurs en frequence au dela de ce qui est soutenable en continu mais en changeant regulierement de coeur de sorte qu'en moyenne on reste dans les specs; la latence sature depuis un moment et si augmenter la bande passante reste possible et permet de compenser un peu, ce n'est pas non plus une solution pour tout -- la seule source de progression a long terme c'est la parallelisation. Et faire une decoupe en (simplement) 10 process n'est pas simple du tout et pas toujours possible. Comment alors decouper un 100 process ou plus? On peut commencer a envisager des algo ou il faut plus de calcul mais mieux parallelisable donc on gagne en latence, mais meme cela ce n'est pas simple non plus. Il faudra de toute maniere de l'aide des langages pour la decoupe -- et simplement avoir une notion de process ne suffira pas.
    c'est plus compliqué que ca ca dépend du type de problèmes a résoudre
    pourquoi on créer des carte physique engine ou des carte graphique ??

    on spécialise le processeur pour gagné de la vitesse

    l'idéale serait un processeur regravable par logicielle mais bon la c'est pas demain la vaille peut-être avec les nanos technologie

    de plus java permet de faire de la programmation en parallèle efficacement a cause de syntaxe de thread build-in

  17. #317
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 354
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 354
    Points : 1 419
    Points
    1 419
    Par défaut
    par exemple OpenMP est devenu un standard pour la parallelisation sur des processeurs a memoire partagé et il n'est disponible qu'en C++ et fortran

    mais ou est Java ?

    en plus comme dit precedemment, il faut sacrement reflechir au parallelisme de demain, et les processus/threads seront largement insuffisant.

  18. #318
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par epsilon68
    plus comme dit precedemment, il faut sacrement reflechir au parallelisme de demain, et les processus/threads seront largement insuffisant.
    1/ openMP n'est pas la solution dans ce cadre. C'est quelque chose de vraissemblablement tres utile dans son domaine mais qui est tres marque par celui-ci.

    2/ Les processus et les threads seront ce qui sera utilise. Le probleme est de savoir comment le programmeur interragira avec eux.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  19. #319
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par super_navide
    c'est plus compliqué que ca ca dépend du type de problèmes a résoudre
    pourquoi on créer des carte physique engine ou des carte graphique ??

    on spécialise le processeur pour gagné de la vitesse
    Il faut que l'application s'y prete pour que specialiser permette de gagner suffisemment pour en valoir la peine. Quelque chose d'aussi parallele dans son principe que le calcul graphique s'y prete en effet tres bien.

    l'idéale serait un processeur regravable par logicielle mais bon la c'est pas demain la vaille peut-être avec les nanos technologie
    Les FPGA sont disponibles depuis longtemps. Il y a d'ailleurs des circuits qui combinent FPGA et processeurs.

    de plus java permet de faire de la programmation en parallèle efficacement a cause de syntaxe de thread build-in
    A ma connaissance Java ne resoud pas le conflit qu'il y a entre heritage et synchronisation (faire une recherche sur "inheritance synchronization anomaly" si vous ne savez pas de quoi je parle).
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  20. #320
    Nouveau Candidat au Club

    Profil pro
    Inscrit en
    Juin 2003
    Messages
    452
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Afghanistan

    Informations forums :
    Inscription : Juin 2003
    Messages : 452
    Points : 0
    Points
    0
    Billets dans le blog
    1
    Par défaut
    le parralelisme peut se penser de plusieur façon
    processeur vectoriel ou par thread

    vectoriel j'entend faire N operation simple (addition / division / multiplication/affectation /comparaison) en même temps (exemple pour un multiplication de matrice c'est utile )

    lequel de ces concept est le meilleur ? le seconds est implémenté dans les carte graphique

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, 16h15
  2. [Débat] .NET vs JAVA/J2EE
    Par tssi555 dans le forum VB.NET
    Réponses: 5
    Dernier message: 10/12/2008, 07h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo