J sharp
# J sharp

J# (prononcé J-Dièse ou J-Sharp en anglais) est un dérivé non officiel de Java créé par Microsoft (Microsoft n'ayant plus le droit de créer des produits officiellement en rapport avec Java), issu de J++, et permettant de créer des applications pour l'environnement d'exécution .NET.

## Compatibilité

Bien que la syntaxe générale soit la même que celle de Java, le framework spécifique à .NET diffère. Par exemple, en Java, la classe java.io.FileOutputStream reçoit un objet de type fichier (java.io.File) en paramètre. L'implémentation en .Net demande un objet String contenant le chemin du fichier. Microsoft fournit un outil permettant d'effectuer la conversion automatique d'un programme Java vers un programme J#.

Selon divers tests, il serait possible d'utiliser les objets des deux moteurs (framework .NET et JVM) de façon à se compléter l'un l'autre. Il faut cependant alors faire très attention à utiliser une dénomination stricte pour permettre un code clair, permettant de savoir à tout moment, à quelle famille appartient chaque classe utilisée.

J# ne compile pas le code source en bytecode Java (fichiers .class), il ne supporte pas le développement d'applets Java. Enfin J# ne supporte pas Java Native Interface (JNI) et Remote Method Invocation (RMI) qui sont des mécanismes propres à l'environnement d'exécution Java (JRE).

## Historique

En 1996, Microsoft achète à Sun une licence afin de proposer une implémentation de Java : J++.

En 1998, un juge américain interdit à Microsoft l'utilisation de la marque Java pour les produits J++, qui ne respectent pas la norme Java.

En 2002, Microsoft publie la première version de J#.

En 2005, l'environnement Visual J# de Microsoft est le seul environnement de développement permettant de développer en J#.

En 2007, J# 2.0 est disponible.

En 2008, J# est abandonné, il n'y a plus d'éditeur associé dans la gamme Visual Studio.

