Alors que le Java Community Process (JCP) a annoncé l’apparition de la programmation fonctionnelle dans le langage Java, avec l’introduction des expressions lambda (JSR 335: Lambda Expressions for the JavaTM Programming Language), est-il possible avec la version actuelle de Java de pratiquer ce paradigme ? A l’heure où ces lignes sont écrites, le JCP est en plein brainstorming sur le sujet. Il existe différentes propositions concernant la syntaxe à adopter pour la JSR 335 : une proposition factice, un prototype pour l’OpenJDK serait en cours, la proposition BGGA (comprenez Bracha, Gafter, Gosling et von der Ahé), etc. Mais aucune de ces syntaxes n’ont été officialisées. Toutefois, un premier brouillon devrait apparaître d’ici septembre 2011 en vue d’une sortie officielle a priori avec Java 8 en 2012.
En attendant, il existe un certain nombre d’API permettant aux développeurs d’utiliser la programmation fonctionnelle avec Java sans forcément changer de langage.
Dans cet article, après avoir introduit la programmation fonctionnelle, nous allons nous intéresser à l’état actuel de ce style de programmation dans Java au travers des API suivantes :
- Guava
- Functional Java
- FunckyJFunctional
- LambdaJ
En partant d’un exemple commun, nous verrons les différences qui caractérisent ces API.
Lire la suite de cet article »

La revue de presse de l’actualité Java/JEE hebdomadaire proposée par Xebia.
Agilité
Le coin de la technique
Evénements de notre communauté en France et à l’étranger
Lire la suite de cet article »

Grâce à sa présence en finale du challenge USI 2011, Xebia envoie trois représentants à l’USI 2011, organisée par Octo. En plus de la présentation des résultats du challenge, qui dévoilera l’architecture ayant tenu la plus grande charge, mais qui donnera aussi de précieuses informations sur les (nombreuses \;) difficultés rencontrées, nous suivrons avec attention quelques présentations dédiées aux geeks (et oui, on ne se renie pas) :
- Continuous Delivery, par l’auteur du livre éponyme, Jez Humble
- Retour sur 18 mois de gouvernance Oracle, par Alexis MP
- L’architecture LinkedIn, par Yassine Hinnach
- … ou encore des sujets moins proches de nous, RFID ou les interfaces cérébrales
Pour découvrir la programme détaillé de l’édition 2011 de l’université du SI, vous pouvez consulter le site www.universite-du-si.com.
Nous vous proposerons dans les prochains jours un compte rendu des sessions les plus intéressantes.
Vous avez peut-être eu l’obsession de voir « maven » en train de télécharger vos propres artefacts à partir de son repository central. Du moins vous vous êtes sûrement posé la question : mon projet est mavenisé, open source, sur une forge publique (github, googlecode, etc.) et il est destiné à être utilisé par le plus grand nombre ; pourquoi ne pas le publier sur le Maven Central Repository (http://repo1.maven.org) ?
Au lieu de penser à ouvrir votre Nexus sur Internet ou encore à créer votre propre repository sur Google Code ou autre, nous vous proposons de directement déployer sur le Maven Central Repository, ce qui, en plus de vous épargner l’installation d’un repository, facilitera l’utilisation de votre artefact.
Le but de ce billet est de décrire la marche à suivre pour la publication d’un artefact en passant par le repository de Sonatype. Ce dernier étant un repository approuvé pour tout projet OSS comme c’est le cas du repository Apache (pour les projets Apache) et celui du Codehaus (pour les projets Codehaus). Le fait de passer par Sonatype vous garantit d’une part, un processus de validation structurant qui impose un ensemble de points de contrôle (licence, copyright, traçabilité, etc.) augmentant ainsi la qualité des métadonnées, et d’autre part une synchronisation rapide avec le Maven Central Repository.
Il s’agit également de vous faire profiter de notre expérience sur le sujet avec le déploiement de quelques artefacts tels que mindmap-maven-plugin, xebia-management-extras, xebia-spring-security-extras et xebia-servlet-extras.
Lire la suite de cet article »

La revue de presse hebdomadaire des écosystèmes Java/JEE proposée par Xebia.
Actualité éditeurs / SSII
Evénements de notre communauté en France et à l’étranger
Lire la suite de cet article »

Demain 17 juin se tiendra à Rennes la première édition de la conférence BreizhCamp qui réunira plus de 200 personnes provenant de différentes communautés Java, .Net, Ruby, Python ou encore PHP.
J’aurai le plaisir d’y présenter une session titrée « Elasticité et haute disponibilité avec Cassandra », qui fera un tour d’horizon de cette base de données, des aspects théoriques à sa mise en œuvre.
Pour rappel, Cassandra est une base de données NoSQL initialement développée par Facebook qui brille par son architecture symétrique lui conférant une parfaite élasticité en accord avec les préceptes du Cloud Computing. Mais elle offre également d’autres propriétés particulièrement attirantes telles qu’une faible latence et une tolérance aux pannes d’une machine, d’un rack ou d’un Datacenter. Son modèle de données, certes moins riche que ce que le monde relationnel propose, s’avère tout à fait adapté à de nombreux cas d’utilisation dans le monde du Web.
Les inscriptions sont déjà closes mais je serai ravi de rencontrer ceux qui ont pu s’inscrire pour discuter de ce sujet et des bases de données distribuées de manière générale !


La prochaine session du Paris Scala User Group aura lieu le lundi 20 Juin à 19h30 dans les locaux de Xebia.
Pour cette 13ème session, le PSUG aura le plaisir d’accueillir Guillaume Bort, le créateur de playframework, qui nous fera une démonstration de son utilisation avec le langage Scala. N’hésitez donc pas à nous rejoindre si vous souhaitez en savoir plus sur ce très populaire framework.
Alexis Agahi, le maître de cérémonie du PSUG nous fera aussi un rapide retour sur la participation de quelques membres du User Group au challenge USI 2011.
Il reste encore quelques places, si vous souhaitez y assister, pensez à vous inscrire pour la logistique.
Notez bien l’adresse :
Xebia
156 boulevard Haussmann à Paris
Immeuble A – 7e étage
La conférence Software Craftsmanship 2011 – à propos de laquelle deux billets ont déjà été publiés : How Object-Oriented are you feeling today ? et Lean code challenge - s’est clôturée avec la session dite du Cyber dojo, inventé, programmé et présenté par Jon Jagger.
Le Cyber dojo est un exercice d’apprentissage dans lequel les participants peuvent pratiquer l’écriture de logiciel en « entraînement intentionnel » (deliberate software practice).
L’entraînement intentionnel c’est lorsque l’on cherche à améliorer sa capacité à réaliser une tâche. On parle de technique, d’habileté et surtout de répétition. On réalise donc une tâche dans le but d’améliorer la maîtrise d’une ou plusieurs parties de la réalisation de cette tâche. Cela implique un grand nombre de répétitions, jusqu’à ce que l’on atteigne le niveau de maîtrise désiré. On pratique l’entraînement intentionnel dans le but de maîtriser la tâche à accomplir, non dans l’unique but de l’accomplir.
Le Cyber dojo est particulièrement adapté pour travailler la collaboration entre les équipes et le TDD. L’originalité de l’exercice est que l’ensemble des participants soumet son code à un serveur central qui exécute les projets et garde une trace de ces exécutions.
Les participants travaillent en petits groupes. Chaque groupe travaille sur un seul ordinateur :
- en écrivant le code et les tests associés dans un navigateur ;
- en les soumettant au serveur de CyberDojo aussi souvent qu’il le désire. Le serveur exécute alors le projet et retourne le résultat des tests au navigateur.
Le serveur de CyberDojo permet d’exécuter du code dans plusieurs langages : C, C++, C#, Java, Javascript, Objective C, Perl, PHP, Python, Ruby.
Lire la suite de cet article »

La revue de presse de l’actualité Java/J2EE hebdomadaire proposée par Xebia.
Agilité
Le coin de la technique
Evénements de notre communauté en France et à l’étranger
Lire la suite de cet article »
La dernière session de la conférence Software Craftsmanship 2011 m’emmène sur les pentes du Lean Software Development avec « The Lean Code Challenge ».
Très bon slot de Chris Parsons avec au programme, du code bien sûr, une fois n’est pas coutume dans cette conférence.
L’objectif de cette session est de nous faire réfléchir sur le Lean Software Development. En particulier, la session aborde les aspects suivants :
- Eliminate waste.
- Focus on value.
- Deliver fast.
- Decide late.
Lire la suite de cet article »