Archives de catégorie : Java

Java 8 est là !

Et même plus précisément ici ! Si l’on compte que la version de Java qui aurait dû porter les lambda expressions est la 7, qu’elle aurait dû sortir deux ans après la 6, elle-même sortie en 2006, et si l’on compte que la version était annoncée pour le 18 mars, et que nous ne l’avons eue qu’à 19h48, cela nous fait environ 6 ans, 19 heures et 48 minutes d’attente, dont environ 6 années de « retard ». Retard est un mot un peu curieux, car la version que nous avons aujourd’hui est certainement très différente de celle que nous aurions eue il y a 6 ans.

Continuer la lecture de Java 8 est là !

20mn sur Java 8 et les lambdas

balle-breizh-camp

Je garde toujours une balle en mousse sur mon bureau, de couleur orange. Celle-la même qui m’avait été envoyée par un fan un peu trop empressé (51’40 sur cette vidéo) alors que je parlais Java 8 et lambdas au Breizh Camp au printemps dernier. Il y a des objets auxquels on s’attache, et qui sait ? Peut-être cette balle pourra-t-elle servir à nouveau ? He he he.

Il y avait également InfoQ FR au Breizh Camp. Si vous ne connaissez pas InfoQ, il est peut-être temps de sortir de votre taupinière ! On y trouve des interviews rares et passionnantes, comme celle de Doug Lea sur le Fork / Join ou encore cette autre de Bob Lee sur différentes choses.

InfoQ FR est, comme son nom peut le laisser supposer, une version française d’InfoQ, qui traduit quantités d’articles en français, et est présent sur des événements français, tels que le Breizh Camp. C’est une très belle initiative pour les développeurs français qui ne sont pas trop à l’aise avec l’anglais, merci à ses initiateurs : Pierre, Antoine et Nicolas !

Si j’en parle c’est pour deux raisons : tout d’abord parce que c’est un site qui propose déjà un contenu varié, complet et de grande qualité. Pas de doute, on peut en user et en abuser. Ensuite, ils ont publié une interview de votre serviteur, réalisée au Breizh Camp précisément (ici), et ont également filmé la dernière conférence que j’ai faite chez Soat le 23/1 dernier, qui sera publiée très prochainement. Plus sur ce point dans les jours qui viennent.

Bretagne tour !

drapeau-bretonLa semaine prochaine sera bretonne pour moi, invité par les JUG de Lannion, Brest et Nantes. On y parlera Java 8, lambdas, API Stream, Collectors et nouveaux patterns. Si vous avez envie d’y découvrir ce qui nous attend sur le front de Java 8 et des nouveaux patterns de l’API Collection, ne loupez pas l’occasion.

Ces soirées sont gratuites, mais il faut s’y inscrire tout de même, les liens sont sur les différents sites. J’espère vous y retrouver nombreux !

Merci à Marc, Samuel, Horacio, Manuel, et aux équipes des JUG de Lannion, Brest et Nantes qui ont rendu ces événements possibles.

Le Bretagne Tour ne sera pas le seul tour, d’autres sont déjà prévus, renseignez-vous auprès de vos JUG locaux !

Revenir de Devoxx

Devoxx, c’est un peu le pélerinage obligatoire des développeurs Java, au moins européens. Anvers, c’est un peu comme la forêt des Carnutes. Tous les ans à pareille époque, les druides du développement Java, Web, Android, s’y rassemblent, attirés par un étrange appel.

Cette année encore les tribus sont venues de nombreux pays, une quarantaine, et de loin, au-delà des mers. Cette année encore les grands prêtres étaient là, et nous ont apporté la bonne parole. Car d’ici l’an prochain, nous auront eu une nouvelle version de Java, la 8, la tant attendue 8 devrais-je dire. Présenter cette nouvelle version est donc un enjeu, stratégique et commercial pour Oracle.

Donc Java 8 arrive, plus que 4 mois au moment de la publication de ce blog, même si la version disponible aujourd’hui permet de commencer à apprendre les nouvelles API, notamment Stream et Collectors. Car oui, avec l’arrivée de Java 8, il va falloir affuter ses connaissances. Des nouvelles choses, il y en a : le langage change, les API changent, les patterns changent. Et même si cela nous touche moins en tant que développeur, la JVM elle-même change.

Avec la présence de Mark Reinhold, Brian Goetz et Paul Sandoz, Devoxx 2013 était sans aucun doute la meilleure occasion de faire l’état des lieux sur tout ceci. Brian nous a décrit le pourquoi des choses, en nous retraçant le cheminement des réflexions. Paul nous a expliqué comme l’API Stream fonctionne en interne. Une parole d’expert, vu que l’API Stream, c’est lui qui l’a écrite ! Et enfin, Mark nous a donné des pistes sur les axes de travail suivis dans le développement de Jigsaw, ou de ce qu’il en reste, ou plus exactement de ce que cela va devenir.

Continuer la lecture de Revenir de Devoxx

Java au futur

De quoi le futur de Java est-il fait ? On peut se poser la question, et éventuellement s’en inquiéter.

Depuis 1996, Java a évolué à un rythme rapide, pas plus de deux ans entre deux versions. Vient Java 6 en 2006, puis quatre ans de pause, avant l’apparition d’un Java 7 controversé. Certains ont pu dire (et écrire) qu’ils s’agissait d’une sortie à minima. Le rachat de Sun par Oracle, qui a duré plus d’un an, entre autres du fait des problèmes de concurrence autour de MySQL, a porté cette responsabilité, même si les choses ne sont pas si claires. S’en est suivie une période, non pas de troubles, mais plutôt d’inconnues : comment Oracle va-t-il digérer Java, comment cette société, peu habituée à la communauté Open source, va-t-elle se comporter vis à vis du JCP ? En un mot, que Java va-t-il devenir ?

Continuer la lecture de Java au futur

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