Rechercher : dans
Par :

Java vs C++

Dernière réponse le 10 oct 2008 à 16:16:51 Jokerali73, le 8 oct 2008 à 15:27:04 
 Signaler ce message aux modérateurs

Bonjour,

Je commence dans la programmation et je voudrais savoir ce que le java apporte de plus que le C++ ? Je remarque que certain hardware sont programmé en c ou c++ mais bénéficie aussi d'une optimisation spéciale pour le java. pourquoi ne pas garder que le c++ pour la programmation ?

Merci de vos réponse.

Configuration: Windows XP
Firefox 3.0.1

Meilleures réponses pour « Java vs C++ » dans :
2 bons livres pour Java et C++ VoirPour ce qui est de l'api java, pas besoin d'aller chercher loin, le site de sun. Néanmoins, voici un bon livre "Thinking in java" de Bruce Eckels, c'est le meilleur de tout ce que j'ai lu sur java et je le conseille vivement. Auparavant, il avait...
Le mot-clé static ou les attributs et méthodes de classe en POO Voir(NOTE: Cet article explique la signification du mot-clé static au sein d'une classe. La signification de "static" en C n'a par exemple rien à voir.) Vous êtes débutant en programmation orientée objet. En Java, en C++...ou que sais-je encore,...
Java - Les types de données VoirLes primitives Java est un langage orienté objet, c'est-à-dire que les éléments manipulés sont des classes, ou plus exactement des objets, c'est-à-dire des instances de classes. Toutefois ces objets contiennent des données possèdant un type (et...
Java - Les packages VoirIntroduction aux packages La programmation Java consiste à créer des classes. Or, étant donné qu'un programme est généralement développé par une équipe de programmeurs, c'est-à-dire plusieurs personnes, le fait de concaténer (mettre bout à bout)...
Java VoirHistoire de Java Java est un langage objet ressemblant au langage C++. Il a été mis au point en 1991 par la firme Sun Microsystems. Le but de Java à l'époque était de constituer un langage de programmation pouvant être intégré dans les appareils...

1

fiddy, le 8 oct 2008 à 15:36:46

Salut,
Sur internet, il y a pleins de sites qui parle de ça.
Sinon sans rentrer dans les détails. Le Java a l'avantage d'être facilement portable, tout du moins plus que le C++ car pas besoin de recompiler pour chacune des plate-formes.
Google is your friend

Répondre à fiddy

2

Jokerali73, le 8 oct 2008 à 15:46:15

Le C++ ne peut il pas faire la meme chose que le Java ?

Je sais que sur le web il y a de nombreux sujets a ce propos, mais je cherche plus une réponse précise plutôt qu'une complète encyclopédie (que je lis pourtant mais qui ne m'apporte pas pour autant des réponses très attendue).

d'ailleurs, une question, pourquoi intégré un co-processeur Java à un system on chip (SoC) si le c++ a les meme possibilité ? est ce que le code est plus petit ?

et dernièrement, est ce que Java Direct Bytecode eXecution (DBX) est la possibilité d'exécuter du code Java comme un code natif par le microprocesseur ?

Répondre à Jokerali73

3

fiddy, le 8 oct 2008 à 15:51:16

Je vais pas pouvoir répondre à toutes tes questions, pas trop mon domaine.
Mais sinon, le Java a l'avantage d'être compilé en un langage intermédiaire (le byte-code). Et ce code-là pourra être distribué sur toutes les plates-formes. Ce n'est pas l'OS qui exécutera directement le code semi-compilé mais la machine virtuelle. C'est ce qui explique la portabilité.
Avec le C++, tu le compiles pour un type de processeur. Donc ton code ne sera pas portable.

Voilà la principale différence.
Google is your friend

Répondre à fiddy

4

jokerali73, le 9 oct 2008 à 13:33:47

J'apporte moi même quelques réponses à mes propres questions si un jour qq un se pose les même questions :

Pourquoi choisir le JAVA plutôt que le C/C++

1er : Les applications écrites en JAVA sont plus facilement portable sur d'autre plateforme et généralement plus rapide. Ce qui permet un cout plus faible et un temps de développement plus rapide.

2eme : il y a une grande communauté qui supportent le JAVA, constamment en amélioration d'ou le développement des application third parties.

3eme : Java est un langage plus sécurisé.

4eme : Bytecode permet un bon rendement pour la mémoire, cela réduit le temps de téléchargement d'une application, et un stockage plus facile.
En parlant des applications portables, avec une quantité de mémoire plus petites et un cout moindre (acheter un téléphone portable a 500€, pas facile).

Je travaille conjointement avec la compagnie ARM qui implante de plus en plus des optimisations pour le JAVA grâce à leur technologie Jazelle.

Si des personnes sont intéressé par des informations ou souhaiterais s'équiper de produit de développement ARM, je peux les aider.

Voila je crois avoir répondue finalement à toutes mes questions.

_________________________________________

CMP, Distributor for ARM tools for university and laboratory

Répondre à jokerali73

6

cedric1989, le 9 oct 2008 à 20:58:18

Bof la portabilité faut faire attention, car si on travaille en entreprise, ou dans un école sur des machines qui n'ont pas de machines virtuelles, et ou bien sur on ne peut pas en installer, je vois pas trop ou est l'avantage de portabilité.(Avec un programme écrit en C, il n'y aurait pas eu ce problème)
Et en C/C++, il suffit d'utiliser des bibliothèques portables, et on peut compiler sur plusieurs système d'exploitation.
De plus, les problème de portabilité inévitable en C++, qui sont évitable en java, j'en ai jamais vu, maintenant j'ai peut être pas assez d'expérience.

Le langage C++ a aussi une grande communauté. On trouve très facilement de l'information, et on obtient très facilement des réponses a nos problèmes que ce soit java ou C++.

Sinon C++ serait légèrement plus rapide que java (mais c'est pas toujours visible à l'oeil humain), mais la probabilité de faire des erreurs de programmations seraient un peu plus élevé en C++.

Sinon je pense qu'il n'y a pas de réponse exacte à ta question, il n'y a pas vraiment de langage meilleur que d'autres. Les deux ont leur avantages et inconvénients. Ceux qui te répondent en te parlant seulement d'un seul langage ne sont pas trés objectif, pour les 2 langages on peut trouver des bons arguments. Par exemple, c'est clair que jokerali73 n'a juste pour objectif de faire de la pub pour java.

J'ai quand même l'impression que concernant les jeux vidéo, il est quand même plus facile de trouver de l'aide, et des bibliothèques en C++, qu'en java. Pour le reste, je sait pas lequel pourrait être le meilleur.

Répondre à cedric1989

11

Char Snipeur, le 10 oct 2008 à 15:22:04

Les problème de portabilité en C++ qui ne sont pas en java interviennent dans certain cas. Je n'utilise que Linux et XP, donc il peut y avoir d'autres souci lorsque les processerus sont différents :
Problèmes de portabilité des interfaces graphiques, si tu utilise les GUI windows, impossible de porter directement sous Linux (ou alors peut être avec Wine, mais c'est pas gagné) et inversement si tu utilise le X11 de base.
Ensuite, les sockets ne sont pas exactement pareil.
Dernier exemple, la mesure de l'occupation CPU. Bref plein d'exemple.
Par contre, plutôt d'accord sur la portabilité Java qui n'est pas aussi idyllique qu'on le dit souvent. Salutation !  avant je croyais, maintenant je suis fixé.Jésu­s Christ
Char Snipeur

Répondre à Char Snipeur

7

jokerali73, le 10 oct 2008 à 09:20:27

Ahh désolé que vous me compreniez comme ça. En effet j'ai posé des questions car vraiment je ne savais pas. ensuite après des recherches j'ai finalement trouvé des réponses à mes questions. Mais dans un cas précis d'une utilisation de Java dans des application embarqué et une implantation de Java dans les microprocesseurs.

Ma question original était pourquoi faire tant d'effort pour implanté un technologie pour exploité le Java alors que les processeurs sont à la base programmé en C/C++.

Ensuite mes réponses sortent des documentations du constructeur. Pour une plus grande flexibilité, il a été choisi de donner la possibilité d'utiliser le Java et le C sur leur processeur et dans un effort de donné des programme rapide, autant en C que en Java il implante leur technologie.

De plus je ne parlais pas de langage meilleur qu'un autre, mais seulement pourquoi préféré l'un plutôt que l'autre ou pourquoi faire tant d'effort pour intégré le java si le C permet la même chose. Sachant que le C est un langage de base qui ne nécessite pas de techno particulière contrairement au Java.

Alors oui c'est étrange j'ai donné moi même des réponses, je n'aurais pas donné les réponses si cela n'intéressait personne. Ensuite je ne travaille pas POUR ARM, mais je travaille conjointement.

Et pour la gouverne de NiqueLapub (un pseudo très évocateur, a se demander si tu n'es pas venu ici pour pourrir mon post) ARM possède près de 80% du marché des microprocesseurs. Tu as un portable, une console de jeux portable, un GPS, baladeur mp3, il y a de forte chance qu'il soit équipé d'un processeur ARM. Si tu avais lu les autres posts, tu te serais rendu compte que je parle dans un cas précis : SoC.

Je ne fais pas de pub, qui acheterais un processeur nu ? pourquoi faire ? mais si des universités ont des volonté d'apprentissage, alors elles peuvent être intéressées.

Répondre à jokerali73

8

fiddy, le 10 oct 2008 à 13:32:04

La comparaison entre le C et le java est rapide. Java est objet et le C non.
Donc on va comparer plutôt le Java avec le C++ qui sont tous les deux des langages objets.
Le java comme je t'ai dit plus haut, est portable contrairement au C++. Mais le Java n'est pas compréhensible directement par le processeur. Il faut donc installer une machine virtuelle. Donc pour l'embarqué, c'est hors de question.
De plus le Java est extrêmement coûteux en mémoire, tout du moins plus que le C++. Mais le Java est plus sécurisé.
Tu vois donc que chacun ont des avantages et des inconvénients.
Voilà pourquoi les deux sont tant utilisés.

Cdt
Google is your friend

Répondre à fiddy

9

jokerali73, le 10 oct 2008 à 14:07:59
  • +1

Depuis maintenant peu de temps, le Java est interprété au niveau hardware par certain processeur ARM comme des instructions natives (comme le C) grâce à la technologie Jazelle, mais cela nécessite un co-processeur dédié ce qui n'est pas toujours possible à être intégré.
Néanmoins merci pour ton support.

Répondre à jokerali73

10

fiddy, le 10 oct 2008 à 14:38:20

Oui il y a toujours des cas particuliers.
Mais, le cas général répond à ta question initiale ;)
Tout le monde n'a pas des processeurs "jazelle".
Google is your friend

Répondre à fiddy

12

jokerali73, le 10 oct 2008 à 15:39:22
  • +1

Bien que le java soit mis en avance pour sa portabilité n'est pas vraiment ydillique il est vrai, mais il semble que les efforts pour les nouvelles release soit mis en avant par les développeurs. Ce qui est intéressant, je crois, c'est lorsqu'on désire faire des gros projets qui supporte plusieurs programme, venant d'origine différente de pouvoir les assembler ensemble sans a avoir de tout réécrire et recompiler toujours. Même si il semble qu'il y ai toujours un petit temps d'adaptation de programme. Cela ne marche pas "first try, fisrt done" (je crois que l'expression s'écrit comme ça). Mais après toute mes recherches, en effet la portabilité semble être le plus gros souci du java.

Répondre à jokerali73

13

fiddy, le 10 oct 2008 à 16:04:17

Le plus gros souci ?
Bof. Pas vraiment. Le seul problème de compatibilité est dans les machines virtuelles. Si ce n'est pas la bonne version, ça ne marchera pas. Ce qui est logique.
Pour moi le plus gros souci de java est sa lourdeur. Tout est plus lourd que dans les autres langages. Bon ceci est de moins en moins un problème avec le progrès des PC (mémoires et processeurs).
Mais pour les petites mémoires, le JAVA pose toujours problème.
Google is your friend

Répondre à fiddy

14

 jokerali73, le 10 oct 2008 à 16:16:51
  • +1

Parmi mes recherches c'est en effet un point sur lequel j'ai oublier d'ajouter dans les défauts. Le java (même la techno Jazelle) est réservé pour les processeurs supérieur à 1GHz, avant la lourdeur empêche une réelle fluidité des programmes. C'est d'ailleurs pourquoi cette techno n'est pas intégré au processeur plus vieux.

Répondre à jokerali73