Articles

Il y a 6 années -

Temps de lecture 6 minutes

Devoxx 2012

Cette année deux Xebians ont répondu présent au rendez-vous annuel de Devoxx : nous participions à CodeStory. Bien que nous ayons passé le plus clair de notre temps à coder en direct une application pour montrer des techniques de code innovantes, pragmatiques et efficaces, nous vous livrons dans ce billet, les grandes tendances de ce Devoxx World 2012.

Ce qui frappe avant tout dans ce Devoxx 2012, c’est la très grande pluralité des technologies associées à Java : nous ne sommes plus dans l’ère d’un langage qui se suffit à lui même ; mais bien dans celle de l’interaction avec tout un tas de technologies tierces.
Le logo cette année reprend bien ce thème : We code in Peace, nous venons coder en paix, comme si Java débarquait dans un nouveau monde.

JDK8

La star du show, particulièrement poussée par Oracle, mais attendue par tous, c’est la prochaine mouture du langage : le JDK8. Il est prévu pour septembre 2013.
Les principales fonctionalités sont :

  • l’ajout des lambdas expressions (JSR 335)
  • le changement sur les annotations avec entre autre, la possibilité d’annoter des types (JSR 308)
  • les nouvelles API de Date (JSR 310)

Les expressions lambdas dont nous avons déjà parlé vont modifier le langage de manière assez importante. La spécification est encore en plein bouleversement : du code écrit il y a deux mois ne compile plus du tout. L’implémentation n’est pas définitive. Voici quelques exemples pour vous donner un avant-goût :

Exemple de calcul de somme avec une lambda :

 

@Test
public void shouldReduceASimpleCollection() {
  List<Integer> stringsAsList = asList(1, 2, 3, 4, 5);
  Integer sum = stream(stringsAsList).reduce((x, y) -> x + y).get();
  assertThat(sum).isEqualTo(15);
}

 

Un autre exemple de tri de tableau avec une lambda :

@Test
public void shouldFilterASimpleCollection() {
  List<String> stringsAsList = asList("foo", "bar", "qix", "baz");
  ArrayList<String> resultList = stream(stringsAsList).filter(x -> x.startsWith("b")).into(new ArrayList<String>());
  assertThat(resultList).containsOnly("bar", "baz");
}

 

Le même code avec jdk8 et guava (on notera que celui-ci est nettement plus concis que l’implémentation actuelle du jdk8, ce qui nous laisse espérer une simplification de la syntaxe à terme)

@Test
public void shouldFilterWithGuava() {
  List<String> stringsAsList = asList("foo", "bar", "qix", "baz");
  Iterable<String> resultsLists = from(stringsAsList).filter(x -> x.startsWith("b"));
  assertThat(resultsLists).containsOnly("bar", "baz");
}

 

JavaScript comme langage de premier ordre

La première chose qui frappe à ce Devoxx, c’est l’omniprésence des technologies web et notamment de javascript.
Il n’y avait pas moins de quatre sessions spécifiques sur le javascript pour les technologies Java. Que ce soit la session sur JavaScript pour le javaiste ou de nashorn : JavaScript est un langage de premier plan. Chez Xebia, cela fait deux ans que nous le disons et que nous l’appliquons dans les projets : en voilà la confirmation.

Angular JS

Grâce au sponsoring de Google, il y a eu un grand nombre de sessions sur AngularJS.
Il s’agit d’un framework web embarqué dans le navigateur. Le code que l’on écrivait autrefois dans un serveur d’application avec des frameworks comme Struts, Spring MVC ou JSF se retrouve maintenant écrit en JavaScript. La démonstration de Igor Minar et Misko Hevery était très interactive. Nous pouvions assister à l’enrichissement d’une application classique de liste de tâches mise en avant sur la page d’accueil du site. Nous avons pu assister à la mise en place de bindings entre le modèle et la vue, de composants web réutilisables, de gestion d’erreurs automatisée ou de règles de validation. La vision d’AngularJS est très originale concernant la vue : elle utilise l’extensibilité des balises offerte par HTML5 pour ajouter des méta-données au DOM directement dans la page. L’autre fonctionnalité déroutante est la définition d’une source de données JSON. Dans la démonstration, il s’agissait d’une base de données MongoDB. Les tests unitaires ne sont pas en reste car nous avons pu constater que l’injection de dépendances et le framework de test Jasmine ont été utilisés pour écrire les tests unitaires. Concernant le déboguage : il y a une extension Chrome pour cela.
Il y a donc d’énormes possiblités sur ce framework qui a tendance à révolutionner la manière dont les développeurs Java considéraient JavaScript jusqu’à présent. Preuve en est la popularité du framework comparativement à JavaFX par exemple. Notez qu’il y avait plusieurs sessions sur JavaFX, toutes poussées par Oracle, mais nous ne nous sommes pas déplacés pour les voir.

Flash disparait du radar

Lors de la keynote de Stephan Jansen nous avons eu une démonstration de la migration de la plateforme Parleys de Flex vers HTML5. C’est impressionnant de voir la richesse de l’interface utilisateur. L’exploitation du mode offline, des drag’n’drop, de la voix, de la vidéo, du bouton droit et ou de l’upload progressif de fichiers volumineux fait des merveilles.

Le cloud est partout

Le cloud est aussi trés présent. Il l’était déjà l’année dernière et confirme sa forte présence cette année. Notamment au niveau des exposants où tous ou presque proposent une solution de leur produit accessible dans le cloud.
Le cloud tire derrière lui un wagon de technologies & de techniques liées : devops, nosql, bigdata. Mais il y a eu moins de sessions sur le sujet que les années précédentes.

CodeStory

Le but était de développer Code-Story Fight, un site web qui permet aux utilisateurs de créer et de partager des fights entre deux mots clés, à la Google Fight. Vous obtenez les scores basés sur ce que les utilisateurs aiment le plus à Devoxx. En effet avant l’évènement nous avons hacké un site de planning en utilisant nos standards de développement :) afin de récupérer les votes sur les sessions Devoxx. Ces données (speaker, tag, sujet) ont été exploitées par le site web de fight créé à partir de rien devant les Devoxxians.

Crédits Photos : Pierre-Antoine Grégroire
Nous avons développé le site web et l’avons déployé rapidement sur Internet. Voici quelques chiffres :

  • 6 heures de développement
  • un site web déployé à partir de la première heure
  • environ 1300 votes par 70 utilisateurs
  • plus de 4000 accès à l’application de fight !
  • des fonctionnalités sympa comme les urls bookmarquables, tweeter ce fight, animations css, Top Fights, etc…

Cette session fut excellente et nous espérons que tout le monde a aprécié le show. Nous vous encourageons à forker notre repository : il s’agit réellement de ce que nous avons réalisé durant ces deux jours un peu fous de live coding.

Humour

Parfois des conférences très techniques comme Devoxx se font l’écho de méthodologies. Cette année Chet Haase (nouvelle recrue du Java Posse) nous présente le futur du développement logiciel : plus de processus. Inutile de préciser que cette présentation est du 6ème degré extrêmement hilarant. Une seule citation :
Après le waterfall, le fall : Start -> Fall -> End (là où on retrouve le plus souvent un corps inanimé)

Devoxx France & UK.

Devoxx France 2013 a été annoncé dans une belle vidéo qui rend hommage au très gros travail des Xebians. Elle aura lieue le 27, 28 et 29 mars 2013 dans le même hôtel que l’année dernière.
Un Devoxx UK a été annoncé pour la même semaine le 25, 26 et 27 mars, ce qui à priori devrait faciliter la venue de speakers étrangers.

Publié par Jean-Laurent de Morlhon

CTO @ Xebia France. Sur twitter avec @morlhon

Publié par Sébastian Le Merdy

Sébastian est entré chez Xebia en 2011 pour mettre en pratique le Software Development Done Right.
Il est passionné par le développement logiciel et les technologies innovantes et le met au service de l'utilisateur final à travers l'agilité dans les projets.
Vous pourrez peut-être le rencontrer lors d'un coding dojo ou une présentation de live coding.

Commentaire

2 réponses pour " Devoxx 2012 "

  1. Publié par , Il y a 6 années

    Angular.JS (Google ou assimilé) et Avatar (oracle) ont l’air de jouer dans la même cour:
    * Two Way Data-Binding
    * Templating
    * MVC
    * Plain JavaScript
    * Components
    * Reusability/extensibility
    * Testable

    Sauf que Avatar a l’air (jusqu’à présent) d’un vaporware, alors que Angular.JS est bien réel.

    De mon point de vue, j’ai tendance à penser que Adobe AIR+Flex ont laissé un vide que certains essayent de combler, en suivant diverses voies, Angular.JS et Avatar correspondant à la voie JS/full web standard. Je pense que cela se verra encore plus quand la prochaine version de JS disposera de classes – tel qu’annoncé ici http://www.2ality.com/2012/07/esnext-classes.html – comme ActionScript.

  2. Publié par , Il y a 6 années

    Il y a une petite erreur de syntaxe sur les lambdas avec Java8 : la méthode stream() est présente dans java.util.List :
    ArrayList resultList = stringsAsList.stream().filter(x -> x.startsWith(« b »)).into(new ArrayList());

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Nous recrutons

Être un Xebian, c'est faire partie d'un groupe de passionnés ; C'est l'opportunité de travailler et de partager avec des pairs parmi les plus talentueux.