CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Java, un vrai risque ?

lkttsu
lkttsu
Niveau 10
18 juillet 2012 à 03:30:05

Bonsoir à tous, enfin, devrais-je dire, bon matin...

Je réfléchi durement et je me dis que le Java a beaucoup d'aspects positifs (simplicité, portabilité) et négatifs (lenteurs, non-optimisation) qui ont été répandus à cause de Minecraft.
Je voulais savoir, est-ce vrai et est-ce une bonne chose d'apprendre le Java plutôt que le C++ (ma prochaine étape après le C)

Courtoisement

Pseudo supprimé
Pseudo supprimé 18 juillet 2012 à 04:47:08

Je pense qu'il faut que tu essaye de savoir ce que tu compte faire, pour ensuite utiliser le langage approprier.
Et bon matin a toi :hap:

tbop2
tbop2
Niveau 10
18 juillet 2012 à 09:54:20

Ce n'est absolument pas un risque de developper en Java en tant que tel. Apres tout depend du contexte... mais cette question ouverte reste la meme pour tout debut de projet logiciel en fait.

N_I_C_S
N_I_C_S
Niveau 5
18 juillet 2012 à 14:05:33

Exactement !
Sinon pour l'apprentissage je te conseille de t'intéresser aux théories au-dessus des langages, comme la Programmation Orientée Objet (POO), ensuite la différence entre les langages c'est des détails...

Par contre, une différence de taille entre C/C++ et Java : C++ est le langage traditionnel de la 3D donc il y a une tonne de bibliothèques/logiciels tout faits dans tous les domaines, alors qu'en Java il faut bien souvent développer ses propres fonctionnalités :oui: .

[-ArK-]
[-ArK-]
Niveau 30
18 juillet 2012 à 14:26:35

Pour de la 2D en tout cas tu peux foncer sur le java, t'auras rarement des problèmes de lenteur et t'as de très bonne librairies pour ça (Slick entre autres).

Pour de la 3D c'est discutable :(

Aldebran
Aldebran
Niveau 10
18 juillet 2012 à 19:49:10

"et négatifs (lenteurs, non-optimisation) qui ont été répandus à cause de Minecraft. "

Minecraft est terriblement mal optimisé, et ce n'est pas la faute de Java.

On peut tout à fait faire de la 3D avec Java (avec JOGL notamment), et vu qu'une bonne part des calculs est externalisé sur le GPU de nos jours, on peut avoir quelque chose de très performant.

Après, c'est évident que la majorité des moteurs 3D est développé en C++, donc si tu veux utiliser un moteur existant reconnu (Ogre par exemple) ça peut être mieux de partir sur C++.

Bref, il n'y a pas de vrai risque à apprendre le Java. D'ailleurs selon moi un bon informaticien devrait connaître le Java et le C++. A toi de choisir dans quel ordre, sachant que lorsque tu en maîtriseras un, apprendre l'autre sera relativement simple.

Paulop
Paulop
Niveau 12
18 juillet 2012 à 20:36:23

Java le langage n'est pas plus lent qu'un autre (en tout cas rien d'assez significatif)
Java le framework et les librairires par contre, ça peut être le cas. La librairie de mathématique par exemple est assez lente par défaut.

En faisant attention tu n'auras aucun problème à travailler en java.

godrik
godrik
Niveau 30
18 juillet 2012 à 22:38:36

Et encore une fois, une fois que tu as une bonne maitrise d'un langage similaire a java, le passage d'un langage a un autre ne devrait pas etre un trop gros soucis.

steunwellJV
steunwellJV
Niveau 10
20 juillet 2012 à 15:24:07

D'apres ce que j'ai compris c'est surtout à ses débuts que java était très lent et depuis il inverse la tendance et devient plus rapide il a malheuresement son image d'avant.

Et puis pour MC ce n'est qu'un jeu il ne faut pas juger sur un mais sur plusieurs.

Apprendre le java n'est pas une perte de temps.

KouicKouic
KouicKouic
Niveau 6
20 juillet 2012 à 19:43:49

Arrêtez moi si je me trompe,
Java transformant son bytecode à la volé peux utiliser les meilleurs instructions (SSE & co) disponible sur le processeur. En revanche, un programme C compilé pour fonctionner sur tout les PC (x86, la base sans instructions plus évolués) tournera peut être moins vite que le java.

Perso, ce que je reproche a Java c'est comment il est utiliser en général. Bcp de couches dans les appli avec bcp de code pour lier les couches et au final ca devient moins lisible.
Meme remarque pour le C++, je suis moins virulant que Linus Torvalds a ce sujet, mais dans le fond je le comprend a 100%.

chris_27
chris_27
Niveau 10
20 juillet 2012 à 22:37:46

Oui.

[ Ceci était une réponse systématique à la vue du titre du thread. Il ne faut pas me tenter, surtout un vendredi. :o)) ]

Le java, ce n'est carrément pas aussi portable que ce qu'on raconte. Entre le manque de spec dans le langage même, et les JVMs implantées de façon douteuses sur les archis hors des grands classiques, méfiance !

À choisir entre C++ et Java, commence par le C++. C'est bien plus simple de passer de C++ à Java que l'inverse en tout cas. Ma (pas si) mauvaise langue ajoute : c'est mieux d'apprendre sur un langage où les choses sont bien ficelées en premier.

chris_27
chris_27
Niveau 10
20 juillet 2012 à 22:40:10

« En revanche, un programme C compilé pour fonctionner sur tout les PC (x86, la base sans instructions plus évolués) tournera peut être moins vite que le java. »
:d) tu rêves. À efforts et techniques de gourous égales, le C sera au mois aussi rapide (et souvent nettement plus rapide).

godrik
godrik
Niveau 30
20 juillet 2012 à 23:01:19

"Java transformant son bytecode à la volé peux utiliser les meilleurs instructions (SSE & co) disponible sur le processeur. En revanche, un programme C compilé pour fonctionner sur tout les PC (x86, la base sans instructions plus évolués) tournera peut être moins vite que le java."

En effet, un cretin qui programme aura des perfs de merde. Quelqu'un de raisonnable reconnaitra le prbleme extraira les partie importante du code dans une bibliotheque dynamique qu'il compilera pour les architectures approprie et chargera la version qui va bien dynamiquement (c'est ce que fait mplayer).

Apres, quand on a besoin de performance, on place generalement une limite inferieur sur les architectures qui feront tourner le code. Et du coup poser une limite sur "supporte qu moins ce niveau d'instruction" est raisonnable. Finalement, avec l'arrive des machines 64 bits, les differences entre jeu d'instruction est actuellement assez faible.

Finalement, le soi disant gain de JIT compiling est tres theorique et n'a, a ma connaissance, jamais ete demontre dans des cas qui compte vraiment.

KouicKouic
KouicKouic
Niveau 6
21 juillet 2012 à 00:24:29

Bien, je partais du principe pas si bête que la personne posant la question n’était pas un gourou du C++ et Java. Les techniques de gouroux ou le chargement dynamique de bibliothéques compilées pour differentes arch sont peut être un peu complexe pour la question posée.

Je pense que pour commencer la POO, Java est plus indiqué. Plus stricte que le C++ qui permet de faire un peu n'importe quoi. Comme par exemple mélanger le C et le C++ ou autre joyeusetées pas jolie jolie.
Puis, le principe de l'héritage unique et des interfaces est tres interressant aussi.
Voire le C++ ensuite, une fois les principe de la POO acsquise et se faire plaisir en allant un peu plus pres de la machine.

godrik
godrik
Niveau 30
21 juillet 2012 à 00:41:06

Si tu n'es pas un guru, tu fera du code qui se traine en C++ comme en java, parceque tu va utiliser les mauvaise structures de donnees et les mauvais algo. La majorite des performances qu'il y a gagner dans les applications sont d'ordres algorithmique et pas des details de bas niveau. Une fois que l'on arrive a des problemes de bas niveau, il y a typiquement encore des gros facteurs (2,3 typiquement, 10 frequement, plus parfois) a gagner, mais typiquement les gens s'arretent avant.

Le probleme d'OP est d'apprendre, et l'apprentissage se fait dans n'importe quel langage. C++ et Java ont tous les deux une couche objets complete avec des differences syntaxique mais pas conceptuelle.

KouicKouic
KouicKouic
Niveau 6
21 juillet 2012 à 01:02:26

"Si tu n'es pas un guru, tu fera du code qui se traine en C++ comme en java [...]"
Tout a fait d'accord. Idem pour la lisibilité C++/java.
Néanmoins, si je devais enseigné la POO a quelqu'un, je serait surement bien content d'avoir choisi le Java plutôt que le C++ au moment venu de montrer comment faire des threads 100% objets :-p

acemicka
acemicka
Niveau 9
21 juillet 2012 à 11:45:27

Si tu veux faire un jeux : C++
Sinon le java tu trouveras de très bon cours dessus et bcp de bonne pratique. Les outils qui entoure java sont très bon. Et si un jour tu va en école d'info tu as de forte chance que ce soit java ton langage principal.

Et meme vue ton jeune age je pense que java a encore une longue vie devant lui en niveau pro donc non ce n'est pas un risque ( et de toute facon comme dit précédemment les conceptes eux de toutes facon sont les meme entre les langages)

acemicka
acemicka
Niveau 9
21 juillet 2012 à 11:49:38

"C++ et Java ont tous les deux une couche objets complete avec des differences syntaxique mais pas conceptuelle."

Il ont quand meme quelque truc différent.
Je préfère le java mais j'ai commencé par le C++ et il me semble que le C++ a une vrai généricité pas une pseudo généricité a la java. C++ permet la surcharge des opérateurs. C++ utilise l'héritage multiple. C++ permet bcp plus de liberté a mon sens. Java tu as le gabridge collector et quand j'utilise java j'ai l impression d'utiliser un langage légerement de plus haut niveau (plus de choses de cachées)

Après la philosophie des 2 langages est la meme POO.

Aldebran
Aldebran
Niveau 10
21 juillet 2012 à 15:18:03

"tu rêves. À efforts et techniques de gourous égales, le C sera au mois aussi rapide (et souvent nettement plus rapide)."

Après il y a la vitesse de développement qui peut jouer. Et là le Java est en général inégalable par le C ou le C++ : et si un développeur C tente de réaliser un programme (plus complexe que l'implémentation d'un seul algorithme) aussi rapidement qu'un programmeur Java, il risque de ne pas avoir le temps d'utiliser toutes ses techniques de gourous et toutes les optimisations nécessaires.

Développer en C++ comme un Dieu et ne pas se faire avoir par l'infinité de petits pièges dans lesquels on risque de tomber et qui vont plomber les perfs, ça demande beaucoup de talent et beaucoup de temps. Beaucoup plus qu'en Java. A mon avis il est facile de construire de petits softs C++ supérieurs à Java en termes de perf, mais construire une cathédrale logicielle avec plusieurs dizaines de classes et qui soit plus performante en C++ qu'en Java, c'est une gageure (et les temps de développement ne seront pas les mêmes).

Bref, en pratique il n'y a jamais une supériorité écrasante de C++ sur Java, quoique ça dépend des benchs :
http://www.laboiteaprog.com/article72-5-benchmark_c++_vs_java
http://blog.dhananjaynene.com/2008/07/performance-comparison-c-java-python-ruby-jython-jruby-groovy/
http://blog.cfelde.com/202010/06/c-vs-java-performance/
http://bruscy.republika.pl/pages/przemek/java_not_really_faster_than_cpp.html

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment