Passer au contenu

Avec C#, Microsoft imite Java

Le nouveau langage objet développé par Microsoft s’inspire de C++ et de Java. Il utilise des bibliothèques de fonctions, portables dans différents environnements

Après Windows 2000 et . NET (lire Décision Micro & Réseaux n?’ 431), Microsoft poursuit son train d’annonces d’envergure avec C# (prononcer si-sharp), un langage de programmation multiplate-forme dont les caractéristiques rappellent celles de Java.Si l’ensemble des spécifications techniques n’est pas encore connu – C# sera annoncé officiellement courant juillet -, l’éditeur a laissé filtrer certaines informations. Comme Java, C# repose sur un ensemble de services applicatifs et de bibliothèques de fonctions prêtes à l’emploi. Le tout baptisé Common Language Runtime (CLR). “CLR regroupe, sous forme de bibliothèques, toute la plomberie nécessaire aux interactions avec un système d’exploitation. Par exemple, en environnement Windows 2000, ce système évite de coder le comptage des références ou les inscriptions dans la base de registres. Le tout présente une syntaxe très proche de celle du C++”, explique Laurent Bonnet, ingénieur avant-vente chez Microsoft France.

Un code proche de celui d’une machine virtuelle

Lors de la compilation, C# génère du pseudo-code étroitement dépendant de ces bibliothèques de fonctions, une autre caractéristique qui l’apparente au code intermédiaire d’une machine virtuelle. Il est, par la suite, chargé et associé aux bibliothèques par le CLR. Selon Laurent Bonnet, “la compilation cible effectivement le CLR, qui dispose, lui, de compilateurs à la volée adaptés au processeur.”La rapidité d’exécution des applications écrites en C# dépendra entièrement des performances du CLR. Il disposerait de mécanismes d’optimisation destinés à augmenter la vitesse d’exécution. L’avenir dira si ces dispositifs suffiront à éviter à C# l’un des défauts de Java : sa lenteur. L’idée sous-jacente à C# est séduisante : il suffit d’adapter le CLR aux spécificités des systèmes d’exploitation ou aux processeurs pour disposer d’un langage véritablement multiplate-forme.Pour le moment, C# est livré avec un CLR adapté à l’API de Windows 2000, Win32, une mise en ?”uvre pour Windows CE 3 devant suivre. Une question importante reste posée : C# disposera-t-il de toutes les fonctions de sécurité propres à Java ? En effet, l’exécution du code au sein d’une machine virtuelle garantit à Java un degré de sécurité très élevé. Les informations fournies par Microsoft ne permettent pas de savoir jusqu’à quel point le CLR peut atteindre les couches basses de la machine sur laquelle il s’exécute.

Le XML mis à contribution

C# propose, comme Java, des capacités d’allocation dynamique de la mémoire et dispose d’un garbage collector qui recycle les objets arrivés en fin de vie. Le développeur pourra recourir, s’il le souhaite, au procédé classique d’allocation statique, avec tous les risques que cela comporte pour la stabilité du système.Autre originalité, les appels de fonctions s’effectuent par XML, le CLR étant capable d’interpréter et de décrypter les documents appropriés. XML est aussi mis en ?”uvre pour les développements d’applications distribuées, puisque C# utilise SOAP (Simple Object Access Protocol), le mécanisme d’invocation d’objets à distance de Microsoft, capable de véhiculer des fichiers XML sur HTTP ou HTTPS.La taille des composants développés avec C# devrait être, selon Microsoft, de l’ordre de quelques dizaines de kilo-octets. Leur empreinte mémoire, hors environnement d’exécution, devrait être relativement faible et limitée à leur code, l’espace mémoire étant géré directement par le CLR.

Pousser C# comme standard auprès de l’ECMA

Le chemin est long pour imposer un nouveau langage de programmation au sein de la communauté des développeurs. Premier problème d’envergure : convaincre des partenaires de développer des versions du CLR pour des plates-formes et des systèmes d’exploitation très divers. Informatique enfouie, temps réel, 64 bits, Linux : les champs d’application du nouveau langage sont ouverts. Pour réussir, l’éditeur s’engage dans une procédure de standardisation de C# devant l’ECMA (European Computer Manufacturers Association), qui avait refusé d’avaliser la main mise de Sun sur Java. Cette démarche oblige Microsoft à déposer les sources et à abandonner toute propriété intellectuelle sur C#. L’éditeur précise que la normalisation portera sur le langage lui-même et sur le CLR. La commercialisation de C# interviendra plus tard, dans le courant de l’année. “C# sera certainement vendu avec Visual Studio . NET, la nouvelle appellation de la version 7 de la suite de développement de Microsoft, un kit de développement bêta devant être disponible dès juillet, pour la Professional Developer Conference”, affirme Laurent Bonnet.Microsoft, toujours soumis au contrôle de Sun sur la mise en ?”uvre de Java, n’hésite pas à proposer son propre langage multiplate-forme. La démarche est risquée au vu de la pénétration croissante de Java dans les entreprises. C# a le mérite de pallier les défauts de Visual Basic, qui n’accédait pas aux couches basses de Windows 2000, et de faciliter la tâche du développeur C++.

🔴 Pour ne manquer aucune actualité de 01net, suivez-nous sur Google Actualités et WhatsApp.


OLIVIER BIBARD, avec CHRISTIAN JULLIEN