vendredi 1 avril 2011

veille technologique semiane 13

Pour le bulletin de cette semaine, je vous propose les sujets suivants :
  • Un extrait d'une thèse au sujet du développement à base de composants CBSE : Components Based Software Engineering. Pourquoi la conception objet n'est pas suffisante pour d'écrire l'architecture logicielle d'un système.
  • La mise à jour de la norme C++ est prévue d'ici la fin de l'année 2011 (initialement prévue pour 200x)
  • La fonction try-with-resources du JDK 7 utilisée pour les verrous : un exemple
  • Evolution de la technologie OSGi en version 4.3 avec l'intégration des types paramétrés (Générique du JDK 5).
  • La version 2.9 du langage scala avec les collections concurrentes, ...
  • Le détail de la mise à jour du tutorial Java avec les compléments du JDK 7
  • Le projet VMKit : pour faire des machines virtuelles Java ou DotNet.
  • Le pattern MVVM : le pattern des IHM Model View ViewModel utilisé par le framework de Microsoft WPF (Window Presentation Framework)
  • Les accès au système de fichier par le JDK 7
Bonne lecture.

Component Based Development
Les limites du tout-objet
Même si la technologie objet a apporté de grands bouleversements dans le domaine informatique dans les années 1990, celle-ci n’est pas suffisante pour répondre aux besoins devenus de plus en plus complexes. La réutilisabilité des objets est limitée à cause de certains problèmes liés au paradigme objet, comme l’anomalie de l’héritage dans les langages concurrents ou encore le problème de l’encapsulation des aspects transversaux comme la gestion de la répartition, la persistance, la tolérance aux défaillances, etc.
  • Pourquoi des composants ?
  • Naissance du tout-objet
  • Les limites du tout-objet
  • Après la technologie objet
  • Qu’est-ce qu’un composant ?
  • Les interfaces du composant
  • L’implantation du composant
  • Les différentes abstractions d’un composant

ISO finalizes C++ update
C++ 2011, in development for eight years, may be released by year's end.
The widely used C++ programming language is about to be updated, as the ISO steering committee for the language has approved the final draft specifying its next version.
The ISO/IEC Information Technology Task Force (ITTF) will review the steering committee's Final Draft International Standard (FDIS) will review and, barring any complications, publish the draft later this year. It will be known as C++ 2011.


Project Coin: the try-with-resources lock support debate
If you have recently been following Project Coin’s mailing list , you will have spotted an interesting discussion regarding the inclusion of lock management inside the scope of a try-with-resources (TWR) code block.

The Initial Idea
The idea was initiated by Gernot Neppert who proposed a class java.util.concurrent.AutoLockable which would implement AutoCloseable, and therefore be eligible for usage with TWR:


OSGi 4.3 brings some Generics and Capabilities
At EclipseCon 2011, the next release of the core OSGi platform were announced and made available as a public final draft, with the released document happening in the near future. BJ Hargrave gave a presentation on what's new in OSGi 4.3, which sums up the key differences between it and previous releases.


Scala 2.9 est sur les rails
La première release candidate de la version 2.9 de Scala vient d’être annoncée.

Cette nouvelle version arrive après une petite année de développement et apporte un certain nombre d’évolutions dont :

le support des collections parallèles dont nous vous parlions à l’occasion de la venue de Martin Odersky au PSUG. Pour rappel, l’idée des collections parallèles est de tirer parti des architectures multi coeurs pour traiter les éléments d’une collection (filtrage, map, regroupements …) l’apparition des blocs try-catch-finally génériques permettant de définir des handlers réutilisables pour traiter vos exceptions (plus de détails ici), l’amélioration de la console Scala, l’ajout du trait App qui a pour objectif de remplacer Application. Ce nouveau trait permet entre autre de récupérer les arguments passés au lancement de votre application, l’extension de l’API collections, avec par exemple les méthodes minBy and maxBy qui sont un raccourci à la composition des fonctions map et min (ou max) le support de l’annotation @strictfp utilisé pour le calcul en virgules flottantes.
Outre ces différentes évolutions, cette nouvelle version apporte un grand nombre de corrections de bugs et d’améliorations de performances.
Une description plus exhaustive des nouveautés de cette version est disponible ici.

Et comme une bonne nouvelle n’arrive jamais seule, Miles Sabin nous annonce la sortie de la première bêta du plugin Scala IDE 2.0 pour Eclipse. La grande nouveauté de cette version est qu’elle est en partie développée par Scala Solutions, la société fondée parMartin Odersky.

Cette version 2 du plugin Scala promet une amélioration sensible de la stabilité, des performances et de nouvelles fonctionnalités. Elle apporte notamment une utilisation confortable de la completion, de la vérification de type en temps réel (l’inférence de type c’est génial, mais ça demande beaucoup de travail au compilateur) et de la navigation entre les classes sur de gros projets. Les utilisateurs d’Eclipse pour développer en Scala apprécieront la bonne nouvelle !


St Patrick's Day Release of Java Tutorial

We have recently released two updates of the Java Tutorial.
The February 21st update was designed to coincide with the JDK7 Developer Preview Release. The tutorial was updated again on St Patrick's Day, March 17th. The updated content for both releases includes the following features:



VMKit: a Substrate for Managed Runtime Environments

Abstract
Managed Runtime Environments (MREs), such as the JVM and the CLI, form an attractive environment for program execution, by providing portability and safety, via the use of a bytecode language and automatic memory management, as well as good performance, via just-in-time (JIT) compilation. Nevertheless, developing a fully featured MRE, including e.g. a garbage collector and JIT compiler, is a herculean task. As a result, new languages cannot easily take advantage of the benefits of MREs, and it is difficult to experiment with extensions of existing MRE based languages.

This paper describes and evaluates VMKit, a first attempt to build a common substrate that eases the development of high-level MREs. We have successfully used VMKit to build two MREs: a Java Virtual Machine and a Common Language Runtime. We provide an extensive study of the lessons learned in developing this infrastructure, and assess the ease of implementing new MREs or MRE extensions and the resulting performance. In particular, it took one of the authors only one month to develop a Common Language Runtime using VMKit. VMKit furthermore has performance comparable to the well established open source MREs Cacao, Apache Harmony and Mono, and is 1.2 to 3 times slower than JikesRVM on most of the DaCapo benchmarks.


Behavior Driven Development using MVVM pattern and GreenPepper tests

MVVM is a quite mature design pattern one can use with the microsoft WPF framework, or with Silverlight. You’ll find a lot of literature and tools on the web to start a new development with this pattern. In this article, we show how MVVM can be implemented for a quite large application, and the value it brings in a Behavior Driven Development approach.


How to Traverse a File Tree in NIO.2 and Java 7 (JDK 7)
JDK 7 and NIO.2 brings new and great I/O features – many of them are related with file system and files. Based on these features I tried to develop a simple Search File application.
The idea is to provide a file name and the application will detect all system roots and search for that file – it is also a good idea to specify a starting folder with a few intuitive modifications.

Aucun commentaire: