Je suis un débutant en programmation et je songe à utiliser C # pour écrire un programme TRÈS simple qui permet de modifier simplement un fichier texte.
Oui, C # est multi-plateforme grâce au projet Mono . Mais gardez à l'esprit qu'il s'agit d'une implémentation tierce, et ne provient pas de Microsoft. Ainsi, toutes les fonctionnalités de bleeding-Edge de la dernière version du langage d'exécution .NET ou C # peuvent ne pas être implémentées.
Il est difficile de répondre à quelque chose comme ça à quelqu'un, qui dit qu'il commence juste à programmer, mais je vais essayer de vous donner un aperçu (quelque peu simplifié): C # est un langage qui est compilé dans un programme exécutable. Le langage lui-même est portable entre les plates-formes, tant que vous avez un compilateur sur chaque plate-forme cible. Sous Windows, vous avez l'implémentation .Net "par défaut" et sous Linux/Mac, vous avez Mono. Pour faire quelque chose d’utile - comme éditer des fichiers - vous devez utiliser certaines bibliothèques. Il existe une bibliothèque standard disponible sur chaque plate-forme. Tant que vous n'utilisez que cette fonctionnalité, votre programme sera multi-plateforme. Évidemment, ce ne sera pas une plate-forme croisée, dès que vous utiliserez une bibliothèque spécifique à une certaine plate-forme. La modification de fichiers fait partie de la bibliothèque standard. Vous pouvez donc implémenter de tels outils simples de manière transversale. Lorsque vous choisissez un livre, vous devez rechercher des livres qui se concentrent sur le langage "brut" et non sur Visual Studio ou d'autres outils spécifiques.
Une nouvelle version open source de Microsoft appelée CoreCLR est multi-plateforme et peut maintenant être utilisée à cette fin.
Le référentiel CoreCLR contient l'implémentation d'exécution complète pour .NET Core. Il comprend RyuJIT, le .NET GC, l’interopérabilité native et de nombreux autres composants. Il est multi-plateforme, avec plusieurs ports de système d'exploitation et de processeur en cours . - du repo CoreCLR
Maintenant, C # est entièrement multi-plateforme et possède une variété de frameworks et de temps d'exécution.
Java est un langage + framework. Mais le C # n'est qu'un langage moderne. Les fonctionnalités du langage C # sont très puissantes et faciles à apprendre. Pas de confusion entre cadre et langage.
C # peut être utilisé dans les frameworks suivants
Java - Code une fois, expédier le même fichier à toutes les plateformes
C++, C, Rust - Code une fois, compilez pour une plateforme spécifique
C # - C'est juste un langage, choisissez votre cadre en fonction des besoins.
La plupart des applications populaires telles que Chrome, Firefox utilise C++, Rust et sont compilées pour chaque plate-forme. Mais ils partagent toujours la majorité du code entre ces plates-formes. Certains jeux utilisent C++ pour partager le code entre IOS et Android.
Pour les nouveaux développeurs, il est bon de commencer par NodeJS et C #. Les deux sont faciles et peuvent faire n'importe quel type d'applications.
Je ne recommanderais pas c # comme premier choix pour le codage multiplateforme. Je recommanderais python à la place, il est très facile à exécuter même en script et fonctionne parfaitement sur toutes les plateformes. Si vous insistez pour que c # soit prêt à traiter le même problème que celui expliqué par Justin Ethier. En revanche, Python est le même pour toutes les plateformes, il est ultra puissant et rapide et a même des wrappers prêts à se connecter à d’autres langues.
Cet article sur le projet Mono, le wiki résume très bien la rédaction d’applications portables en C #.
Si vous êtes un débutant et n’insistez pas sur C #, essayez Java, ce n’est pas loin de la syntaxe C #
Java -jar myprogram.jar
est identique pour Mac/Linux/Win.
C # est multiplateforme et vous pouvez exécuter votre programme sous Windows/Linux et Mac. Pour Linux, cependant, vous devez l'exécuter using mono