Il y a 11 ans -
Temps de lecture 9 minutes
Revue de Presse Xebia
La revue de presse hebdomadaire des écosystèmes Java/JEE proposée par Xebia.
Actualité éditeurs / SSII
- Spring Integration 2.1 (Par Bertrand Dechoux)
- Spring Data Redis 1.0.0 (Par Bertrand Dechoux & Mathieu Bigorne)
- « Big Data » par Nathan Marz et Sam Ritchie est disponible en MEAP (Par Bertrand Dechoux)
- Scalding, une API Scala pour Cascading par Twitter (Par Bertrand Dechoux)
- Firefox 10 sortira en version ESR (Par Benoit Lemoine)
- Firebug 1.9.0 (Par Bertrand Dechoux)
Le coin de la technique
- Seren : Serialization Enhancer (Par Jean Helou)
- Apologie des lambdas de blocks pour javascript (Par Jean Helou)
- Verbosité des langages de programmation (Par Olivier Michallat)
Evénements de notre communauté en France et à l’étranger
Actualité éditeurs / SSII
Spring Integration 2.1
Un an après la sortie en 2.0, Spring Integration est désormais disponible en version 2.1. On notera un meilleur support des scripts (Groovy, Ruby/JRuby, Python/Jython, et JavaScript) grâce à la JSR-223. Il est ainsi possible de définir des ‘filters, splitters, routers, transformers’ directement dans vos fichiers de configuration ou par l’intermédiaire de ressources, permettant de cette manière de recharger vos scripts à chaud. On notera également une meilleure intégration avec RabbitMQ/AMQP, GemFire, Redis et MongoDB.
Spring Data Redis 1.0.0
Spring Data Redis est sortie le mois dernier dans sa première version stable. Redis est une base de données clé-valeur avec d’excellentes performances qui peut stocker les types de données classiques (chaîne de caractères, liste, map …). Spring Data Redis fournit un niveau d’abstraction supplémentaire qui facilite l’interaction avec Redis. Cette version permet également d’utiliser Redis comme implémentation d’un cache via l’abstraction de Spring. Il s’agit de la première solution NoSql KeyValue supportée par Spring Data mais Riak ne devrait pas se faire attendre longtemps.
« Big Data » par Nathan Marz et Sam Ritchie est disponible en MEAP
Big Data est un univers à part entière et rend non triviale la conception d’une architecture à la fois rapide (« temps réel ») et supportant de grandes volumétries. Deux ingénieurs de Twitter, Nathan Marz -créateur de Storm– et Sam Ritchie en dévoilent les principes dans « Big Data, Principles and best practices of scalable realtime data systems ». Le livre n’est pour l’instant pas finalisé mais est disponible en MEAP (Manning Early Access Program). Le code bd50 vous permet de disposer d’une réduction de 50%.
Scalding, une API Scala pour Cascading par Twitter
Hadoop est un acteur incontournable du BigData. Pour autant, peu vous vanteront la concision des traitements de données implémentés en se basant uniquement sur son API Java. De nombreuses solutions apparaissent pour combler ce manque. Certaines introduisent un nouveau langage comme Pig et Hive. D’autres proposent une API plus succincte, mais en gardant un langage complet, comme c’est le cas de Cascading. Mecredi 11 Janvier, Twitter a rendu open source Scalding, son API Scala pour Cascading, simplifiant encore plus l’usage de MapReduce dans un environnement Scala. Pour les fans de Clojure, Cascalog est une solution similaire mais encore plus succincte. La version 1.8.5 est sortie le 4 Janvier.
Firefox 10 sortira en version ESR
La fondation Mozilla a finalement décidé de maintenir 2 versions de Firefox en parallèle : la première suivra le cycle de livraison actuel (toutes les 6 semaines); alors que la seconde, plutôt à destination des entreprises, aura un cycle de livraison d’un an. Cette version ESR (Extended Support Release), dont Firefox 10 sera le premier représentant, sera maintenue avec les mises à jour de sécurité uniquement, le moteur de rendu et la gestion de plugin n’évoluant pas.
Firebug 1.9.0
Pour les inconditionnels de Firefox, la version 1.9.0 de Firebug vient de sortir. On notera entre autres la possibilité de renvoyer les requêtes HTTP ou encore de visualiser les headers des réponses contenues dans le cache.
Le coin de la technique
Seren : Serialization Enhancer
Olivier Croisier a annoncé cette semaine SEREN, une bibliothèque destinée à accélérer la sérialisation des objets en améliorant le traitement des wrappers numériques et des chaînes de caractères.
Prenant la forme d’un agent pour la JVM, SEREN peut s’utiliser sans modifier le code existant et peut être ajouté ou supprimé simplement en redémarrant la JVM.
Comme toute amélioration de performance, il s’agit d’un compromis: SEREN propose d’augmenter un peu la taille du flux binaire sérialisé en échange d’un gain de vitesse, un compromis que l’auteur recommande pour la sérialisation mémoire en citant EHCache. Il est possible de configurer les classes « améliorées » par SEREN au travers des fichiers de configuration et d’un mécanisme de filtre qui peut être étendu au besoin.
Retrouvez l’introduction de SEREN sur son blog et le code sur github.
Apologie des lambdas de blocks pour javascript
Le working group ECMA, responsable de la définition du standard ECMAScript implémenté par javascript envisage l’ajout de lambdas de blocks à javascript, un ajout que Yehuda Katz défend dans un article de blog parfaitement illustré comparant ruby et javascript sur le terrain du principe de correspondance de Tennent, des lambdas de fonctions et des lambdas de blocks.
Les exemples utilisés présentent des refactorings d’une forme canonique vers des formes idiomatiques dans les deux langages pour illustrer les principes mis en œuvre, une excellente introduction au sujet.
Verbosité des langages de programmation
À l’heure où les comparaisons entre langages tournent souvent en guerres de clochers, Dhanji R. Prasanna (ancien employé de Google et membre du projet Guice) se livre à une analyse plus posée et réfléchie sur l’équilibre entre expressivité et lisibilité. Cet article se démarque par son pragmatisme, la pertinence des exemples choisis, et le recul évident de l’auteur sur un grand nombre de langages.
Lire Languages, Verbosity, and Java.
Evénements de notre communauté en France et à l’étranger
L’artisanat, un métier d’avenir
Plusieurs réflexions ont lieu en ce moment au sein de la communauté pour définir ce qu’est le métier de développeur. On en a parlé lors du Paris JUG d’Octobre 2011. Le mouvement de fond associé est bien sûr celui du Software Craftsmanship. Nous mettons cette semaine en avant deux entrées de blog pour nous aider à avancer sur le sujet.
Le premier article postule que le développement informatique ne peut-être vu ni comme un art ni une science. Pour l’auteur de ce blog, au titre provocateur, notre métier n’est pas purement un art car le produit fini fait quelque chose ni totalement une science car il n’y a pas de loi universelle sur le développement, il peut y avoir autant de réponse qu’il y a de développeurs. On peut accepter ces arguments ou pas. Mais au delà du pur débat d’idées on se rend compte qu’il est difficile d’expliquer un métier si complexe à une personne extérieure.
L’auteur revient aussi sur le caractère unique des réalisations informatiques, et unique dans sa réalisation comme ses défauts. Il porte l’empreinte des personnes qui l’ont réalisé. Nous avons tous notre propre expérience sur des outils, des méthodes, des technologies, et nous expérimentons quelques fois de nouvelles façons de faire. Cela rend la manière de réaliser le travail éphémère et inscrite dans un contexte.
C’est peut-être cela la différence entre produire et écrire du code. Une vision « industrialiste » de la production du code induit une idée de volume, de quantitatif. La production serait le résultat d’un processus établi au résultat attendu, le développeur n’étant que l’élément interchangeable de transformation de la spécification à la réalisation.
L’autre vision s’attache plus à l’aspect qualitatif et humain. Le travail est confié à une personne et est un élément prépondérant dans la rédaction d’une solution au problème donné. L’auteur d’un travail d’écriture de code se voit assigné une ligne directrice, à lui ensuite de tracer le meilleur chemin.
Le second billet revient sur l’importance de s’appuyer sur des personnes qui savent faire les choses. Créer une table de toutes pièces pour le commun des mortels ne semble pas compliqué. Un menuisier professionnel aura lui une toute autre vision de la réalisation. Il pensera à adapter au mieux son savoir-faire au besoin précis du client, anticipera bien plus de problèmes, choisira avec soin les outils et matériaux employés.
Nous sommes dans un contexte qui nous oblige à réduire le temps nécessaire pour mettre à disposition de nouvelles fonctionnalités. Comment alors expliquer à un utilisateur que le changement de formule de calcul d’un champ dans un rapport peut prendre plusieurs heures? Échangeons alors sur nos visions des choses. Si le client ne veut pas d’une table qui dure un siècle, il n’y a pas de raison de la fabriquer. Si par contre, il n’en a pas conscience, discutons ensemble pour trouver la meilleure façon de la réaliser. C’est en travaillant ensemble que le résultat sera celui attendu.
Une semaine riche pour les User Groups
Cette semaine est riche en événements proposés par les UG. Il y en aura pour tous les goûts.
Ce soir, mardi 17 :
- Le Lyon JUG propose une soirée Performance des serveurs en Java animée par Ludovic Poitou.
- Le Normandie JUG propose une soirée Annotation animée par Olivier Croisier.
Le mercredi 18, l’Alpes JUG propose une soirée Objectif Cloud avec Paul Sandoz et Nicolas De Loof.
Le jeudi 19 :
- Le Paris Groovy and Grails User Group accueilleCédric Champeau sur le thème Groovy 2.0 : un pas vers le typage statique.
- Le Toulouse JUG organise une soirée Grails animée par Vincent Barrier et Franck Silvestre.
- Le Paris Android User Group propose une conférence sur Ice Cream Sandwich animée par Léo Cacheux et Daniel Fages.
- Le Bordeaux JUG accueilleura Romain Maton pour une soirée Optimisez votre site web sur mobile.
- Le Mars JUG propose une soirée EclipseLink animée par Shaun Smith.
Pour vous tenir à jour, suivez le calendrier de conférences maintenu par Duchess France.
Commentaire