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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    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
    Citation Envoyé par kpouer Voir le message
    FloMo, tu fais des généralités. Le fait d'être un bon développeur c++ ne fais pas plus de toi un bon développeur java que l'inverse.
    Dans les 2 langages il y a des spécificités a connaitre, et tous les développeurs c++ qui tentent de faire du java comme ils font du c++ feront de la merde
    C'est certain, mais un développeur Java qui tente de faire du C++ comme il fait du Java risque d'avoir quelques surprises aussi. Au delà de ça, le codeur C++ pourra très bien utiliser son code existant en Java mais l'inverse n'est pas assuré.

  2. #2
    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
    Bien entendu un développeur java fera effectivement une catastrophe s'il essaye de coder du c++ comme du java.
    Et non tu prend un code c++ tu ne peux pas obligatoirement l'adapter à la lettre en java, ou le résultat sera minable. Mais bon c'est peut être après avoir fait des trucs comme ca qu'après les gens vont dire que java c'est lent

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    734
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 734
    Par défaut
    Citation Envoyé par FloMo Voir le message
    ( qui, de toutes façons, a souvent besoin du C++ ) .
    Je fait du java à mon travail, à peu près tous les jours, et je n'ai jamais eut besoin du c++.

    Citation Envoyé par FloMo Voir le message
    Par contre, si tu ne connais que Java, t'es limité.
    Il en va de même si tu connais que le c++ ou tout autre langage. Il faut avoir plusieurs cordes à son arc. Je remarque cependant, le java est bien plus utilisé que le c++ dans mon secteur. (banque-assurance)

    Citation Envoyé par FloMo Voir le message
    Tu prends une plateforme de développement riche comme Qt et tu développes beaucoup plus vite qu'avec Java car tu n'as aucune contrainte de performances, portabilité ou accès bas-niveau.
    Aujourd'hui il est possible d'utiliser Qt avec java. Java étant portable natif, on n'a pas besoin de s'en pro-occuper (sauf en cas d'utilisation de jni/jna). Pour les performances, si tu ne développes pas correctement ton c++, tu peux avoir des baisses de performance ou des fuites de mémoire. Ces problèmes, tu peux les retrouver, je pense, dans d'autres langage.

    Citation Envoyé par FloMo Voir le message
    Java, c'est facile à coder, mais l'enfer à développer.
    Je n'éprouve pas ce sentiment. Mais cette remarque, dépend à quel secteur on l'applique. Pour le secteur web/intranet, je doute (je peux me tromper) que le c++ propose des outils du même niveau que ceux dont on dispose en java. Que ce soit pour le développement ou le déploiement.

  4. #4
    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
    Citation Envoyé par Tarul Voir le message
    Je fait du java à mon travail, à peu près tous les jours, et je n'ai jamais eut besoin du c++.
    Tout dépend ce que tu fais.

    Citation Envoyé par Tarul Voir le message
    Il en va de même si tu connais que le c++ ou tout autre langage. Il faut avoir plusieurs cordes à son arc. Je remarque cependant, le java est bien plus utilisé que le c++ dans mon secteur. (banque-assurance)
    Je veux dire par là que quelqu'un qui connait le C++ s'aura s'adapter au C ( pointeurs & co ) comme au Java ( objet ). Après, c'est vrai que le Java est très utilisé, c'est indéniable.

    Citation Envoyé par Tarul Voir le message
    Aujourd'hui il est possible d'utiliser Qt avec java. Java étant portable natif, on n'a pas besoin de s'en pro-occuper (sauf en cas d'utilisation de jni/jna). Pour les performances, si tu ne développes pas correctement ton c++, tu peux avoir des baisses de performance ou des fuites de mémoire. Ces problèmes, tu peux les retrouver, je pense, dans d'autres langage.
    Pour les performances, le compilateur fait déjà une bonne optimisation ( sans compter la gestion simplifiée des threads par les bibliothèques tierces ). Pour ce qui est des fuites mémoires et autres, la majorité des bibliothèques actuelles intègrent un ramasse-miettes ( Qt, Boost ) . De plus, beaucoup de problèmes rencontrés en C++ seront bientôt résolus directement dans le langage d'ici 1 ou 2 ans ( nouveau standard C++-0x, ratifié ISO en 2009, déjà géré par GCC 4.3 ) .

    Citation Envoyé par Tarul Voir le message
    Je n'éprouve pas ce sentiment. Mais cette remarque, dépend à quel secteur on l'applique. Pour le secteur web/intranet, je doute (je peux me tromper) que le c++ propose des outils du même niveau que ceux dont on dispose en java. Que ce soit pour le développement ou le déploiement.
    Je suis entièrement d'accord avec toi pour le web, j'utilise le C++ côté GUI ( et bibliothèques applicative ) et le PHP côté web service ( aidé par le C++ si problème de performance il y a ) .
    Par contre, la prise de tête en Java pour déployer le moindre programme... surtout si tu ne connais pas l'architecture Java.

  5. #5
    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 Voir le message
    Je suis entièrement d'accord avec toi pour le web, j'utilise le C++ côté GUI ( et bibliothèques applicative ) et le PHP côté web service ( aidé par le C++ si problème de performance il y a ) .
    Par contre, la prise de tête en Java pour déployer le moindre programme... surtout si tu ne connais pas l'architecture Java.
    Incroyable : java c'est dur a déployer quand on sait pas comment ca marche.
    Ben oui c'est la même chose pour tout, quand on connait pas on galère

  6. #6
    Membre émérite

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    734
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 734
    Par défaut
    Citation Envoyé par FloMo Voir le message
    Par contre, la prise de tête en Java pour déployer le moindre programme... surtout si tu ne connais pas l'architecture Java.
    Je ne suis pas d'accord. Un programme java sous forme de jar est facile à déployer. Un simple zip(les scripts batchs sont devenus inutiles), un installeur en java ou un java web start rend cette opération très simple.

    Pour les applications plus complexes genre une application web avec ou sans EJB, il y a des tâche ant dédiés au déploiement. Maven simplifie aussi ce genre d'opération. Parfois un simple déploiement à chaud par l'interface web du serveur d'application ou du conteneur.

  7. #7
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 539
    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 539
    Par défaut
    Citation Envoyé par FloMo Voir le message
    Java, c'est facile à coder, mais l'enfer à développer.
    D'accord mais peux-tu plus développer ?

  8. #8
    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
    Citation Envoyé par Mat.M Voir le message
    D'accord mais peux-tu plus développer ?
    Oui : le langage en lui-même est très simple. C'est d'ailleurs son but à la base : créé facilement des petites applets pour s'amuser.

    Le problème, c'est que ça devient vite une usine à gaz car on est totalement prisonnier du modèle objet. D'un point de vue conceptuel, c'est sympa, c'est carré. Mais d'un point de vue productivité, c'est très moyen.

    Pour passer une application C++ entière en UTF-8 par exemple, c'est 2 appels maximum ( un pour l'interface, un pour les flux de données, après c'est de la customisation au cas par cas ). En Java, c'est une autre paire de manche.

    Dans le même esprit, la dépendance entre Java et le GUI ( Gtk+ sous Linux ) peut rapidement poser des problèmes. Pour le GUI toujours, si on veut personnaliser le moindre élément, c'est la croix et la bannière : il faut déjà penser optimisation. En C++, tu as l'embarras du choix : attaquer le moteur de rendu, mettre une feuille de style, ... de toutes façon, l'optimisation est en très grande partie le travail du compilateur ( hormis l'aspect SQL & co, bien entendu ), donc la seul limite est l'imagination.

    Au niveau cross-plateforme, c'est le même topo :
    - un moteur web rigoureux et performant ? WebKit,
    - un moteur multimédia ? Phonon, VLC,
    - de la 3D ? OpenGL,
    - ...

    Concrètement, j'ai eu à réaliser une application au niveau réseau récemment : à faire fonctionner sous Linux, Windows, SCO avec des performances accrues. C et autotools : du vrai cross-plateforme. C'est vrai, une bibliothèque autre que la standard m'aurait aidé, mais bon. Un seul source pour 3 plateformes, fuites mémoires contrôlées ( en majeure partie, personne n'a le contrôle total ) grâce à Valgrind : ça tourne depuis un moment et on n'a pas besoin de revenir dessus.

    Pour avoir travaillé avec les 2 environnements, je constate que Java est de la poudre aux yeux : c'est bien uniquement dans les cas académiques.

  9. #9
    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
    Par défaut
    Citation Envoyé par FloMo Voir le message
    Pour avoir travaillé avec les 2 environnements, je constate que Java est de la poudre aux yeux : c'est bien uniquement dans les cas académiques.
    Quel genre de projet as tu fait avec Java ? Car dans le monde industriel c'est surtout utilisé pour faire du Java EE ce qui est loin d'être un cas académique. (comme c'est du Java EE, le déploiement n'est pas compliqué car il suffit de déposer l'EAR ou le war sur le serveur d'application)

    Oui : le langage en lui-même est très simple. C'est d'ailleurs son but à la base : créé facilement des petites applets pour s'amuser.
    C'est rarement utilisé pour faire des applets en fait. Le but de base de Java, c'est surtout d'offrir un compilateur compilant vers un bytecode multiplateforme et une machine virtuelle sachant l'exécuter.

  10. #10
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 539
    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 539
    Par défaut
    Citation Envoyé par FloMo Voir le message
    Oui : le langage en lui-même est très simple. C'est d'ailleurs son but à la base : créé facilement des petites applets pour s'amuser.

    Pour passer une application C++ entière en UTF-8 par exemple, c'est 2 appels maximum ( un pour l'interface, un pour les flux de données, après c'est de la customisation au cas par cas ). En Java, c'est une autre paire de manche.
    .
    Comme on l'aura remarqué je suis pro C/C++ et pas très fana de Java ( et autres C# sharp machin ) .
    Ceci dit Java et consorts comme C# c'est sensé "améliorer la productivité et réduire les lignes de code" , non ?
    En C/C++ pour déclarer une chaine et l'affecter il faut utiliser strcpy en faisant gaffe aux débordements de tableaux .
    Remarque il y a std::string et CString pour MFC,String pour la VCL

    C'est curieux concernant ton exemple de chaine de caractere avec Utf8 cela devrait être plus simple en Java, il ya des classes pour ça ? ( je ne suis pas assez calé sur Java )

    Le problème, c'est que ça devient vite une usine à gaz car on est totalement prisonnier du modèle objet. D'un point de vue conceptuel, c'est sympa, c'est carré. Mais d'un point de vue productivité, c'est très moyen.
    C'est vrai en Java et autres langages avec GC comme VB.NET et C# on ne peut pas faire un code source "hétéroclite" et déclarer des fonctions que j'appelle dans le vide c.a.d. du genre _cdecl c.a.d. non encapsulée dans une classe

  11. #11
    Membre éclairé Avatar de rufa11
    Consultant informatique
    Inscrit en
    Décembre 2007
    Messages
    300
    Détails du profil
    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 300
    Par défaut
    salut,l'avantage de java c'est la portabilité,plus simple,le graphisme,et pour l'inconvegnent c'est qu'il na pas la gestion des pointeurs et il'est résever au web seulement,pour le c++ son avantage c'est les pointeurs est il'est réserver pour les OS mais malheuresement il n'st pas universel.

  12. #12
    Membre confirmé
    Homme Profil pro
    Développeur .NET/C/C++
    Inscrit en
    Septembre 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET/C/C++
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2007
    Messages : 71
    Par défaut
    Citation Envoyé par rufa11 Voir le message
    salut,l'avantage de java
    Bon, là déjà ça part mal. Quelqu'un qui s'amène en disant "voilà, c'est comme ça et pas autrement", j'sais pas pourquoi mais d'office je me mefie de ca qu'il va dire...
    c'est la portabilité,
    là, je suis bien obligé d'admettre que c'est vrai (même si le C++ reste très portable, mais requiert en général une recompil)
    plus simple,
    ce serai bien d'expliciter ce que tu entends par plus simple. Mais c'est vrai que d'une manière générale, java est plus simple

    le graphisme,
    ????
    et pour l'inconvegnent c'est qu'il na pas la gestion des pointeurs
    bizarre, en général on considère cela plutot comme un avantage.

    et il'est résever au web seulement,
    ah bon, première nouvelle

    pour le c++ son avantage c'est les pointeurs
    avantage ou désavantages?

    est il'est réserver pour les OS mais malheuresement il n'st pas universel.
    Ben pas de bol, le C++ a été conçu de sorte à pouvoir convenir dans un maximum d'applications. Cela ne signifie pas qu'il est universel, mais quel langage l'est?

  13. #13
    Invité de passage
    Homme Profil pro
    Ingénieur telecom
    Inscrit en
    Juillet 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur telecom
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2014
    Messages : 1
    Par défaut
    Citation Envoyé par aliasjcdenton Voir le message
    Quels sont les avantages et les inconvénients respectifs majeurs des langages de programmation C++ et Java l'un vis-à-vis de l'autre ?

    Java plus utilisé qu C++

  14. #14
    Membre très actif Avatar de Sennad
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2014
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 180
    Par défaut
    Citation Envoyé par aektiareti Voir le message
    Java plus utilisé qu C++
    C'est quoi cet argument bidon ? ...

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