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. #861
    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
    C'est justement ce qui manque au c++ des apis de génération de code,car ca permettrait de compenser l'absence d'apis de réflections
    et de permettre de faire facilement des langages de script facile a utiliser et spécialiser pour un domaine d'utilisation et bcp plus puissant que java car
    celon les cas on pourrais y ajouter un garbage collector adapter au besoins...

    Je trouve que c'est une façon de concevoir un logiciel
    construire un noyaux en C++ pour ce qui nécéssite de la performance
    et y gréffé des modules écrit avec des langage de scripts adapté au besoin metier.

  2. #862
    Membre averti Avatar de Kujara
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 262
    Points : 358
    Points
    358
    Par défaut
    HMmmmm, ça s'apelle c# .....

  3. #863
    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
    Oui mais c# c'est microsoft et c'est lourd ...
    C++ a un avantange c'est légé ..

  4. #864
    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 Voir le message
    Je trouve que c'est une façon de concevoir un logiciel
    construire un noyaux en C++ pour ce qui nécéssite de la performance
    et y gréffé des modules écrit avec des langage de scripts adapté au besoin metier.
    Ajouter un interpreteur TCL ou Python ou Ruby ou Lua ou Lisp... a une application n'est pas un probleme.

    C'est comme ca que sont construit les applications sur lesquelles je travaille; mais l'experience montre qu'il y a un gain en performance et en maintenabilite a tout faire en C++ quand meme; bien qu'une partie du gain en maintenabilite soit du au fait que les personnes faisant du C++ sont plus competants en informatique (et donc tienne compte de cet aspect dans la conception) que ceux qui utilise le langage d'extension (qui ont tendance a etre des specialistes du domaine sans formation et sans interet reel pour l'informatique).
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  5. #865
    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
    la génération de code permet d'avoir l'avantage d'un interpreteur et la puissance d'un langage compilé en natif.
    en gros c'est faire du JIT ce que fait java.


    De plus dire que tous faire en C++ permet d'avoir une meilleur productivité et performance et maintenabilité pour tous logiciel est faux.
    C++ permet de la performance mais il faut plus de temps pour développé
    Java est moins performant mais permet de développé plus rapidement

    Je pense qu'on ne peut pas avoir un langage avec lequel on peut développé très rapidement une application performante.
    example le GC il permet d'éviter de s'occuper de la mémoire mais on perd en perfomence.

  6. #866
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 045
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 045
    Points : 11 368
    Points
    11 368
    Billets dans le blog
    10
    Par défaut
    mais l'experience montre qu'il y a un gain en performance et en maintenabilite a tout faire en C++ quand meme
    @super_navide : où as-tu vu 'productivité' dans cette phrase?
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  7. #867
    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
    gain de maintenabilté implique gain de productivié

  8. #868
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 045
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 045
    Points : 11 368
    Points
    11 368
    Billets dans le blog
    10
    Par défaut
    ok, dans ce cas là, je suis d'accord avec ta phrase
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  9. #869
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 045
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 045
    Points : 11 368
    Points
    11 368
    Billets dans le blog
    10
    Par défaut
    J'ajouterais que dans la comparaison Java/C++, la maintenabilité du code a la même difficulté de mise en place, alors qu'on perd en productivité (de manière générale) en C++ par rapport au Java
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  10. #870
    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 Voir le message
    De plus dire que tous faire en C++ permet d'avoir une meilleur productivité et performance et maintenabilité pour tous logiciel est faux.
    J'ai jamais compare avec Java -- j'ai toujours ecrit que je n'avais pas assez d'experience reelle en Java pour en parler (bien que je me demande s'il y en a beaucoup ici qui remplissent les conditions que je m'impose).

    Quand j'ai parle de maintenabilite, c'etait dans le contexte precis de code en C++ et de code dans le langage d'extension pour notre application; et j'ai cite au moins un facteur qui rend l'extrapolation a autre chose difficile: la difference de qualification des personnes impliquees.

    C++ permet de la performance mais il faut plus de temps pour développé
    Java est moins performant mais permet de développé plus rapidement
    J'aimerais bien savoir sur quoi tu te bases (en particulier en C++ je sais que j'ai plus d'un compromis possible entre temps de developpement et performance).
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  11. #871
    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 : 39
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    Citation Envoyé par super_navide Voir le message
    Je pense qu'on ne peut pas avoir un langage avec lequel on peut développé très rapidement une application performante.
    example le GC il permet d'éviter de s'occuper de la mémoire mais on perd en perfomence.


    OCaml et certains Haskell réussissent cela... mais faut maitriser la théorie sous-jacente pour être très productifs
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  12. #872
    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
    C'est faux avec un GC tu diminu forcement les possibilités d'optimisation car tu n'a pas de controle sur la façon d'organiser les objets en mémoire et sur le moment de leur libération de la mémoire.

  13. #873
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par super_navide Voir le message
    C'est faux avec un GC tu diminu forcement les possibilités d'optimisation car tu n'a pas de controle sur la façon d'organiser les objets en mémoire et sur le moment de leur libération de la mémoire.
    Il répondait évidemment à la première partie de ta phrase...

    --
    Jedaï

  14. #874
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Quand tu utilises un langage autre que l'assembleur (par exemple le C), "tu diminues forcement les possibilités d'optimisation car tu n'a pas de contrôle sur la façon" de choisir let instructions et d'utiliser les registres...

    Et de la même façon, utiliser free et malloc en C n'est pas optimal. Il est bien préférable d'utiliser plutôt brk pour avoir un contrôle plus fin sur les allocations. Malloc n'est qu'un algo générique, pas forcément optimal par rapport à ton code...


    Tu as raison : la solution choisie par la machine ne sera pas forcément optimale, mais elle peut éventuellement surpasser un codeur moyen. Des exemples montrent que du code Caml, Lisp ou Haskell peuvent (dans certains cas) être aussi rapides que du C++, voire du C. Ce n'est pas systématique, mais les compilateurs ont encore des progrès à faire.

    Un garbage collector n'est pas forcément plus lent qu'une gestion à la main avec malloc. Ca dépend du garbage collector et ça dépend du codeur qui fait ça à la main.

    Il faut arrêter de croire qu'un outil de haut-niveau est systématiquement lent.

  15. #875
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 347
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 347
    Points : 20 347
    Points
    20 347
    Par défaut
    Citation Envoyé par super_navide Voir le message
    Mais je préfère le couple Smalltalk + C(C++) qui je pense est bien meilleur que java seul ou C++ seul.

    N'importe qui peut programmer en Smalltalk même un enfant.
    .
    moi je veux bien mais tu ne peux pas faire de projet avec Smalltalk.
    Est-ce que je peux faire une appli de compta avec ça qui tape dans des bases de données et faire du reporting c.a.d génération d'états ?
    Citation Envoyé par LLB Voir le message
    Des exemples montrent que du code Caml, Lisp ou Haskell peuvent (dans certains cas) être aussi rapides que du C++, voire du C.
    La remarque prévaut également : un client me demande une appli de gestion qu'est ce que je peux faire avec Haskell ou Lisp ?

  16. #876
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    Est-ce que je peux faire une appli de compta avec ça qui tape dans des bases de données et faire du reporting c.a.d génération d'états ?
    Si peu qu'il soit nécessaire d'appeler des procédures stockées ou des programmes cobol existants.
    Et comme c'est une application de gestion, en général, il est nécessaire que l'IHM soit très convivial, il faut avouer que ce n'est pas la chose la plus marrante à faire en caml.
    Je ne répondrai à aucune question technique en privé

  17. #877
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    La remarque prévaut également : un client me demande une appli de gestion qu'est ce que je peux faire avec Haskell ou Lisp ?
    Avec Haskell tu peux attaquer une base de données relationnelle avec HDBC, tu peux faire une interface avec Gtk2Hs (qui supporte libglade, donc tu peux créer ton interface visuellement).
    Tu peux trouver d'autres ressources sur Hackage. Je ne doute pas que tu puisses faire une excellente application de gestion en peu de temps pourvu que tu aies les compétences dans ton équipe (et ce serait sans doute ton problème principal, je doute que tu aies beaucoup de programmeurs familiers du paradigme fonctionnel).

    --
    Jedaï

  18. #878
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    La remarque prévaut également : un client me demande une appli de gestion qu'est ce que je peux faire avec Haskell ou Lisp ?
    OK, c'est un autre aspect. Je répondais au propos précédent : ces langages fonctionnels permettent d'être productifs et d'avoir de bonnes performances. Mais il est vrai qu'il y a des limitations, par exemple moins de bibliothèques disponibles par rapport à Java.

    Personnellement, j'utilise F# (il y a d'autres langages qui pourraient convenir) qui satisfait tous mes besoins. Il hérite de la plupart des avantages de Caml, il est compatible avec C# grâce à .NET. La syntaxe est très concise (la différence avec Java ou C++ est impressionnante) et j'ai accès à de nombreuses bibliothèques. Pour presque tous les besoins, F# me satisfait entièrement, sauf si l'on a besoin de vitesse brute. Je ne vais pas m'étendre ici, ça peut faire l'objet d'un autre tro^W débat (par exemple ici).

    Aussi, c'est un peu le problème de ce débat : il est trop vague. D'un côté, certains parlent de programmation système, de jeux vidéo et de vitesse brute, de l'autre on demande des applis de gestion et de la base de données. Il n'y a pas de langage actuellement qui me semble idéal pour tous les types d'applications.

  19. #879
    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 Mat.M Voir le message
    moi je veux bien mais tu ne peux pas faire de projet avec Smalltalk.
    Est-ce que je peux faire une appli de compta avec ça qui tape dans des bases de données et faire du reporting c.a.d génération d'états ?

    La remarque prévaut également : un client me demande une appli de gestion qu'est ce que je peux faire avec Haskell ou Lisp ?
    Ben si en smalltalk tu peut faire un application de gestion

  20. #880
    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 Mat.M Voir le message
    moi je veux bien mais tu ne peux pas faire de projet avec Smalltalk.
    Est-ce que je peux faire une appli de compta avec ça qui tape dans des bases de données et faire du reporting c.a.d génération d'états ?
    Quel est le probleme? Sans information plus precise (je ne connais pas du tout le domaine), la seule chose qui peut manquer dans une distrib de base, c'est des bibliotheques. Ca peut se trouver en dehors. Ca peut se faire en interne. Ce n'est pas rédhibitoire. Quel que soit le langage, sur un projet assez important on va se retrouver a importer des choses externes et a developper des biblitheques internes.

    Oui, si le projet consiste simplement a appeler la fonction X puis instancier la classe Y de la bibliotheque standard, c'est un gain certain de l'avoir. Plus on s'eloigne de ca, moins le gain est important.

    Note que je continue pour autant a penser, qu'un des apports les plus importants de Java etait le fait d'avoir popularise les bibliotheques importantes (et ce n'est pas le seul facteur dans cette popularisation), simplement il ne faut pas non plus surestimer l'importance de cela.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

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
  • 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