C#3 et Java 7 vers plus de simplicité
LANGAGE DE DÉVELOPPEMENT. Sun et Microsoft planchent sur les évolutions de leur langage en vue de séduire les développeurs métier. Java 7 et C# 3 simplifieront la programmation et le déploiement d'applications. La promesse de Java : gagner en productivité, en l'état, Java n'est pas bien adapté au developpement des règles de gestion, il serait donc plus facile à écrire dans un langage de script comme javacscrit, Goovy, voir visual Basic. Alors comment sa marche, et comment, les devellopeurs de ces grands groupes proposent ?, voila les questions qu'on pourrait se poser.
C#3 et Java 7
Il devenait impératif de simplifier C# et Java, tant ces deux langages de programmation sont complexes et encore réservés à des experts. C'est précisément la voie empruntée par Microsoft et Sun. Ils planchent sur la prochaine génération de leurs langages respectifs, C# 3 et Java 7, dont la disponibilité est prévue pour la fin 2007, voire début 2008.
Les orientations que vont donner les éditeurs à ces langages pendant les deux années à venir seront présentées le 7 février à Annecy, lors d'un colloque organisé par l'équipe « logiciels et systèmes » du laboratoire Listic et l'Institut de management de l'université de Savoie. « En simplifiant leurs langages, Sun et Microsoft vont toucher un plus grand nombre de développeurs », estime Didier Girard, le directeur technique de la SSII Improve. C# 3 sera diffusé avec la prochaine version de Visual Studio .Net (Orcas). Les méthodes d'extension constituent la principale nouveauté - elles trouvent automatiquement une méthode située en dehors de sa classe d'origine, et étendent n'importe quelle classe sans utiliser de mécanisme d'héritage « Il s'agit d'une forme de programmation orientée aspect, qui enrichit du code existant sans passer par le paradigme objet », annonce Sami Jaber, architecte chez Valtech.
Trois autres innovations contribuent, elles aussi, à simplifier C# 3 : l'inférence de type - qui permet de deviner automa tiquement la bonne méthode à appeler en fonction des paramètres qui lui sont passés ; les expressions lambda - une méthode anonyme, dont on infère les paramètres ; et les initialiseurs d'objets - un moyen de rendre moins verbeux les appels au constructeur.
Dernière nouveauté, grâce à Linq .NetCLanguage Integrated Query), Microsoft compte proposer un seul langage pour manipuler aussi bien des objets que des données XML (XLinq) ou SQL (DLin au sein d'une même classe.
Une nouvelle machine virtuelle pour java 7
De son côté, Sun prépare un nouveau format de déploiement pour Java « Le système de packaging de Java est obslète et pose des problèmes du même ordre que, les DLL de Microsoft », reconnaît Alex Moussine Pouchkine, architecte Java chez Sun. L'éditeur va ainsi proposer un nouveau format de distribution d'application spécifier par la JSR 277 (Java Module Système) qui remplacera le format d'archive java actuel (JAR, à ne pas confondre avec la norme JAR 145, 66 pour l'aeronautique). Ce nouveau "container" inclura l'ensemble des classements nécessaires au bon fonctionnement de l'application et gérera les dependances avec d'autres classes et modules lors du deploiement de l'application.
Sun simplifiera aussi Java grâce à une nouvelle machine virtuelle (JVM) qui supportera nativement des langages dynamiques - javascript, Rubby, Groovy, Beanshell, voire PHP. Ces langages sont mieux adaptés aux besoins des développeurs métier. Pour l'instant, seul Javascript a été confirmé pour Java 6 (Mustang). Ces deux grands visent les developpeurs métier qui, jusqu'ici, ne disposent pas d'un langage adapté à leurs besoins. Mais c'est aussi, pour eux, une façon de repondre à la préssion des plates-formes open source alternatives, au succès grantissant, telles PHP et Ruby On Rails.
Ce que Sun et Microsoft proposent !
Pour le C#3 :
Méthodes d'extension : trouver automatiquement une méthode située en dehors de sa classe d'origine pour étendre n'importe quelle classe sans utiliser de mécanisme d'héritage.
Inférence de type : préciser le type d'une variable locale directement lors de sa déclaration pour simplifier la syntaxe des déclarations. Le compilateur déclarera automatiquement une variable du type de la valeur de l'initialiseur.
Expressions lambda : méthode anonyme (paramètre et contenu), dont on infère les paramètres. Simplifie l' écriture et améliore la lisibilité du code.
Linq (Language Integrated Query) .Net : homogénéisation et simplification de la manipulation de sources de données hétérogènes dans une même classe. XLinq pour l'accès aux données XML, et DLinq pour l'accès aux données basées sur SQL
JAVA Standart Edition 7 :
Java Module System (JSR 277} : une nouvelle architecture de déploiement, plus complète (gestion de version, dépendances, etc.). Support des langages dynamiques : une nouvelle JVM permettra d'exécuter nativement des langages dynamiques (de script) tels que Javascript, Beanshell, Groovy, Rub- by, ou PHP au sein de la machine virtuelle.
Références de méthodes : des pointeurs sur des méthodes qui autorisent de substituer une implémentation à une autre, à chaud. Support natif de XML : pas encore confirmé.
|