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

Langages de programmation Discussion :

Quel langage entre Java ou C++


Sujet :

Langages de programmation

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 2
    Points : 0
    Points
    0
    Par défaut Quel langage entre Java ou C++
    Bonjour tout le monde, je sais que la question est récurrente mais je n'ai pas encore trouvé la réponse que je cherchais. Avec des amis on a décidé de tenter de créer un petit jeu video 3D pour pouvoir jouer entre nous. J'hésite donc entre le C++ et Java. Je sais que chacun a ses avantages et ses défauts :
    - Java : multi plateformes
    - C++ : plus performant

    La 3D sera dans le style de minecraft et cube world et j'aimerai savoir quel langage est le plus adapté pour un jeu de ce type, quel langage permet d'utiliser les fichier .cub (voire cube world) et quelle interface 3D utiliser entre Java3D, OpenGL, JOGL ou encore d'autre si il y en a une plus adaptée.

    Pour information je travaille sur 2 ordis en parallèle : un sous windows et l'autre sous linux. Le langage doit impérativement être compatible avec windows et si possible avec linux.

    Merci d'avance pour vos réponses, A+

  2. #2
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Citation Envoyé par Pyoko31 Voir le message
    J'hésite donc entre le C++ et Java. Je sais que chacun a ses avantages et ses défauts :
    - Java : multi plateformes
    - C++ : plus performant
    Non, ce ne sont pas les bons paramètres. Pour commencer le C++ est bien plus portable que Java, même si tu peux toujours avoir recours à des solutions de compilation natives (avec leurs limitations).

    Concernant les langages eux-mêmes...
    * C++ : bas-niveau (gestion manuelle à semi-manuelle de la mémoire), procédé de compilation daté et long (gestion manuel de l'ordre de compilation, déclarations redondantes, mourir de vieillesse avant de voir le résultat des changements effectués) et autres anachronismes.
    * Java: haut-niveau, moderne, mais ce haut niveau se paie en termes de performances et de latence imprévisible. En conséquence il vous faudra faire des pieds et des mains pour éviter les allocations dans un vaste monde (recyclage à fond et tableaux plutôt qu'objets individuels, ou sérialisation des objets inutilisés pour réduire le graphe d'objets), ce qui affectera la qualité de votre code.


    Et plus important, quels outils voulez-vous utiliser ? Le C++ offre UE4, Cryengine, PhysX, Cocos et des bindings directs vers la SDL, DirectX, OpenGL, Metal et toutes les API des OS, sans avoir besoin de passer par des intermédiaires. Plus des pelletées de bibliothèques pour tout et n'importe quoi dans le JV. Alors qu'avec Java vous allez utiliser quoi ? Deux pauvres bindings pour telle ou telle API ?

    Pour moi il y a deux bons choix aujourd'hui pour le dév de JV : C++ et C# grâce à Unity (et JS pour le web). Les outils d'abord.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 2
    Points : 0
    Points
    0
    Par défaut
    Merci beaucoup pour ta réponse. C'est marrant c'est un peu le contraire de ce que j'avais vu sur d'autres forums mais je pense qu'ils ne s'y connaissaient pas. Sinon est-ce que tu saurais si le C++ permet d'utiliser des fichier .cub comme dans Cube World ? Si oui, ce serait génial car on y gagnerait énormément de temps pour la modélisation. Et par rapport aux outils, l'OpenGL me tente bien car mon père (qui est informaticien) l'utilise un peu.

  4. #4
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Citation Envoyé par Pyoko31 Voir le message
    C'est marrant c'est un peu le contraire de ce que j'avais vu sur d'autres forums mais je pense qu'ils ne s'y connaissaient pas.
    Concernant la portabilité je présume ? En fait c'est un peu plus compliqué que ça :

    * Le C++ est livré "nu", tu as tout juste de quoi lire des fichiers et écrire sur la console. C'est ce qui fait que le C++ est si facile à porter et que des compilos existent pour presque toutes les plateformes. En revanche ça veut dire que dès lors que tu veux créer une fenêtre et afficher quelque chose il te faut soit passer par des API spécifiques à chaque OS, soit utiliser une bibliothèque tierce-partie avec ses propres limites de compatibilité.

    * Java en revanche est un mammouth, déjà livré avec de grandes bibliothèques en standard. C'est ce qui fait qu'il est si compliqué à porter même s'il est quand même présent sur de nombreuses plateformes. En revanche tout code écrit avec ces bibliothèques standard a la garantie de tourner tel quel partout où Java est supporté et certifié.

    En fin de compte si tu veux écrire une application bureautique pour PC et mobiles, Java a bien plus de chances de te faciliter la vie en termes de portabilité. Mais pour le jeu Java n'inclut pas d'API 3D ou Audio standard, et il n'est pas dispo sur plusieurs consoles. Alors que le C++ a, lui, des biblios très portables pour tout ça. Et les biblios Java pour ça ne sont souvent que des portages des biblios C++ en question.


    Notes :
    a) OpenGL est parfait si tu veux créer ton propre moteur. Mais de nos jours c'est une tâche titanesque, bien qu'intéressante, et tu ne finiras jamais ton jeu. Si tu veux faire un jeu utilise un moteur tout fait comme Unity (parfait pour le débutant) voire Gamemaker (encore plus accessible aux débutants), ou UE4 (plutôt fait pour des pros et de grandes équipes).

    b) Je ne connais pas cubeworld ou le format cub. Cherche donc ".cub format library" ou "cubeworld library".

Discussions similaires

  1. stage C C++ JAVA quel langage me conseiller?
    Par B65AcR dans le forum Emploi
    Réponses: 5
    Dernier message: 07/02/2014, 11h47
  2. Réponses: 101
    Dernier message: 07/03/2010, 02h55
  3. JAVA ou PERL : Quel langage utiliser ?
    Par nicolep dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 30/12/2008, 20h01
  4. Quel langage entre vb.net c#.net c++.net java ?
    Par heeedi dans le forum Débuter
    Réponses: 7
    Dernier message: 13/12/2008, 21h53
  5. Comparer des fichiers de données : Quel Langage ?
    Par Anonymous dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 24/04/2002, 22h37

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