Quand on connait et qu'on a des bases en C++
est-il difficile d'apprendre le Java?
Version imprimable
Quand on connait et qu'on a des bases en C++
est-il difficile d'apprendre le Java?
Je dirais que non. C'est surtout l'inverse qui est compliqu�.
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.
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.
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�.
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.
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
ce qui pourrait surprendre un codeur en C++...Code:zippe(crypte(read("Fichier.txt")));
Et je suis trop fatigu� aujourd'hui pour cr�er une liste exhaustive des diff�rences :P
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.
Je ne suis pas d'accord avec vous.
C'est tr�s difficile de passer de C++ � Java, c'est tr�s frustrant :).
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 ?
C'est effectivement une tr�s mauvaise d�cision :aie:
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.
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...
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.Citation:
Tes bases (solides ?) en C++
Mais je me sers du C++ surtout pour la rapidit� de calcul et donc ca demande pas vraiment de faire de la conception objet
merci
existe il un IDE gratuit de microsoft comme Visual C++ expres qui permet de faire du java?
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).
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 ;)
Sauf qu'en C++ tu fais pas d'allocations que tu lib�res ensuite quand tu veux. Tu utilises le RAII.Citation:
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
C'est quoi le probl�me avec ce code en C++ ?Citation:
zippe(crypte(read("Fichier.txt")));
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.
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 :aie: