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 :

du C++ au Java


Sujet :

C++

  1. #1
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut du C++ au Java
    Quand on connait et qu'on a des bases en C++
    est-il difficile d'apprendre le Java?

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Je dirais que non. C'est surtout l'inverse qui est compliqué.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut
    quant au principe de programmation, de la syntaxe,
    du langage objet, est-ce similaire?

    en fait, je pose cette question parce que j'ai dit que je savais programmé en Java pdt un entretien, et c'est faux
    Alors j'ai deux semaines pour apprendre les bases du java
    est-ce possible.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    Lol bien sur, c'est tres simple de passer de C++ a Java.
    En 2 semaines tu devrais avoir le temps de revoire toutes les bases + faire le tour
    des bibliotheques equivalentes a la STL et bien plus.

    Ce que tu peux difficilement apprendre en 2 semaines c'est le langage + le framework utilise. Que vas-tu faire ? du devellopement web, serveur, graphique, ....

    Java est un vaste langage. Ce n'est pas le langage qui est dur a apprendre. Ce sont les milliers d'environements et frameworks differents.

  5. #5
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut
    en ce qui concerne les framework j'en sais absolument rien.
    je veux deja apprendre les bases de Java, la syntaxe quoi.

    Ensuite, je crois que dans les offres d'emplois, c'est le truc JSEE ou JS2EE qui est souvent demandé.

  6. #6
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Java est très demandé sur le marché effectivement.

    Aller de C++ à Java est bien moins dur effectivement que de passer de Java à C++.

    Toutefois, cela dépend du niveau que tu as en C++. Si tu connais à peine les classes, tu n'auras pas beaucoup d'avance sur l'apprentissage de Java. Si tu maitrises la POO en C++, ça ira sans trop d'encombres.

    Mais dans tous les cas, faudra bosser, pratiquer beaucoup, comme d'habitude.

  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
    Salut,

    De mon avis personnel, on a surement plus facile à passer de C++ à java que l'inverse... De là à dire que cela se fait sans embûches ni cris, il y a surement énormément de marge

    S'agissant de deux langages utilisant le même vocable de "Langage Orienté Objet", il est surement très facile de faire une liste des points communs que l'on rencontre, parmi lesquels une approche séquentielle de la programmation et donc un approche similaire en ce qui concerne les structures de contrôle (tests vrai/faux ou à choix multiples, boucles en tous genres, récursivité,...) et, malgré tout, une certaine concordance au sujet de ce qu'est un langage orienté objet, avec un système permettant de "séparer" un groupe d'objet (namespace en C++, packetages en Java, même si, de mémoire, ce n'est pas tout à fait équivalent...), de faire cohabiter des fonctions et des variables au sein d'un objet, la possibilité de déclarer (définir) des variables et des fonctions de classes (statiques) ou des variables et des fonctions d'instances, etc...

    Mais, pour notre malheur, il y a au moins autant de différences entre le C++ et Java qu'il n'y a de similitudes (je serais presque tenté qu'il y en a même plus)...

    Par exemple, il faut savoir que, même si tu n'indique rien explicitement, toute classe en java sera considérée comme descendant de ... la classe Object, qu'il n'autorise pas l'héritage multiple, et qu'il fait une distinction entre ce qui est hérité et ce qui vient d'une interface.

    Nous pourrions aussi nous attarder sur le fait que C++ est un langage a priori compilé alors que Java est plutôt (même si ce n'est pas tout à fait vrai) un langage interprété, ou du moins en partie, sur le fait que lorsque le programmeur décide de prendre la responsabilité de gérer lui-même l'allocation de la mémoire en C++, il reste responsable de la libération de la ressource, alors que Java dispose de son "ramasse miettes" ou qu'un javaiste ne s'étonnerait qu'à moitié de trouver un code proche de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    zippe(crypte(read("Fichier.txt")));
    ce qui pourrait surprendre un codeur en C++...

    Et je suis trop fatigué aujourd'hui pour créer une liste exhaustive des différences

    Au final...

    Je crois qu'avec une bonne connaissance de la conception, tu devrais avoir facile à passer de l'un à l'autre.

    Comme je l'ai dit, j'estime qu'il est surement plus facile de passer de C++ à Java que l'inverse, mais, mon avis personnel est que, si tu n'a pas pris l'habitude de réfléchir 30 secondes à la logique ou à la conception de tes besoins, le seul fait de connaitre le C++ ne te permettra ni de faire quelque chose de correct en C++ ni d'apprendre à faire quelque chose de correcte en java
    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

  8. #8
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Citation Envoyé par koala01 Voir le message
    Au final...

    Je crois qu'avec une bonne connaissance de la conception, tu devrais avoir facile à passer de l'un à l'autre.

    Comme je l'ai dit, j'estime qu'il est surement plus facile de passer de C++ à Java que l'inverse, mais, mon avis personnel est que, si tu n'a pas pris l'habitude de réfléchir 30 secondes à la logique ou à la conception de tes besoins, le seul fait de connaitre le C++ ne te permettra ni de faire quelque chose de correct en C++ ni d'apprendre à faire quelque chose de correcte en java
    +++
    Le noeud du problème est là : java, C++, C# ou n'importe quel autre langage, la première maîtrise vient d'une aisance en conception logicielle et d'une bonne compréhension des concepts qui sous-tendent l'approche objet. Ensuite, ce n'est que s'adapter à un langage particulier avec ses plus et ses limites.

  9. #9
    Membre Expert
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Par défaut
    Je ne suis pas d'accord avec vous.

    C'est très difficile de passer de C++ à Java, c'est très frustrant .

  10. #10
    Membre éclairé Avatar de befalimpertinent
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2007
    Messages : 561
    Par défaut
    Tes bases (solides ?) en C++
    +
    un bon bouquin parcouru dans les grandes lignes et/ou la FAQ de dvp (dépend de si tu as déjà quelques notion de Java)
    = un niveau théorique suffisant en peu de temps

    S'il te reste du temps tu pourras approfondir sur les BD/applets/JavaMe/... selon le profil recherché.

    Après reste le problème qu' avoir juste un bon niveau théorique n'a jamais fait un bon programmeur. Mais ton expérience et ta logique en C++ peut palier temporairement à ça.

    Bonne chance

    Ps: pour ton entretien je vois bien le genre de question A quoi sert le mot clé final ?

  11. #11
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Citation Envoyé par white_tentacle Voir le message
    Je ne suis pas d'accord avec vous.

    C'est très difficile de passer de C++ à Java, c'est très frustrant .
    C'est effectivement une très mauvaise décision

    Par contre, j'ai eu plusieurs retours de javaistes qui se sont mis au C++, et beaucoup de choses les gênaient. Il en ressort qu'en C++ on est "trop libres", que ce soit de faire des bêtises (notamment en gestion de mémoire) ou de réaliser des choses fantastiques.

  12. #12
    Membre Expert
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 940
    Par défaut
    Personnellement, ayant fait du VB .net pendant mon BTS et du C++ je n'ai pas eu de réelle difficulté à me mettre à Java pour le master.

    Ce qui peut surprendre au début ce sont les différences d'habitudes entre les 2 langages. Par exemple, le prof utilisait les casts à tire-larigo. La copie est lente en Java, alors les paramètres se passent par référence, il y a peu de constructeurs par copie dans la bibliothèque de base, pour copier des objets il faut recourir explicitement au clonage (interface Clonable). Les interfaces sont très utilisées en conception. Il y a le garbage collector pour gérer la mémoire. Comme tout est objet, il n'y a pas de fonctions globales, pour pallier à ça on crée des classes pour servir de boîte à outil avec des fonctions static : par exemple, si vous avez une classe Graph, vous aurez peut-être une classe Graphes avec des fonctions static pour manipuler les Graph.

    Et tout ça sans compter les différences de technologie et d'emploi de ce langage.

    Et j'en passe et des meilleures...

  13. #13
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut
    Tes bases (solides ?) en C++
    J'en sais rien en fait. Je maitrise pas les templates, je maitrise un peu les classes et les objets, les struct, les typedef struct. les libraries boost et wxwidgets.

    Mais je me sers du C++ surtout pour la rapidité de calcul et donc ca demande pas vraiment de faire de la conception objet

  14. #14
    Membre éclairé Avatar de befalimpertinent
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2007
    Messages : 561
    Par défaut
    Citation Envoyé par deubelte Voir le message
    Je maitrise pas les templates
    pas très grave vu que ça n'existe pas en Java
    Citation Envoyé par deubelte Voir le message
    je maitrise un peu les classes et les objets
    Plus embêtant puisque tout est Objet. Mais ce sont des concepts relativement naturel et donc facile à appréhender (encore plus en Java : pas d'héritage multiples, notion d'interface, ...)

  15. #15
    Membre éprouvé
    Inscrit en
    Novembre 2006
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 073
    Par défaut
    merci
    existe il un IDE gratuit de microsoft comme Visual C++ expres qui permet de faire du java?

  16. #16
    Membre Expert
    Homme Profil pro
    edi
    Inscrit en
    Juin 2007
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : Juin 2007
    Messages : 940
    Par défaut
    Crosoft a sa propre version de Java, J#, qui fait partie des langages .net, disponible dans visual studio. Il n'y a par contre pas d'EDI dédié dans les version express (il faudrait voir si ce n'est pas disponible par exemple dans visual C# express ou vb express, je ne suis sur de rien).

    Pour Java, les outils traditionels, disponibles sous windows, sont eclipse et netbeans (consulter leurs sites respectifs).

  17. #17
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Netbeans et Eclipse sont les deux qui sont les plus en vogue dans le monde Java.

    Mais pour des questions purement Java, je te conseille de te rendre sur le forum Java de Developpez, tu auras plus de réponses et des plus pertinentes

  18. #18
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Citation Envoyé par befalimpertinent Voir le message
    Plus embêtant puisque tout est Objet. Mais ce sont des concepts relativement naturel et donc facile à appréhender (encore plus en Java : pas d'héritage multiples, notion d'interface, ...)
    Nope. int n'est pas un objet.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  19. #19
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    lorsque le programmeur décide de prendre la responsabilité de gérer lui-même l'allocation de la mémoire en C++, il reste responsable de la libération de la ressource
    Sauf qu'en C++ tu fais pas d'allocations que tu libères ensuite quand tu veux. Tu utilises le RAII.

    zippe(crypte(read("Fichier.txt")));
    C'est quoi le problème avec ce code en C++ ?
    C'est pas pire en C++ qu'en Java. En C++ il serait intelligent de faire des expressions templates, mais en Java tu dois pouvoir faire un truc plus ou moins équivalent, bien que moins efficace.

    Sinon a priori, passer de C++ à Java, ça prend une journée à tout casser. Le plus compliqué étant de comprendre les restrictions débiles des génériques.

  20. #20
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Citation Envoyé par loufoque Voir le message
    Sinon a priori, passer de C++ à Java, ça prend une journée à tout casser. Le plus compliqué étant de comprendre les restrictions débiles des génériques.
    C++ et Java n'ont pas les mêmes objectifs. En C++ on a une liberté qui est inégalée de mon point de vue. En Java, c'est plus restreint. Les générique sont surtout pour les containers et diminuer la duplication de code. On ne peut pas travailler sur la génération de code & compagnie.

    Et quelques heures à tout casser pour le langage lui-même. Pour sa bibliothèque standard et les bibliothèques importantes ça prend plus de temps

Discussions similaires

  1. le Java est la continuité du C++ ???
    Par Vincent PETIT dans le forum Débats sur le développement - Le Best Of
    Réponses: 33
    Dernier message: 25/08/2005, 20h17
  2. Envoi de Datagrames par IP en JAVA
    Par the java lover dans le forum Développement
    Réponses: 2
    Dernier message: 14/08/2002, 11h44
  3. directx et java?? possible??
    Par jiraiya dans le forum DirectX
    Réponses: 3
    Dernier message: 09/07/2002, 19h55
  4. webcam : lire sur un port usb en c/c++ ou java. sous win. ?
    Par flo007 dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 24/05/2002, 23h24
  5. Service de nommage java C++
    Par Anonymous dans le forum CORBA
    Réponses: 3
    Dernier message: 15/04/2002, 12h48

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