jeudi 22 juillet 2010

Veille technologique semaine 29

Pour le bulletin de la semaine 29, je vous propose les sujets suivants :
  • sortie de la version 2.8 de scala : version importante.
  • mise à jour du JDK 6 udate 21 : performance et qualité du garbage collecteur.
  • Netbeans 6.9 et JavaFX 1.3 : avec le composeur visuel.
  • Une pétition pour demander la mise en open sources de JavaFX. 
  • Le JSR 303 - Bean Validation : comment mettre les contrainte de données qui sont vérifiés par le runtime. C'est un mode descriptif (@nnotations).
  • Un article sur Advanced Message Queuing Protocol : un protocole de messagerie interropérable Java, C++, C#, ... Un remplaçant de JMS ?
  • La programmation parallèle et Java : les multi-cores des processeurs modernes demandent au logiciel d'avoir des application multi-threadés pour bénéficier de l'augmentation de puissance de calcul. Le plus difficile est de paralléliser les algorithmes. Une extension du langage Java le propose : [ hello(); || world(); ]
  • Fait-il conserver Internet Exploreur 6.0 ?
Bonne lecture.

Scala 2.8 enfin finale !
Après plusieurs mois de bêtas et de release candidates, voici enfin venir la toute dernière version de Scala en finale à savoir la 2.8.0 ! Cette version quasi majeure est considérée par beaucoup comme une 3.0 tellement les nouveautés sont nombreuses.
 
Au menu : la nouvelle API collection, la spécialisation de type, une nouvelle implémentation des Array, les arguments nommés et par défaut, les Package Objects, le support des continuations ou bien encore le REPL amélioré. Les nouveautés étant nombreuses, je pense que cette nouvelle version mériterait bien son petit article, n'est-il pas ?
La mise à jour de Scala par votre IDE est possible, pour les autres le téléchargement de la distribution se passe par ici.


JDK 6 Update 21 Release Notes
Java Hotspot VM 17.0
Java SE 6u21 includes version 17.0 of the Java HotSpot Virtual Machine with improvements to overall quality and features such as
compressed object pointers, escape analysis-based optimization, code cache management, the Concurrent Mark-Sweep garbage collector and its successor, the Garbage First (G1) garbage collector.


NetBeans 6.9 Release Supports JavaFX, Java EE6 and OSGi

Oracle has released version 6.9 of its popular open-source Neteans IDE. This is also the first release of the IDE to be released under Oracle's stewardship. The new release has a couple guiding themes providing an umbrella for a raft of new features, as well as many improvements.

First among the additions, and most visible to a user, is the new support for building JavaFX applications using the IDE, called JavaFX Composer. Many have waited for this support for JavaFX to round out the toolkit and the platform. The JavaFX support features a visual designer tool, as well as a code editor. Coders can write code, build them and run them with ease, as well as reformat code files. The visual tools will be the most compelling to users looking to alternatives to Adobe Flash's visual tooling options. The JavaFX composer lets people visually manipulate an application, dragging and dropping components on the screen and arranging them. The tool lets you use - and visually change properties on – all the standard JavaFX components provided with the SDK. JavaFX Composer also provides support for binding web services and databases to components using a generic, abstract idea of data sources and record sets. Accordingly, it's very easy to create these data sources in the IDE.


Open Source JavaFX Petition
To the Leaders, Management, and Board of Directors at Oracle Corporation, We the undersigned formally request that Oracle Corporation release the entire JavaFX Platform as open source software available for modification and reuse by
individuals, educators, and corporations.

Open source software has transformed the way that we build and use software. It has increased the educational reach of technology, allowed new and innovative applications to emerge, and spawned the growth of communities dedicated to
software philanthropy. Java has been at the forefront of this revolution, providing a platform for open source development, and becoming an open source effort in itself.

JavaFX is an innovative technology built on top of Java that allows the creation of next generation Rich Internet Applications (RIA). We believe that an essential part of the future success of this platform is to release it as open source software. This
would increase adoption by companies that fear lock-in or are concerned about technology maturity. It would also make it competitive with other RIA platforms that have embraced the open source model.


Bean Validation
Comment valider un bean ? L'idée de départ, comme toutes les bonnes idées, est très simple.

Avant, pour confirmer que des données étaient valides selon certains critères métiers, le  développeur pouvait être amené à intervenir sur plusieurs couches. Il pouvait agir, par exemple,   sur la couche présentation, en ajoutant du javascript pour contrôler un champ du formulaire, ou  bien ajouter du code de vérification dans la couche DAO avant de persister en base. Cette spécification a eu pour objectif, d'une part d'enrichir les entités métiers sur les valeurs que
pouvaient prendre ses propriétés, et d'autre part de fournir un service capable de valider ces entités avec en plus un certain niveau d'information sur les cas non valides.

La JSR-303, finalisée en novembre 2009, fournit une standardisation de ces concepts et fait partie de Java EE 6. Emmanuel Bernard étant le spec lead de cette JSR, assez naturellement l'implémentation Hibernate Validator est devenue celle de référence. C'est cette dernière qui sera exclusivement évoquée dans cet article.


AMQP, une alternative à JMS ?
AMQP (Advanced Message Queuing Protocol) est un protocole de messagerie créé à l'initiative de  la banque JP Morgan Chase pour gérer la communication entre ses différents partenaires. Le but affiché était de fournir une solution alternative aux solutions payantes et relativement chères dans le domaine du MOM (Message-Oriented Middleware) dominé largement par Websphere MQ
d'IBM et RendezVous de Tibco (93% du marché à eux deux en 2008). Un certain nombre de partenaires se sont fédérés autour de ce projet pour aboutir à une première spécification en 2006. L'ambition avouée est qu'elle devienne l'équivalent du HTTP pour l'internet, ce qui explique qu'elle décrive aussi bien les différentes sémantiques liées au MOM que la partie plus bas niveau du transport de ces messages. Cette normalisation permet la multiplication des solutions clientes ou serveurs dont la compatibilité sera garantie par cette spécification. Par exemple, un broker de message écrit en Erlang comme RabbitMQ transférera de façon
transparente un message d'un client ruby vers un autre client Java/JMS.


Spring facilite l'adoption d'AMQP
Comme on pouvait s'y attendre avec le rachat de RabbitMQ par VMWare, Spring intégre petit à petit des fonctionnalités facilitant l'adoption d'AMQP.
 
Le premier milestone de Spring AMQP 1.0.0 matérialise cet effort. Un gros point de satisfaction, Spring ne s'est pas contenté de fournir la partie cliente Java de RabbitMQ mais propose une réelle abstraction du protocole AMQ. Par contre la gestion des versions de la spécification reste un peu flou. Elle semble caler sur la version 0.8 tout en étant compatible avec la 0.9.1.
La distribution vient avec 4 modules : spring-amqp, spring-rabbit,spring-rabbit-admin et spring-erlang. Ce dernier est le plus inattendu et la documentation semble indiquer que le projet est expérimental. Pour rappel le serveur de RabbitMQ est implémenté en Erlang, un langage très perfomant sur les aspects concurrentiels.
 
La documentation, bien qu'incomplète, a la bonne idée de proposer plusieurs cas d'utilisation et laisse entrevoir un bon support pour Spring Integration. Cette nouvelle est quoiqu'il en soit une très bonne nouvelle pour l'adoption d'AMQP dans le monde Java. Par ailleurs Spring propose également une version .Net.


Think Parallel, Think Java
For the most part, parallel programming for today's multicore and manycore
architectures have been purview of C++ (think Intel's Threaded Building Blocks,
Parallel Studio, RapidMind, and Cilk++) and functional languages (Erlang, Haskell,
Scala, and the like). What's missing? How about Java.

In the Java world, Ateji has released Ateji PX for Java, a Java
extension for providing compatibility with existing sequential code, tools, and
training. The extension provides only parallelism-related aspects, with the addition
of a couple of syntactic constructions.


Easy multi-core programming for all
Boost application performance and leverage hardware assets by using all available processor cores The number of cores in desktop computers and servers is expected to double every year. While the OS is able to run different applications on different cores, the only way for an application to benefit from a performance increase is to parallelize the code at the level of the application.

Ateji PX makes this parallelization process simple and compatible with existing Java code.


Ateji PX for Java : "Parallel programming made simple"
Ateji PX for Java introduces parallelism at the language level, extending the sequential base language with a small number of parallel primitives. This makes parallel programming simple and intuitive, easy to learn, efficient, provably correct and compatible with existing code, tools and development processes.


Faut-il continuer à supporter internet explorer 6 ?
On ne va pas ergoter sans fin, tout le monde doit maintenant savoir que Internet Explorer 6 — IE6 pour les intimes — est un navigateur obsolète et dangereux. Et pourtant, certains continuent à l'utiliser. Faut-il les en dissuader, refuser de leur fournir son support, aller même jusqu'à leur empêcher l'accès, ou faut-il continuer à supporter (les faiblesses de) ce navigateur ?

Aucun commentaire: