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. #881
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet Voir le message
    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.
    Mais il ne faut pas oublier que cela apporte également des inconviénients : les librairies standards évoluent bien plus lentement pour des raisons de compatibilitées... et on se traine les librairies obsolètes de versions en verions !

    a++

  2. #882
    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 adiGuba Voir le message
    Mais il ne faut pas oublier que cela apporte également des inconviénients : les librairies standards évoluent bien plus lentement pour des raisons de compatibilitées... et on se traine les librairies obsolètes de versions en verions !
    Je crois que je l'ai deja ecrit dans une des 59 pages qui precedent. Autre inconvenient: moins de choix (on hesite plus a fournir une alternative a qqch de defini dans le langage qu'a une bibliotheque externe).
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  3. #883
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Sur ce plan-là, moi j'ajouterais juste une petite note.

    Il n'y a pas si longtemps (vers le début des années 2000), en gros la situation était :

    • sur les systèmes unixoides, la plupart des applications étaient en C ou Fortran, la plupart des GUI basés sur X (OpenGL, Motif, etc.).
    • sur les systèmes M$, après avoir eu VB (Basic), puis Delphi (Pascal), tout le monde se tournait vers VC++.


    Mais Linux commençait à bien rentrer dans le marché du PC, et donc les services scientifiques ou moins administratis voyaient moins d'intérêts à avoir des systèmes différents des services administratifs (qui eux tournaient bien entendu sous Win) : machines plus chères, plus d'informaticiens pour gérer le parc. Du coup, la réflexion était pas mal entamée sur "vers quoi aller qui unifierait un peu les développements", en particulier d'applications à fort GUI.

    Sur les systèmes unixoides les gens se sont "naturellement" orientés vers Java (d'abord c'est avant tout un langage de GUI, d'autre part c'était fait par SUN, qui donc équipait pas mal de labos et autres centres , et principalement unixoides). En effet, cela semblait le moyen le plus simple pour, sans tout re-développer, faire tourner de grosses applis à gros GUI de unixoides vers Windows.

    Parallèllement, sur Win, les développeurs découvraient un langage, C++, qui, compte-tenu de l'environnement sur lequel ils étaient (beuacoup moins ouvert et programmable que les autres), leur permettaient enfin de faire des choses plus fines, tant en progammation qu'en système ou en graphique.

    L'équipement des industries s'amplifiant en PCs grâce à l'emérgence de Linux, de plus en plus de développeurs venant du monde Win se retrouvent soit à cheval sur les 2, soit sur unixoides. Comme ils sont habitués aux RAD, et via les RAD à C++ (Visual Studio ou Visual C++), ils ont largement répandu C++ sur les systèmes unixoides.

    Pour moi en gros c'est ça. Et comme de plus les "décideurs" pour la plupart n'y connaissent pas grand'chose, et que c'est du coup "in", ça fait jeune, d'avoir C++, voili voilà...
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  4. #884
    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 souviron34 Voir le message
    ...
    L'histoire que tu raccontes est vraissemblablement celle de ton milieu, mais le monde est beaucoup moins homogène que cela.

    Le C++ n'est certainement pas lié aux GUI (ni les GUI particulièrement liés au C++).

    Le C++ a une présence forte sous Unix depuis longtemps (après tout Kernighan, Ritchie, Stroustrup ont été des collègues pendant longtemps). g++ date de 1987.

    Java a eu du succès parce qu'il a été présenté comme une solution aux problèmes (vrais et supposés) du C++.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  5. #885
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet Voir le message
    [...]
    Java a eu du succès parce qu'il a été présenté comme une solution aux problèmes (vrais et supposés) du C++.
    C'est un peu plus compliqué. Et je suppose que tu le sais d'ailleurs. Java a eu du succès commerciale parce que : il a repris la syntaxe de C++ pour ne pas perdre les développeurs; il a eu l'appui d'une grosse boîte; il a eu une forte publicité dans les revues spécialisées; il a eu des bonnes bibliothèques de bases; il a eu la chance de se voir associé au Web dans les mentalités à un moment où l'Internet explosait; on lui a fait un lot de certification avec cours plus ou moins réel dans des collèges (au sens américain), écoles pour professionnels ou écoles privées.

    Une fois la popularité acquise il s'est tourné vers Smalltalk dont il prouve maintenant être un successeur autoproclamé, bien plus que le C++ qui n'a pas grand chose de la philosophie Smalltalk. -_-

    Attention, je ne cherche pas à démontrer que Java est mauvais... juste que la popularité ne montre rien... d'ailleurs C++ montre bien qu'un langage médiocre peut être extrêmement populaire.

  6. #886
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par Kujara Voir le message
    [...]En tant que professionel, seul les outils actuellement disponibles m'interessent.[...]
    Mais tu ne prétends pas connaître tous les outils actuellement disponible si ?
    Ça serait prétentieux. Ce peut-il que certaines choses soient disponibles et que tu ne les connaissent pas ?

    Les optimisations sont bien sûr propres à un domaine. Mais cela existe.

    Un As d'un domaine avec un langage qu'il maîtrise à la perfection sera probablement plus efficace que tout outil... mais soyons sérieux, l'industrie a souvent des logiciels de qualités déplorables à la conception déplorable. Boehm démontre par la compilation des données de recherche, ces résultats. Les professionnels ont souvent eu une mauvaise formation où le génie logiciel (qui influe bien plus sur le résultat du projet qu'une simple optimisation de code) a été mis de côté. De nos jours, cela pardonne peu. Dans les meilleurs années de la bulle internet n'importe quel personne sachant faire du HTML était engagé par des entreprises de service, même s'il ne connaissait presque rien de l'informatique en dehors de ça. Ça se sent aujourd'hui.

  7. #887
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par Garulfo Voir le message
    Un As d'un domaine avec un langage qu'il maîtrise à la perfection sera probablement plus efficace que tout outil...
    Pour une entreprise, ce n'est pas forcement un bon choix de faire reposer le développement et la maintenance d'un programme sur une seule personne, d'autant plus si c'est un expert. Cela signifie affecter cet expert sur ce programme at vitam eternam, car on n'a pas le temps de former un autre "as", ni les moyens de n'embaucher que des experts. C'est une des raisons pour laquelle les langages "generalistes" prévalent aujourd'hui sur les langages spécialisés.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  8. #888
    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
    Citation Envoyé par Garulfo Voir le message
    Ce peut-il que certaines choses soient disponibles et que tu ne les connaissent pas ?
    Suffisait de lire le reste de mon post? Je le dis et je le répete, trouve moi un compilateur qui optimise mieux que moi, et je serais le premier a en etre content.
    Malheureusement, pour l'instant j'en ai pas vu.

    Mais cela existe
    C'est mignon de dire ça, mais prouve le, s'il te plait :/

    Les professionnels ont souvent eu une mauvaise formation où le génie logiciel
    Tu generalise trop.

    d'ailleurs C++ montre bien qu'un langage médiocre peut être extrêmement populaire.
    Ce forum n'est pas fait pour troller, mais pour argumenter.

  9. #889
    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
    Comme il n'existe aucun équivalent en C++ du framework objectweb asm donc Java est bien supérieur a C++ car se framework ouvre des perspectives de création de langage et d'optimisation de code.

    Mais si quelqu'un trouve un tel framework en C++ je suis super intérréssé...

  10. #890
    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
    Citation Envoyé par super_navide Voir le message
    Comme il n'existe aucun équivalent en C++ du framework objectweb asm donc Java est bien supérieur a C++ car se framework ouvre des perspectives de création de langage et d'optimisation de code.

    Mais si quelqu'un trouve un tel framework en C++ je suis super intérréssé...
    ....

    Une librairie n'existe pas sur c++ donc java est superieur !

    Tu veux une liste de librairies qui n'existent pas sous java, prouvant donc la superiorité de c++ ?


    </sarcasme>

    Arretons ici la discussion si c'est pour sortir des arguments aussi stupides ....

  11. #891
    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
    Toutes les librairies C ++ sont utilisable en Java via les JNI.
    Le framework object web asm ne pas générer des classes C++ .

  12. #892
    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 super_navide Voir le message
    Toutes les librairies C ++ sont utilisable en Java via les JNI.
    Dans ce cas, toutes les bibliothèques Java sont utilisables en C++ en définissant simplement un protocole réseau entre tes applications.

    Enfin, je suis aussi de l'avis de Kujara, ton argument me semble bidon (présenté tel quel). Si je fais un langage qui ne peut quasiment rien faire, mais qui par contre peut utiliser toutes bibliothèques C++, on pourra pas dire qu'il est franchement évolué...
    Je ne répondrai à aucune question technique en privé

  13. #893
    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
    Pas besoin de faire un protocole réseau tu peut créer une JVM dans une programme c++ creer des instances récuperer un pointeur et appleler des méthode java via ce pointeur .

    Ce dont je parle c'est la génération de classe en mémoire en utilisant le comcept de objectweb asm.

    Dans ce cas ce framework est propre a Java

    Le but est de générer ou de modifier une classe existante (pour y ajouter des méthodes par exemple ou changer sont comportement ).

    Et ca en C++ c'est pas possible.

  14. #894
    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
    Ce dont je parle c'est la génération de classe en mémoire en utilisant le comcept de objectweb asm.

    la génération à la volée de code plus ou moins complexe est possible en C++, mais je ne connais pas forcemment la librairie qui fait tout cela d'un seul coup...

    pour infos, il y a des choses en C (qui peuvent être utilisé en C++ bien sûr), qui permettent de jouer avec cela, mais si je ne sais pas exactement ce qui doit être effectué, je ne peux pas te dire laquelle regarder
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  15. #895
    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 screetch Voir le message
    Nous sommes supposes maitriser le C++ et ne plus ecrire la nullitude; meme si de nombreuses choses sont perfectibles dans ce que j'ecris, je l'ecris mieux que je ne pourrais l'ecrire en java avec les memes connaissances; car Java et son paradigme OO permet de resoudre des problemes de facon moins concises que les templates du C++.
    C'est pas le langage qui fait la qualité du code. Si le code est merdique c'est que le développeur est merdique. Et un bon développeur fera du bon code en java comme en c++

    Citation Envoyé par Garulfo Voir le message
    il a eu la chance de se voir associé au Web dans les mentalités à un moment où l'Internet explosait
    Faut reconnaitre que Sun a un peu "forcé" la chance en proposant un framework web beaucoup plus efficace que ce qui existait à coté à l'époque.

    Citation Envoyé par Kujara Voir le message
    ....
    Tu veux une liste de librairies qui n'existent pas sous java, prouvant donc la superiorité de c++ ?


    </sarcasme>
    Je veux bien moi

  16. #896
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 360
    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 360
    Points : 20 377
    Points
    20 377
    Par défaut
    Citation Envoyé par super_navide Voir le message
    Le but est de générer ou de modifier une classe existante (pour y ajouter des méthodes par exemple ou changer sont comportement ).
    Et ca en C++ c'est pas possible.
    Oui cela s'appelle une classe mutante le concept a déjà été abordé dans le forum C++
    Java 1 C++ 0 tu est content ?

    C'est peut-être possible en C++ mais au prix de certains bricolages avec des classes faites d'attributs de type variant.
    Il est vrai que fondalement tous les types de Java en fait , ce sont des types variant comme en Visual Basic
    Si sous Java tu déclares un int ou un double en interne ce n'est ni plus ni moins qu'un variant.
    C++ 1 Java 1

  17. #897
    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 Mat.M Voir le message
    C'est peut-être possible en C++ mais au prix de certains bricolages avec des classes faites d'attributs de type variant.
    Il est vrai que fondalement tous les types de Java en fait , ce sont des types variant comme en Visual Basic
    Si sous Java tu déclares un int ou un double en interne ce n'est ni plus ni moins qu'un variant.
    C++ 1 Java 1
    Euh je suis curieux : d'ou sors cette information ?

  18. #898
    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 gorgonite Voir le message
    la génération à la volée de code plus ou moins complexe est possible en C++, mais je ne connais pas forcemment la librairie qui fait tout cela d'un seul coup...

    pour infos, il y a des choses en C (qui peuvent être utilisé en C++ bien sûr), qui permettent de jouer avec cela, mais si je ne sais pas exactement ce qui doit être effectué, je ne peux pas te dire laquelle regarder
    je veut un framework qui ressemble a object web soit pour générer des classes C++ ou des fonctions C dynamiquement sans passer par des fichiers.

  19. #899
    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
    Oui cela s'appelle une classe mutante le concept a déjà été abordé dans le forum C++
    Java 1 C++ 0 tu est content ?

    C'est peut-être possible en C++ mais au prix de certains bricolages avec des classes faites d'attributs de type variant.
    Il est vrai que fondalement tous les types de Java en fait , ce sont des types variant comme en Visual Basic
    Si sous Java tu déclares un int ou un double en interne ce n'est ni plus ni moins qu'un variant.
    C++ 1 Java 1

    non non non et non regarde le framework object web asm et trouve moi la même chose en C++ pour générer des classes C++ ou C sans utiliser des fichier intermediaire et sans charger de DLL.

  20. #900
    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 veut un framework qui ressemble a object web soit pour générer des classes C++ ou des fonctions C dynamiquement sans passer par des fichiers.
    J'ai deja indique lightening dans le genre. Et bien sur tu peux prendre n'importe quel engine JIT de n'importe quel interpreteur ou machine virtuelle.

    D'ailleurs ton framework n'est pas propre a Java mais plutot a la JVM. Il n'est vraissemblablement pas utilisable avec un compilateur Java natif (gcj par exemple) et utilisable avec n'importe quel langage ciblant la JVM (Scala, Ada et il doit y en avoir d'autres; si on a bien fait un compilateur Ada, rien n'empeche de faire un compilateur C++ ciblant la JVM -- ca m'etonnerait pas que ce soit deja fait d'ailleurs).
    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, 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