vendredi 12 mars 2010

Veille technologique semaine 10

Pour le bulletin de cette semaine, je vous propose les sujets suivants :
  • un article sur le problème du vocabulaire logiciel versus le vocabulaire de client,
  • un sondage réalisé par Martin Fowler au sujet des outils de gestion de configuration,
  • le group Kronos annonce la sortie de la spécification OpenGL 4.0,
  • le retour de la JSR 310 : le remplacant de la classe Date du JDK,
  • le projet Multi-verse qui propose des transactions mémoire (STM : Software Transaction Memory) pour la JVM : langage ciblé : Java, Scala, ... Bientôt de base dans le JDK ?
  • Les appel asynchrone et la transparence : comment ne pas modifier une interface de services ou d'événements pour réaliser un appel asynchrone ?
  • Deux articles sur le langage scala : la base et les traits.
  • Un Hello World avec la modularité du JDK 7 : le classpath devient inutile.

Bonne lecture.


Pourquoi le client ne parle pas votre langue
Il semble important d'apprendre aux développeurs quelques techniques pour parler avec le client. Cet enseignement vient de ce que j'ai vu lors de ma formation Domain Driven Design chez Zenika : l'importance d'un langage unique, ce que l'on appelle « Ubiquitous Language« . Je ne parle pas des règles de politesses, mais bien de l'importance de définir une sémantique claire entre l'équipe de réalisation d'une part, et l'équipe de maîtrise d'oeuvre d'autre part.


VCS Survey :
When I discussed VersionControlTools I said that it was an unscientific agglomeration of opinion. As I was doing it I realized that I could add some spurious but mesmerizing numbers to my analysis by doing a survey. Google's spreadsheet makes the mechanics of conducting a survey really simple, so I couldn't resist.


Khronos Unleashes Cutting-Edge, Cross-Platform Graphics Acceleration with OpenGL 4.0
Open standard 3D API specification available immediately; Provides performance, quality and flexibility enhancements including tessellation and double precision shaders; Tight integration with OpenCL for seamless visual computing.



Où l'on reparle de la JSR-310

La JSR-310 (Date and Time API) était initialement prévue pour le JDK 7 mais il y a un an, la roadmap de Sun l'en excluait. Cette spécification était pourtant attendue par tous ceux qui étaient lassés par les défauts de java.util.Date et qui voyaient enJodatime (dont la JSR-310 est largement inspirée) une échappatoire tentante. L'API proposée par cette JSR est en effet beaucoup plus riche et permet de représenter tous les concepts d'instants et de durées.

Lors de l'annonce du report du JDK 7 en novembre dernier, Mark Reinhold avait laissé la porte ouverte aux fonctionnalités qui avaient été abandonnées faute de temps ; la JSR-310 en faisait partie. Courant février, questionné sur cette spécification par un spectateur d'un webcast, il disait regretter qu'elle n'ait pu être finalisée dans les temps. Dans le même temps, Stephen Colebourne, spec lead de la JSR-310, expliquait sur son blog qu'il disposait désormais de temps libre pour travailler sereinement sur cette spécification. Quelques semaines plus tard une early draft review voyait le jour. Enfin, il y a quelques jours, Stephen Colebourne répondait à un commentaire en disant que l'inclusion de la JSR-310 dans le JDK 7 dépendrait de sa finalisation et de la volonté de Sun/Oracle.

La saga de la JSR-310 semble donc renaître de ses cendres et la possibilité de son intégration au prochain JDK est bien réelle. L'affaire est donc à suivre…



Multiverse: Open Source Software Transactional Memory for Java.
Interview with creator Peter Veentjer by Alex Tkachman

Today we have pleasure to talk with Peter Veentjer creator and lead developer of very interesting open source project called Multiverse

Alex : Hi Peter! Thank you for taking time to talk with DZone. Why don't you start with telling us a bit about what Multiverse is ?

Hi Alex, Multiverse is a Software Transactional Memory implementation for the Java platform I have been working on for the last 18 months. It has 2 important mission statements:


1) To create an STM that seamlessly integrates with the Java language
2) To create an STM that can integrated with other JVM like Scala, Groovy or JRuby

Alex : Software Transactional Memory. That sounds cool. What does it do?


Transparency and Asynchronous Method Invocation
This article focuses on transparency in the context of asynchronous method invocation. It describes two solutions available to provide full-transparency: where asynchronism is entirely masked to the developer. The main contribution of this paper is to clearly present the drawbacks of this approach:
exception handling and developer consciousness are two problems inherent to full-transparency that makes it at least, hard to use, at worst, useless. This paper defends explicit asynchronous method invocation and proposes semi-transparency: almost all the complexity of asynchronism is masked to the developer but the asynchronism itself. keywords: transparency, asynchronous method invocation, concurrency.



Scala, partie 1
Proche de Java, il est pourtant bien différent, et vraiment intéressant comme nous allons le voir ensemble.

James Gosling, l'un des inventeurs de Java, a dit à propos de Scala la phrase suivante :
« If I were to pick a language to use today other than Java, it would be Scala »

Plus suprenant, James Strachan qui a initié le langage Groovy en 2004, a dit aussi à propos de Scala :
« I can honestly say if someone had shown me the Programming in Scala book by by Martin Odersky, Lex Spoon & Bill Venners back in 2003 I'd probably have never created Groovy. »

Le langage a été initié en 2003. Scala (pour Scalable Language) a été pensé pour la programmation multi-threads, avec un niveau de qualité assez impressionnant. Ce langage cible toujours du bytecode dans une machine virtuelle Java.

Scala, partie 2
Après un premier article qui vous a fait pas mal réagir, je vais vous parler des Traits et des Collections. J'ajoute un peu plus de programmation fonctionnelle dans cet épisode.


Hello World module with Jigsaw


Aucun commentaire: