C# égratigne Java
L'arrivée de C# marque la fin de l'ère J++ et Java de Sun chez Microsoft. Le langage qui a la même syntaxe
que Java se veut plus proche de C++ et il intègre la notion de composants. Il peut contribuer à attirer les
programmeurs Java vers la plateforme .NET.
Car le principal duel entre partisans de Java et Microsoft se situe non pas au niveau des langages Java et C#,
mais entre Java plate-forme d'exécution et la plate-forme .NET.
La présentation de la bêta 1 de C# à la journée de Conférence technique .NET Framework & Visual Studio .NET
au Palais des Congrès, le 31 janvier dernier fut brève, parce qu'il n'est qu'un élément de la plate-forme .NET. Le
temps d'aiguiser l'intérêt des 1500 développeurs présents, la plupart il est vrai clients déjà convaincus des
solutions Microsoft. L'annonce de la naissance de C# et de la plate-forme .NET, déjà conjointe, date de juin
2000. Anders Hejlberg, le père de Delphi et Scott Wiltamuh travaillaient depuis trois ans à la réalisation de ce
langage objet, fortement typé.
Il s'agissait d'offrir une alternative aux programmeurs C++ qui trouvent ce langage trop compliqué et aux
programmeurs Java auxquels manquent certaines caractéristiques de C et C++. Ce nouveau chantier avait selon
Anders Hejlberg pour objectif, "non seulement de simplifier l'environnement C++, mais de créer un langage qui
fasse la synthèse des langages orientés objets et intègre la notion de composants." Plus simple, plus élégant que
C++, assez proche de Java, C# est là pour que le développeur C++ ou Java puisse réutiliser au mieux son
expertise. L'accueil des développeurs sur plates-formes Microsoft est à ce sujet très positif.(Voir témoignages
plus bas)
Le langage est sur ses rails. Les séminaires de formation commencent en mars à Paris. Des applications
développées en C# tournent déjà. Après la bêta 1, la bêta 2 avec une version française sera disponible à la fin de
l'année. C# est soumis à l'ECMA (European Computers Manufacturing Association) depuis novembre 2000. En
mars 2001, un rapport de progression doit être publié par la commission TC 39, en septembre 2001, les drafts
finaux seront publiés. La soumission à l'ISO doit intervenir en janvier 2002. Les versions de C# retirées auprès
de l'ISO seront alors gratuites. Cette opération est co-sponsorisée par HP et Intel.
L'arrivée à maturité de C# coïncide avec la fin du procès qui a opposé Microsoft à Sun à propos de Java.
"Le Java de Sun n'est plus une voie", confirme Marc Gardette, Chef de Groupe Activités Développeurs
Microsoft." Le contrat qui nous liait à Sun expire en mars 2001. Nous cessons tout développement de J++, dont
la maintenance en l'état sera assurée jusqu'en 2007." Parallèlement, Microsoft annonce Jump to .NET (Java User
Migration Path to .NET) qui laisse la liberté aux développeurs connaissant la syntaxe Java de l'utiliser sur la
plate-forme .NET, avec la prise en charge des outils de programmation, hébergés dans Visual Studio .NET et la
conversion automatique du code Java source en C#.
"C# est un adversaire de Delphi plus que de Java", regrette Bruno de Combiens, Directeur Marketing
Borland."Microsoft a cru bon de débaucher Anders Heljberg, ce qui lui a d'ailleurs valu un procès avec Borland
et C# ressemble étrangement à notre produit. Nous n'en comprenons pas l'intérêt technologique. C#, sous
ensemble de .NET est noyé dans la masse. Il n'est qu'une des syntaxes disponibles sur le framework .NET qui
supporte 17 langages. Nos outils Delphi 6 et Kylix supportent eux aussi les API .NET. C# seul ne peut rien
contre le consensus industriel qui s'est créé autour de Java". Certes, non. Ce n'est pas C#, mais la plate-forme
.NET, qui dispute à Java la prééminence au niveau des plates-formes d'exécution et des serveurs d'application.
Mireille Boris
Microsoft pallie à un manque
Maxime Dehaut
Développeur Bizdev
00 32 4 97 84 01 92
"Il permet aux développeurs Java d'accéder aux plates-formes Microsoft. C# et Java sont relativement similaires.
Il est aisé de réimplanter dans C#certaines parties de code Java. BIZDEV, fait de la formation, du conseil, et du
développement d'applications web et Windows CE. Il est fort probable en outre que C# arrive sur Windows CE."
C# sur .NET est un bulldozer
David Cathure
Directeur régional (Toulouse) de Bewise, filiale de Winwise
05 61 75 13 13
"J'ai déjà réalisé quelques applicatifs clients orienté web et client lourd avec C#. C# sur plate-forme .NET est un
véritable bulldozer . C# va au-delà de Java parce qu'il est vraiment orienté composants. La force de Java était
jusqu'ici son orientation web. Mais grâce au Common Language Run Time, C# peut accéder aux objets web de
la plate-forme .NET, HTML, ASP (Active Server page), XML, lequel est absent du Java de base. Java est plus
lent. Par sa robustesse, le C# va faire son chemin. Les petites et moyennes entreprises y verront une source de
développement plus rapide. Les grandes entreprises aussi peuvent y trouver leur intérêt, par exemple, moins de
maintenance, grâce à la gestion sécurisée des accès mémoire. Sun lance Sun.One pour essayer de contrer la
plate-forme .NET."
Nota Bene : j'ai demandé à Eric Mahé de Sun d'intervenir. Mais, il refuse de parler en se plaçant sur le terrain
de C#…MB
Des points communs Java C#
1/ Tout est objet
Notion de classes et de classes associées, abstraction, encapsulation, polymorphisme. Pas d'héritage multiple.
----------------------------------------------------------------------------------------------------------------------------------------
2/ Même syntaxe
Mêmes méthodes, même gestion des exceptions.
--------------------------------------------------------------------------------------------------------------------------------------
3/ Typage fort
Vérification de la concordance des types utilisés lors de la compilation.
----------------------------------------------------------------------------------------------------------------------------------------
4/ Pas de fichier "header"
Tout est compris dans le fichier source lui-même.
----------------------------------------------------------------------------------------------------------------------------------------
5/ Le garbage collector
Gère la mémoire par un mécanisme de "ramasse-miettes" et nettoie la mémoire des objets qui ne sont plus
utilisés. La notion de pointeur disparaît.
----------------------------------------------------------------------------------------------------------------------------------------
6/ La machine virtuelle
La plate-forme .NET est centrée autour d'un Common Language Runtime (similaire à JVM) et un ensemble de
bibliothèques qui peuvent être exploités par C# et une grande variété de langages qui sont capables de travailler
ensemble en les compilant tous dans un langage intermédiaire (IL). C# et .NET sont un peu symbiotiques.
Cependant .NET vise à travailler avec de nombreux langages.
IL (Intermediate Language )compile en un code indépendant du langage indépendant de la machine.
Mais IL est différent du bytecode Java, le code est toujours natif, il n'a pas d'interpréteur.
Du point de vue des plates-formes, Java est plus interopérable, du point de vue des langages c'est .NET.
Des fonctionnalités de C# qui n'existent pas dans Java
1/ Evénements, propriétés (nom, âge), attributs
Ces concepts clés sont parfois hérités de C++ . C# offre la possibilité de créer ses propres attributs et ses propres
Metadata.
----------------------------------------------------------------------------------------------------------------------------------------
2/ Le boxing-unboxing
Offre la capacité à passer d'un objet à une structure et facilite le développement de composants. Un objet peut se
définir dans un Struct.
---------------------------------------------------------------------------------------------------------------------------------------
3/ Les enums
Offrent la possibilité d'avoir une liste nommée qui permet de spécifier un groupe d'objets.
----------------------------------------------------------------------------------------------------------------------------------------
4/ L'intégration d'XML
C# incorpore des tags de commentaire XML qui peuvent être utilisés par le compilateur pour générer une
documentation lisible directement à partir du code source. L'infrastructure de sérialisation XML ou infrastructure
de services peut traduire toute classe donnée en XML.
----------------------------------------------------------------------------------------------------------------------------------------
5/ L'intégration avec les autres langages
La possibilité de passer en environnement managé, au contrôle de la mémoire directe. On peut appeler un API
32, un DLL, exploiter l'existant de la plate-forme .NET.L'intégration avec les autres langages est totale. On peut
hériter de Cobol ou VB, ou de tout composant écrit dans un des 17 langages supportés par .NET.
Parmi les attraits de C# : l'intégration d'XML et des autres langages
Pour en savoir plus :
http://www.genamics.com/visualj++/csharp_comparative.htm
http://www.msdn.microsoft.com/theshow/Episode008/default.asp
www.msdn.microsoft.com/net
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !