François Sarradin

Consultant Xebia. Twitter : @fsarradin

 

Scala – jouer avec le pattern matching

Article publié par François Sarradin le 11 janvier 2012.

Catégorie(s) : Java / JEE

 

Aucun commentaire »

Mots-clefs :

Combien de fois vous êtes vous senti engoncé dans votre frustration parce que vous étiez incapable d’utiliser des chaînes de caractères dans vos switch-case ? À défaut de pouvoir utiliser Java 7, une telle possibilité serait très utile pour par exemple traiter les arguments de votre application, pour analyser un fichier ou le contenu d’une chaîne. En fait, pour y arriver, vous devez écrire une série de if-else-if. Mais vous pourriez aussi utiliser une table de hachage, où les clés sont les chaînes de caractères et les valeurs sont les traitements réifiés par des Runnable, des Callable ou des Function de Guava.

Si le switch-case acceptant des chaînes de caractères est pour vous une chouette invention, le pattern matching de Scala nous indique que ce n’est pas suffisant ! En effet, il y a d’autres cas où une série de if-else_if-else_if… serait sympathiquement transformée en une sorte de structure plus ou moins équivalente au switch-case. Par exemple, ce serait bien de pouvoir simplifier une série de compositions entre des instanceof et des class cast enfermés dans cette série de if-else_if-… en vue de réaliser des traitements spécifiques selon le type d’un paramètre (en attendant le multi-méthode).

Dans cet article, nous allons voir ce que peut apporter le pattern matching de Scala dans différents cas.

Lire la suite de cet article »

Programmation fonctionnelle – Solution des exercices du XKE de novembre

Article publié par François Sarradin le 26 décembre 2011.

Catégorie(s) : Java / JEE

 

3 commentaires »

Lors du XKE du mois de novembre, j’ai présenté une introduction à la programmation fonctionnelle. Cette présentation fût suivie d’une partie Hands On où les participants ont pu s’essayer (parfois dans la douleur, mais toujours dans la bonne humeur) à ce paradigme avec le langage Java. Je vous propose dans cet article un ensemble de solutions sur les exercices présentés. De quoi occuper vos longues soirées d’hiver.

Lire la suite de cet article »

Tout ce que vous avez toujours voulu savoir sur la programmation fonctionnelle par François Sarradin

Article publié par François Sarradin le 15 décembre 2011.

Catégorie(s) : Java / JEE

 

2 commentaires »

François Sarradin a réalisé une introduction à la programmation fonctionnelle durant la session xke du mois de novembre. La présentation a précédé un Hands’on (une session qui permet aux participants de littéralement mettre les mains dedans).

Vous pouvez donc visionner cette introduction dans la vidéo ci-dessous. Le Hands’on est disponible sous Github : https://github.com/fsarradin/xke-fp/tree/xke-fp_2011-11

Tout ce que vous avez toujours voulu savoir sur la programmation fonctionnelle par François Sarradin



Tous les podcasts Xebia France :

  • Subscribe with iTunes
  • Xebia France Podcast Feed

Les méthodes virtuelles d’extension dans Java 8

Article publié par François Sarradin le 5 octobre 2011.

Catégorie(s) : Java / JEE

 

7 commentaires »

Dans un précédant article, nous avons vu les lambda expressions et comment elles allaient apparaître dans Java 8 — l’idée étant d’orienter Java vers un style plus fonctionnel. Mais pour parfaire l’intégration de ce style de programmation dans Java, Brian Goetz indique qu’il faudra modifier l’API Collection pour y ajouter des fonctions telles que filter, map ou fold. Afin de faciliter la mise en place de telles fonctions au sein de l’API Collection, Brian Goetz propose d’intégrer les méthodes virtuelles d’extension (virtual extension method) dans le langage.

Dans cet article, nous allons voir ce que sont les méthodes virtuelles d’extension, comment est-ce que Java résout le lien entre ces méthodes et leur implémentation, et comment est traité le cas du diamant (un problème classique en programmation objet). Puis nous comparerons les méthodes virtuelles d’extension avec une autre approche plus ou moins similaire utilisée dans d’autres langages : les mixins.

Lire la suite de cet article »

Les lambda expressions dans Java 8

Article publié par François Sarradin le 20 septembre 2011.

Catégorie(s) : Java / JEE

 

10 commentaires »

Durant cet été, l’actuel architecte de Java auprès d’Oracle, Brian Goetz, a fourni des informations intéressantes sur l’implémentation des lambda expressions dans le futur Java 8 et de ses conséquences sur le langage. Par lambda expression comprenez ici closure ou fonction anonyme, qu’il est possible de stocker dans une variable ou de retourner depuis une méthode ou depuis une autre fonction, et bien sûr d’appeler. L’intégration des lambda expressions se fait dans le cadre de la JSR 335 (JSR 335: Lambda Expressions for the JavaTM Programming Language), aussi appelé Lambda Project.

Du point vue d’Oracle, la stratégie donnée à Brian est celle-ci :

Oracle’s position is that Java must evolve – carefully, of course – in order to remain competitive. (« La position d’Oracle est que Java doit évoluer – prudemment, bien sûr – afin de rester compétitif. »)

À partir de quoi, Brian propose :

It is my belief that the best direction for evolving Java is to encourage a more functional style of programming. (« Je suis convaincu que la meilleure orientation pour l’évolution de Java est d’encourager un style de programmation plus fonctionnel. »)

Nous allons voir dans cet article, l’état des actuelles propositions faites pour étendre le langage Java vers un style fonctionnel.

Lire la suite de cet article »

Comment est-ce que la classe TreeMap peut sauver votre journée ?

Article publié par François Sarradin le 7 septembre 2011.

Catégorie(s) : Java / JEE

 

7 commentaires »

Mots-clefs :,

Située au sein de l’API collection de Java SE, la classe TreeMap se présente comme un tableau associatif (c’est-à-dire une Map) ordonné et navigable. Les éléments de cette collection sont répartis dans un arbre, facilitant la recherche d’un élément. L’un des intérêts de cette collection est qu’elle permet de répondre à la question : « Quel élément de ma collection est le plus proche par rapport à cet autre élément que je fournis ? »
Lire la suite de cet article »

Comparaison d’API Java de programmation fonctionnelle

Article publié par François Sarradin le 29 juin 2011.

Catégorie(s) : Java / JEE

 

9 commentaires »

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 »

 

Page optimized by WP Minify WordPress Plugin