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

C++ Discussion :

"Rétrograder" de Java en C++ ? Pourquoi ?


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Minimexé
    Inscrit en
    Août 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Minimexé

    Informations forums :
    Inscription : Août 2009
    Messages : 25
    Par défaut "Rétrograder" de Java en C++ ? Pourquoi ?
    Ah je vais me faire taper sur les doigts par les développeurs C++! Ou pas.

    Car je me dis pour moi, qui fait la "free java", pas la java sans joie, mais la programmation libre d'applications Java

    pourquoi pas passer en C++?
    Quels sont les avantages ou inconvénients?
    Par plateforme? (Android, Apple, Windows, Linux, etc)
    Quels sont les outils libres ou non pour convertir le code? faut-il tuti réécrire à la main?
    Comment se constituer sa propre bilbo-thèque de bibliothèques? (Java base => peut-être plusieurs bibliothèque; Maven => Où trouver des bibliothèques C++, quels sont les systèmes de build*)?

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    pourquoi pas passer en C++?
    Pourquoi une telle question ?
    Tu te plais en JAVA et ne vois pas d'intérêt à passer au C++ ? Alors pourquoi ne pas rester en JAVA ?

    Quels sont les avantages ou inconvénients?
    Tu m'excuseras mais je n'ai pas grand envie de faire un résumé ici des 500 M de sujets qui parlent de ça, à commencer par ce forum, le forum débat, et dans tout l'interweb.

    Quels sont les outils libres ou non pour convertir le code? faut-il tuti réécrire à la main?
    N'ayant jamais eu ce besoin je ne m'y suis pas intéressé. Ca me parait pas impossible, mais le résultat sera surement très moche pour rester poli.

    Comment se constituer sa propre bilbo-thèque de bibliothèques? (Java base => peut-être plusieurs bibliothèque; Maven => Où trouver des bibliothèques C++, quels sont les systèmes de build*)?
    www.google.com
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  3. #3
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Pour les bibliothèques techniques, il y a deux sources majeures: la STL (entre autre <algorithm>) puis boost

    Pour les bibliothèques métier (serveur web, 2D, 3D, etc) c'est à voir à chaque sujet.

  4. #4
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Déjà, il ne s'agit pas de "rétrograder" d'un langage vers un autre : Les possibilités de java et de C++ sont suffisamment semblables pour qu'ils soient considérés à égalité

    Cependant, il faut avouer que java est plus "idiot proof", de par sa philosophie (et l'utilisation de la machine virtuelle, dont le garbage collector) que C++, qui est un langage dans lequel les erreurs de conception se payent "comptant"

    Je ne veux pas dire par là que les développeurs java sont tous incompétents, mais bien que, comme java fait que certaines questions ne se posent de toutes façons pas, un développeur java passant au C++ risque fort de ne pas avoir le "réflexe" de se poser des questions primordiales car, il faut l'avouer : on ne développe absolument pas de la même manière en java qu'en C++

    Pour ce qui est des avantages et des inconvénients, il faut se rendre compte que ce que l'un peut considérer comme un avantage sera sans doute considéré par l'autre comme un inconvénient. Par exemple, C++ apporte beaucoup plus de liberté que java car la mentalité de C++ vis à vis d'une fonctionnalité potentiellement dangereuse (si mal utilisée) est toujours de donner la possibilité d'y recourir, alors que celle de java est d'empêcher de le faire, quitte à mettre des "work arounds sécurisés" qui reviendront au même.

    Je considère, personnellement, que c'est un avantage, car je n'aime pas être "limité" dans mes choix conceptuels par le langage. Mais cette liberté vient avec celle de se tirer une balle dans le pied si les décisions conceptuelles sont mauvaises. Et ca, ca peut être considéré par d'aucuns comme étant un inconvénient.

    Autrement, il y a l'avantage des langages compilés Vs les langages utilisant une machine virtuelle, mais, à l'heure actuelle, cette différence s'avère relativement minime.

    De manière générale, la conversion d'un langage à un autre peut parfaitement être automatisée (c'est d'ailleurs ce que fait n'importe quel compilateur / interpréteur au final ) mais le code ("java" ou "C++") n'a sans doute rien de commun avec ce que tu aurais fait à la main (sans pour autant être "moins efficace", ceci dit ).

    La bibliothèque standard (SL / STL) de C++ est relativement limitée, mais il y a la bibliothèque boost qui préfigure d'une certaine manière de nombreuses évolutions futures à ce niveau là. Et si tu as besoin d'une IHM ou autres composants graphiques, Qt s'avère être un choix judicieux (bien qu'elle souffre du poids de son histoire, débutée bien avant qu'il n'y ait une normalisation correcte de C++)

    Tout ceci étant dit, si tu te pose la question de savoir si tu dois passer au C++, surtout si, dans ton esprit, il s'agit de "rétrograder" de java à C++, mon impression est -- très honnêtement -- que tu n'as absolument aucune raison de faire la transition.

    lorsque tu auras changé ton point de vue et que tu envisageras la liberté conceptuelle et la gestion fine des ressources comme des avantages au lieu de considérer le risque de fuites mémoire (qui ne devraient d'ailleurs plus arriver en C++ modernes) ou celui de risquer de se tirer une balle dans le pied comme des inconvénients, et que tu en viendras donc à considérer que tu va gagner énormément à utiliser C++ au lieu de java (alors que pour l'instant, tu semble persuadé que tu va perdre énormément), alors, oui, il deviendra peut-être intéressant d'envisager la transition.

    Mais tant que tu es dans cet état d'esprit de "risquer de perdre" tes acquis java, il vaut mieux que tu t'en tiennes au langage que tu aimes et maîtrise
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  5. #5
    Membre émérite
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2009
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 552
    Par défaut
    Citation Envoyé par koala01 Voir le message
    De manière générale, la conversion d'un langage à un autre peut parfaitement être automatisée (c'est d'ailleurs ce que fait n'importe quel compilateur / interpréteur au final ) mais le code ("java" ou "C++") n'a sans doute rien de commun avec ce que tu aurais fait à la main (sans pour autant être "moins efficace", ceci dit ).
    Je te trouve optimiste là dessus... Un tel générateur "Java" vers "C++" devrait enrichir le runtime du C++ au point que dépendre de la JVM serait moins grave.

  6. #6
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 183
    Par défaut
    je vais surement me faire insulter par tous les pros-java mais essaye de jouer a minecraft sur un pc moyen et regarde tes fps par rapport a ce qu'est le jeu. voilà pourquoi.

  7. #7
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Citation Envoyé par bretus Voir le message
    Je te trouve optimiste là dessus... Un tel générateur "Java" vers "C++" devrait enrichir le runtime du C++ au point que dépendre de la JVM serait moins grave.
    Pas forcément... Il serait tout à fait possible de produire du code C++ au départ d'un code java (et inversement) automatiquement, à partir du moment où l'on a pu générer un AST du code d'origine. Après tout, c'est ce que font tous les compilateurs, et c'est le principe sur lesquels reposent les framework multi-langages comme .net

    Il y aurait sans doute quelques incompatibilités dans certains sens (ex : le delete qui est absent de java), mais, de manière générale, une fois que le code est correctement parsé, tu peux -- de par la nature "reproductible" et "prédictible" même des langages de programmation -- traduire n'importe quel langage en n'importe quel autre, ou peu s'en faut.

    Je ne parle bien sur ici que de la "génération du code", car il faudrait par la suite compiler effectivement le code généré pour obtenir l'exécutable / la bibliothèque
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

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