il me semble que l'on oublie....
Il me semble que l'on oubli l'avantage de loin le plus important de Java:
c'est un langage managé.
celà signifie en particulier que ton appli va s'exécuter dans un environnement contrôlé.
L'environnement va contrôler l'usage que tu fais de la mémoire (tu sais les pbl de fuite de mémoire qui sont la signature des applis écrites en C)
l'environnement va contrôler l'accès que tu fais des resources: par exemple les pbl de débordement de tampon doivent facilement représenter 50% des bogues de sécurité
l'environnement peut prendre en charge la sécurité de ton code
bien sûr les programmeurs C vont te dire qu'ils peuvent faire celà. Le pbl est que:
1) ils ne le font jamais
2) java offre une méthode standardisé pour le faire
Je suis convaincu que l'avenir est aux langages managés. C et C++ vont perdre pas mal de leur superbe dans les prochaines années lorsque les DI calculeront les économies en productivité que réalise une appli écrite en langage managé.
Cela ne signifie pas que l'on ne fera plus du C évidemment. A un certain niveau un environnement managé est bien obligé de s'appuyer sur du code non managé.
De plus l'environnement a forcément un coût de structure sur les performances et la consommation des resources et certaines applis ne peuvent pas se le permettre (calculs numériques, drivers, embarqué dans certains cas...)
Mon avis est donc plutôt de te former à Java, mais aussi à .NET et surtout de ne pas perdre de vue ta première expérience en PHP qui pour le web est une alternative plus économique et plus simple que les deux poids lourds.
C/C++ pourquoi pas certes, il serai irresponsable de prétendre que celà te mènera nulle part. Mais il faut être réaliste. Les langages managés comme Java sont sur une pente ascendante, on ne peut pas en dire autant de C/C++... La certification ISO de C++ ne changera rien à l'affaire.
j'enfonce encore le clou:
le principal avantage de C++ évoqué ici est la rapidité.
Je reste convaincu que des critères comme la fiabilité du code, la sécurité, la maintenabilité et l'évolutivité sont des critères autrement plus utiles dans la plupart des applis que nous écrivons tous et C/C++ n'est pas particulièrement bon la dedans. Justement parce que avec ces langages tu dois tout faire toi même. Ne rêvons pas.
On peut arriver à optimiser quelques centaines de lignes, pas des dizaines de milliers à nous tout seul.
D'autre part on dit souvent (avec parfois raison) que Java est lent. Oui, mais faut pas non plus exagérer.
C'est sûr que lorsque le CEA évalue l'informatique nécessaire pour simuler sur ordinateur l'explosion d'une bombe nucléaire il ne viendra à l'idée de personne de se servir de Java pour les calculs. Franchement est-ce le type d'appli que l'on écrit couramment?
Donc: Java/.NET et une goutte de C si tu as du temps devant toi...
Oula, je vais me faire des ennemis ici :twisted: