Le 12 avril 2016 à 21:12:56 RogerLeCaillou a écrit :
Le 12 avril 2016 à 03:54:56 tbol a écrit :
Si tu maitrises déjà Java tu n'aura aucun mal à passer à C#.
Je dirais plutôt l'inverse, y a quand même pas mal de concepts qui existent en C# mais pas en Java, alors que l'inverse est assez faux.
C# a pris énormément d'avance sur Java. En terme de langage C# est très largement supérieur à Java, c'est juste indéniable. C'est au niveau de l'écosystème et du cross-plateforme que Java se démarque (et encore ce dernier point risque de disparaitre dans le futur proche)
J'ai vécu ça lors d'un changement de job de .Net vers Java et ça a été plutôt difficile. Ce ne sont pas les différences entre ces langages qui posent problème dans un sens ou dans l'autre. Ce que C# (sur l'aspect strictement langage) a en plus de java n'est absolument pas sorcier et ne révolutionne pas ta manière générale de penser ton code et écrire des classes.
Si on jette un oeil du côté outils et build systems, côté .Net c'est tout du visual studio, msbuild, nuget et tous les tutos concernent ces outils. Donc c'est bien plus vite apprivoisé que eclipse, netbeans ou idea avec ant, ivy, maven, gradle.
Coté développement desktop. Tu es lancé sur du winforms avec visual studio en 2 clics alors qu'en java tu sais pas s'il te faut du swing, du swt, ou quel espèce de layout manager tu dois utiliser. Et je ne parle même pas de la gueule du résultat obtenu tellement c'est sans comparaison.
Coté web et accès aux données, .Net est également beaucoup plus accessible car il doit y avoir linq, 1 ou 2 solutions commerciales et sinon une paire de frameworks web. Alors que java c'est juste un bordel sans nom, il y a des frameworks au kilo pour chaque tiers applicatif et tout le nécessaire pour se paumer dans des solutions surarchitecturées.
Tu te dis que tu vas utiliser du standard pour commencer, en java : Glassfish + JSF + JPA, cassage de dents et perte de cheveux assuré. Après un peu de recherche quelqu'un peut te sauver en te suggérant de passer vers grails, ninja ou play2, ou te couler en te disant qu'il faut que tu rajoutes Spring pour compliquer encore un peu plus les choses.
En .Net, du fait de la récurrence d'une même stack un peu standard, tu as beaucoup plus de chance que la documentation et les tutos trouvés sur le net soient transposables sur ton cas.
En gros, ce ne sont pas les différences avec les types valeurs, les sucres syntaxiques et les génériques qui vont peser lourd dans la balance. Plutôt ce qu'il faut toucher pour être opérationnel dans du développement d'entreprise. Et de ce côté, la grande homogénéité de .Net le rend plus accessible que java de mon point de vue.