Ce n’est pas pour rien que MS a présenté C# comme un Java-killer… Effectivement, C# s’appuye sur une syntaxe vraiment très similaire à Java, mais le fonctionnement interne est complètement différent. En gros, si tu crées une classe assez basique tu pourras la recompiler sans problème (juste peut-être changer les majuscules/minuscules). Mais dans la plupart des cas, il faudra adapter ton code. Par exemple, pour l’héritage, C# garde la syntaxe C++ ClasseFille:ClasseMere. A l’inverse, il n’y a plus de multi-héritage comme en C++ mais le concept d’interfaces utilisé par Java.
Pourquoi en avais-tu marre de la VM Java ? Evidemment, un codebyte interpreté sera toujours moins performant que du compilé, mais sais-tu qu’il y a des compilateurs JIT qui non seulement compilent très vite mais qui proposent un code optimé, 20% (peut-être même plus maintenant) plus rapide que la JDK de Sun ?
GloP ne sera évidemment pas d’accord avec moi :pleure:, mais je trouve l’API Java bien plus fournie que le framework .net, et surtout le développement de nouvelles API par la communauté Java est extraordinaire. En fait, tout dépend de ce que tu veux faire. Si c’est pour faire une application graphique, oublie Java et fonce vers C#. Swing par exemple est excellent mais demande une grosse optimisation de la part du développeur pour que l’appli ne soit pas trop lourde. Ce n’est pas impossible, bcp de gros softs utilisent maintenant Java pour sa facilité et rapidité de programmation : Oracle, Matlab… Par contre, si tu as un gros besoin de portabilité pour ton appli, point de salut sans Java.
Côté serveur, Java s’en tire BCP mieux. GloP te dira que les techos Microsoft sont plus performantes, d’autres te diront le contraire ; si tu recherches sur le Net, tu trouveras des benchmarks qui donneront des résultats différents, certains en faveur de Java, d’autres en faveur de .net… Je n’ai jamais fait moi-même de comparaisons, donc je ne me prononcerai pas. Par contre, je sais que des serveurs 100% Java, comme ATG Dynamo, que j’ai vu tourner, sont ultra performants et mettent une bonne claque à pas mal de serveurs d’application compilés.
Pour la redistribution de ton appli, il y a un pack qui regroupe tous les fichiers nécessaires pour l’executer sur une machine sans .net. Suffit de le distribuer avec ton appli et hop.