Fork / Join version Java 8

Java 8, c’est pour 2013 d’après les annonces d’Oracle. Autant dire pour demain. De nombreuses choses sont déjà sur les rails, dont les évolutions du framework Fork / Join, dont je t’ai déjà beaucoup parlé, cher et précieux lecteur. Alors pourquoi revenir encore sur le sujet ? Simplement parce que le célèbre Brian Goetz, auteur du non moins célèbre Java Concurrency in Practice, nous a décrit par le menu ce qui nous attendait sur le front des calculs en parallèle dans Java 8. C’était le 16/11/2011, lors de Devoxx, à Anvers. D’ailleurs, si tu n’es pas encore au courant, je te signale, précieux lecteur, que Devoxx va s’importer à Paris en avril 2012, puisque Devoxx France est maintenant officiellement lancée !

Continuer la lecture de Fork / Join version Java 8

Java 7 : fork / join et parallel arrays – 2

Cet article est la deuxième partie de la présentation des parallel arrays de la JSR 166, dirigée par Doug Lea. . Nous en étions restés au début de la présentation des opérations disponibles sur les parallel arrays. Continuons en terminant notre tour d’horizon des opérations disponibles sur ces tableaux, avant de donner une idée des gains en performance.

Continuer la lecture de Java 7 : fork / join et parallel arrays – 2

Java 7 : fork / join et parallel arrays – 1

Le pattern fork / join, nouveauté de Java 7 et création de Doug Lea a déjà fait l’objet de quatre articles sur ce blog, et tu pourrais penser, précieux et rare lecteur, que j’en ai assez dit sur le sujet, qu’il est temps de passer à autre chose.

En fait il n’en est rien, car, bien que déjà très complète, l’API Fork / join telle que livrée par Doug Lea pour Java 7 ne comporte pas tous les éléments du package JSR-166, notamment un morceau très intéressant pour nous : les parallel arrays.

Dans nos précédents articles, nous prenions comme exemple le calcul intensif sur des tableaux. La parallélisation semble simple : il suffit de découper le tableau en morceaux, de les traiter, puis de regrouper les résultats. Simple mais pas tant que ça, car nous avions vu que la stratégie de découpage a une influence sur la performance globale du processus et que des problèmes de synchronisation pouvaient se poser.

Ce découpage ressemble au pattern map / reduce, dont nous allons reparler plus loin. En fait, nous avions mis en évidence que les problèmes de synchronisation pouvait surgir dans cette approche, et que les résultats des calculs, de ce fait, devenaient fragiles.

Et nous n’avons pas encore parlé de l’influence de la parallélisation sur le résultat d’un calcul sur un tableau, qui, dans certains cas, peut changer du tout au tout ! Mais ça, ça sera pour une autre fois.

Je te propose, cher lecteur, un petit voyage au cœur des parallel arrays, qui résolvent ces problèmes.

Continuer la lecture de Java 7 : fork / join et parallel arrays – 1

Maven affiche son classpath

Depuis que ce blog existe, je n’ai encore rien écrit sur l’outil qui m’a fait le plus pester dans ma tumultueuse vie de développeur : Maven.

Il semble qu’il y ait un sport national sur la planète Java : déverser des seaux d’insultes sur cet outil, devenu en quelques années incontournable. C’est d’ailleurs peut-être là la raison de cette haine : Maven est un outil que tout le monde devrait adorer, mais tellement mal fichu que l’on en vient à le haïr.

Continuer la lecture de Maven affiche son classpath

Ouverture d’une section tutoriaux

Java le soir s’enrichit d’une nouvelle section Cours & tutoriaux, qui ouvre avec un premier pas à pas permettant d’utiliser Derby dans Eclipse. Il s’adresse surtout à des débutants, qui connaissent déjà un peu Eclipse, et qui souhaitent l’utiliser pour interagir avec leur serveur de base de données favori (à condition que ce soit Derby).

Il y aura d’autres tutoriaux sur différents sujets, certains sont déjà en préparation.

Petite note : je me suis fait un peu plaisir avec les CSS, et j’ai pu voir que certains navigateurs n’affichaient pas la page correctement. Donc si vous trouvez le texte illisible (visuellement), une bonne solution est de mettre à jour votre navigateur ! Si vous lisez ces pages c’est que vous devez être un peu intéressé par les nouvelles technologies. Traîner sur le net avec un vieil IE 6, ça fait un peu désordre…

TestNG et ses DataProvider

J’aime beaucoup TestNG, et je l’utilise plutôt que JUnit depuis des années. D’abord, il s’agit d’un outil développé par un français, Cédric Beust, après tout, on a le droit d’être un peu chauvin ! Ensuite, j’ai toujours trouvé que les fonctionnalités offertes par ce framework étaient supérieures à JUnit, pourtant largement plus utilisé.

Cher et précieux lecteur, je te propose, dans cet article d’éviter de démarrer une nouvelle polémique dont le net est si friand, mais plutôt de te présenter une fonctionnalité particulièrement puissante de TestNG : les DataProvider.

Continuer la lecture de TestNG et ses DataProvider