Comparatif : Similitude des environnements Java et C# .NET ?
Suffisamment de points communs pour que l'on puisse dresser un tableau...

Le , par Gugelhupf, Modérateur
Auteur : Gokan EKINCI
Date de première publication : 2015-10-13
Licence : CC BY-NC-SA

Java et C# sont deux technologies ayant suffisamment de points communs pour que l'on puisse dresser un tableau de similitudes. L'objectif de ce tableau est de connaitre les « termes » utilisés pour chacun des composants entre ces deux technologies.

Composant
Java
C#
Machine virtuelle : programme qui interprète un code intermédiaire (bytecode) et le transforme en langage machine (native code).
Contient un compilateur Just In Time (JIT), et un système de ramasse-miettes (Garbage Collector)
JVM (Java Virtual Machine) CLR (Common Language Runtime)
Les bibliothèques du langage JRE (Java Runtime Environment)

La JCL (Java Class Library) contient les classes du package java.* mais aussi d’autres classes comme celles d’une implémentation CORBA. Ces classes sont situées dans le jar « rt.jar » de l’implémentation officielle OpenJDK.
.NET Framework

La FCL (Framework Class Library) contient les classes de l’implémentation officielle Microsoft du .NET Framework. La BCL (Base Class Library) représente les classes du namespace System.*
Compilateur : Programme qui transforme le code source en binaire interprétable par une machine virtuelle. JDK (Java Development Kit)

Compilation en ligne de commande avec « javac » (Sun/Oracle)
.NET Compiler Platform (alias Roslyn).

Compilation en ligne de commande avec « csc » (Microsoft)
Le binaire créé lors de la compilation du code source bytecode Connu sous plusieurs noms : MSIL, CIL ou IL.

MSIL : Microsoft Intermediate Language.
CIL : Common Intermediate Language.
IL : Intermediate Language.
Ensemble de classes compressées dans un fichier Extension : « .jar » (Java ARchive)

Un « .jar » peut être un programme exécutable.
Extension : « .dll » (Dynamic Link Library).

Un « .exe » pour les programmes exécutables.
Les spécifications du langage JSR (Java Specification Requests) CLS (Common Language Specification)
Les IDE les plus connus (de nom) Eclipse, Netbeans, IntelliJ Visual Studio (pour Windows, ouverture vers Linux et Mac)
MonoDevelop (pour Linux et Mac principalement)
Vos remarques sont les bienvenues.
Pas de combat fratricide Java vs C# svp.


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster un commentaire

Avatar de kolodz kolodz - Modérateur https://www.developpez.com
le 14/10/2015 à 9:11
Un « .jar » peut être un programme exécutable.

Cette phrase me perturbe, car cela suppose que celui-ci est capable de s'exécuter seul. Or, c'est bien la machine virtuelle Java qui lit ce fichier. Un fichier ".jar" sans JVM est autant exécutable qu'un fichier ".xls" sans Excle !

Cordialement,
Patrick Kolodziejczyk.
Avatar de Gugelhupf Gugelhupf - Modérateur https://www.developpez.com
le 14/10/2015 à 11:26
Citation Envoyé par kolodz;bt1324
Cette phrase me perturbe, car cela suppose que celui-ci est capable de s'exécuter seul. Or, c'est bien la machine virtuelle Java qui lit ce fichier. Un fichier ".jar" sans JVM est autant exécutable qu'un fichier ".xls" sans Excle !

Cordialement,
Patrick Kolodziejczyk.

Bonjour @kolodz et merci pour ton retour,

Je ne connais pas de programme qui s'exécute tout seul, pour ce qui est du déclenchement il faut minimum un double clic dessus (opération manuelle), prévoir une tâche planifiée (opération automatisée) ou autre programme qui exécute une ligne de commande, pour ce qui est de l'environnement il est nécessaire d'avoir une JVM/JRE pour exécuter un bytecode Java, tout comme une CLR/.NET Framework pour un MSIL, mais bizarrement ma phrase du tableau ne me perturbe pas tant que ça (peut-être parce que je suis parti pris avec moi-même ).
Avatar de RyzenOC RyzenOC - Membre expert https://www.developpez.com
le 01/01/2016 à 10:27
executer seul => qui peut s'exécuter de maniéré natif sans rien installer.

Un code hello world en C s'exécute seul par exemple sans rien n'installer.
Avatar de laerne laerne - Membre éclairé https://www.developpez.com
le 01/01/2016 à 11:25
Peut-être qu'il fallait dire "qui s'éxécute nativement". De nos jours, je ne connais pas beaucoup de programmes qui tourne sur un ordinateur sans avoir besoin d'un OS qui gère les allocations de mémoires, l'accès au disque, les interruptions de la clock, …
Avatar de Aiekick Aiekick - Membre expérimenté https://www.developpez.com
le 01/01/2016 à 11:38
je n'en connais aucun personnellement. mais on s'égare un peu du sujet non ?

pour ma part c'est logique que C# soit similaire a jave. c’était la 2eme tentative de Microsoft de faire son java ( il s'en morde les doigts de pas avoir vu le filon ).
et soit dit en passant, je hais java pour les ui la ou c# excelle. ( sans jeu de mot)
Avatar de Jiji66 Jiji66 - Membre averti https://www.developpez.com
le 01/01/2016 à 11:58
Si il faut une machine virtuelle au dessus de l'OS pour faire tourner le programme, alors ce n'est pas du natif.
Java est typiquement dans ce cas; certains me dirons que c'est du natif Java mais a ma connaissance il n'y a pas d'OS Java.
Avatar de Gugelhupf Gugelhupf - Modérateur https://www.developpez.com
le 01/01/2016 à 13:44
Bonjour tout le monde, merci pour vos retours

@sazearte, si on fait référence aux dépendances (Java => JVM, C# => CLR), un programme écrit en C ou C++ (même standard et très basique) compilé sur une plateforme peut ne pas fonctionner sous une autre plateforme identique (processeur et OS) si ce dernier n'a pas le C++ Redistribuable Package requis pour ce qui est de Windows par exemple.

@Jiji66, il existe des OS écrit en Java (avec un minimum d'assembleur), de nom je connais JavaOS, il en existe plusieurs même si leur statut peut être abandonné (JexeOS, JX, SavaJe, Vino, JNode etc)
Avatar de Bono_BX Bono_BX - Membre confirmé https://www.developpez.com
le 02/01/2016 à 13:06
Le binaire créé lors de la compilation du code source.

Je ne sais pas s'il y a l'équivalent en JAVA, mais en C# on peut maintenant compiler en binaire.
Avatar de Gugelhupf Gugelhupf - Modérateur https://www.developpez.com
le 02/01/2016 à 14:30
Oui tu peux directement compiler en natif avec Java aussi, en utilisant des outils comme GCJ.
Avatar de marc.collin marc.collin - Membre confirmé https://www.developpez.com
le 02/01/2016 à 20:07
Citation Envoyé par Gugelhupf;bt1733
Oui tu peux directement compiler en natif avec Java aussi, en utilisant des outils comme GCJ.


il y a pu trop de nouveauté pour GCJ depuis un moment
il y a excelsiorjet mais c'est très cher
Offres d'emploi IT
Ingénieur Développeur logiciel H/F
Safran - Ile de France - Massy (91300)
Ingénieur Développement Logiciels pour Produits Optroniques H/F
Safran - Ile de France - Éragny (95610)
Urbaniste des systèmes d'information H/F
Safran - Ile de France - Évry (89140)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil