Mon retour sur le passage de Java à C# !

a marqué ce sujet comme résolu.

Mon retour sur le passage de Java à C#

J’ai commencé Java afin de pouvoir faire aussi bien du logiciel ( Swing, JavaFx ) que du Jeux ( LIBWJGL, LIBGDX) en passant par le web ( JavaSpark )

On m’a énormément parlé de C# en me disant qu’il serait plus intéressant pour moi de passer à C#

Je vais donc les comparer de manière objective et faire ma conclusion ainsi que mon ressenti

ENTREPRISES :

Oracle est la société travaillant sur Java, c’est une société qui est très souvent contredite dans c’est choix comme par exemple la revente de Java EE à Éclipse. Sun ( L’entreprise d’origine de Java) voulait créer un langage multiplate-forme;

Microsoft, Microsoft est la société à l’origine de C# et de .NET ( le framework officiel du langage ) Au départ c# avait un écosystème fermer et était vraiment orienté Windows à la différence de Java qui visait la multiplate-forme

UTILISATION :

Java est donc un langage très utilisé ( en entreprise, chez les particuliers) mais l’on dirait que Java n’est pas la priorité d’Oracle ( Exemple avec Java 9)

C# est un langage très utilisé en entreprise (Logiciel, Web, Jeux) et chez les particuliers ( Jeux principalement) Microsoft étant parti sur une nouvelle politique "d’ouverture" le langage évolue afin de devenir compatible Linux ( .NET CORE) malgré cela .NET CORE est assez jeune et n’est pas user friendly . Cependant .NET CORE 2 changes beaucoup sur le sujet, je pense qu’il faudra encore du temps à .NET CORE afin de réellement être compatible Linux, Windows, Mac et offrir une expérience utilisateur convenable Xamarin était un framework très utilisé ( Entreprises, Particuliers) cependant il était payant Microsoft la rachetait et le rendu gratuit pour les projets open-source ) C’est une belle preuve d’ouverture et le langage évolue celon moi dans le bon sens !

IDE:

Pour faire du Java il existe de nombreux IDE, le meilleur selon moi reste IDEA de JetBrain offrant un cadre très agréable au développeur Compatible Linux, Mac, Windows c’est un très bon outil ! ) Pour faire du C#, là il est clair que très peu d’IDE performant existe sous Linux même si Rider de JetBrain est très complet et existe sous Linux ! Cependant pour Mac & Windows Visual Studio est un IDE très complet, très puissant & vraiment beau tout comme IDEA ( La beauté reste importante selon moi)

LOGICIEL :

Swing est une véritable horreur heureusement, JavaFX change la donne et il est vraiment très bien pour faire des logiciels Linux, Windows, Mac !

Xamarin est quant à lui un très bon outil pour faire du logiciel, Windows & Mac

WEB :

Pour le web là ATTENTION, le web évolue dans un sens de CSR ( Client Side Rendering ) ainsi les frameworks web comme Java EE & ASP.NET deviennent & deviendrons de plus en plus obsolètes, malgré cela voyant que Microsoft travaille de plus en plus sur C# je pense qu’ils pourront remédier à se soucis pour ASP Java EE reste un bon pétrain, et Oracle ne compte pas changer grand-chose malheureusement.

CEPENDANT il existe des alternatives très intéréssante pour faire du CSR en Java ( JavaSpark : http://sparkjava.com/ ) et en C# ( NancyFx : http://nancyfx.org/ )

ANDROID

Java est le langage de référence pour Android cependant au vu des nombreux procès qu’Oracle fait à Google Je pense que Kotlin prendra bientôt la relève pour Android en tant que Langage par défault même si Java reste un très bon langage pour du Android Natif pour c# Xamarin reste une bonne alternative afin de faire du Android Cependant je suis plus partisan des langages Front comme JS avec IONIC ou React Native

PORTABILITE :

Pour moi JavaScript évolue tellement avec Node.js etc que JavaFx, Xamrin n’ont plus d’utilité . Je pense qu’il faut créer des interfaces via JavaScript ( IONIC pour des webview & React Native pour du natif ) pour Android par exemple Electron ( encore très lourd mais évolue bien ) Vue.JS pour le web

Et avoir un serveur web travaillant à la demande du Front Ce serveur peut être fait avec NancyFX, JavaSpark etc.. ) Et ainsi rendre n’importe quelle application compatible partout peu importe le back end

Ne pas oublier que même si Java tourne bien sur Linux que les entreprises s’adressent aux particuliers & que les particuliers sont pour la plus part sur Window ! Le C# reste le langage le plus complet & puissant pour Window

Malgré cela vous pourrez très bien faire tourner une application server ( NancyFx, Xamarin, .NET ) depuis wine ou mono

JEUX :

LibGDX est une très bonne couche de LIBWJGL permettant de faire du jeux vidéo du jeu vidéo sur n’importe quelle plateforme même s’il s’oriente plus vers de la 2D LIBWJGL est un peu plus complexe à prendre en main mais reste une très bonne lib pour de la 2D & 3D JMonkeyEngine reste aussi un très bon outil pour faire du jeux vidéo 3D avec Java ! Pour C# il existe bien évidemment les gros : Unity qui est vraiment très bien, ainsi que MonoGame Godot compte d’ailleur rajouter un support C# à leur game engine

CONCLUSION:

Aucun n’est réellement meilleur cependant la grosse différence reste la plateforme visée et la grosse différence entre Oracle & Microsoft (Ne pas oublier que Java n’est pas open source ! C# est open source depuis le début on peut le voir par mono ! Cependant le .NET FRAMEWORK est fermé mais de nombreuses partie deviennent open source :) )

+0 -0

Merci !

Je vais publier cela sous forme de billet :)

Pourquoi ajouter JS alors que tu nous dis que tu compares C# et Java ?

JuDePom

Simplement car à mon sens la comparaison d’UI Java & C# na pas lieu d’être ! JS me semble plus adapter dans le monde moderne pour le front

;)

Voici le lien du billet : https://zestedesavoir.com/contenus/2405/mon-retour-sur-le-passage-de-java-a-c/

+0 -0

Hello,

Alors, J2E il faudra m’expliquer ce que c’est parce que pour moi ça n’existe pas. Ensuite, Java est sous licence GPL (donc libre). Et enfin, il me semble que C# ne l’était pas, ce qui a fortement compliqué la tâche aux débuts de Mono (mais là j’en suis beaucoup moins sûr). Edit : non effectivement ça uniquement être .NET qui est fermé.

Enfin, faut préciser quand même que Java est bien meilleur pour du multiplateforme actuellement. J’ai pas mal d’applis et notamment de jeux C# qui ne fonctionnent pas nativement.

+0 -0

Bonjour,

Hello,

Alors, J2E il faudra m’expliquer ce que c’est parce que pour moi ça n’existe pas. Ensuite, Java est sous licence GPL (donc libre). Et enfin, il me semble que C# ne l’était pas, ce qui a fortement compliqué la tâche aux débuts de Mono (mais là j’en suis beaucoup moins sûr). Edit : non effectivement ça uniquement être .NET qui est fermé.

Enfin, faut préciser quand même que Java est bien meilleur pour du multiplateforme actuellement. J’ai pas mal d’applis et notamment de jeux C# qui ne fonctionnent pas nativement.

Phigger

Java EE* Désolé

Java comble certains cas précis, mais la plus part des logiciels c# soit fait avec .NET core fonctionne très bien sous Linux ou Mono & Wine font très bien le travail :)

Je n’ai pas eu de remonter à ce niveau ( Licence GPL, je tire mes sources de nombreux sujets étant sur Internet, cependant comme le dit mon poste, C# va vraiment dans une ouverture grâce à la politique de Microsoft, Si Oracle fait de même alors j’en suis très heureux :)

Ce sujet est verrouillé.