C# égratigne Java
Transcription
C# égratigne Java
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