Devoxx France cru 2014

Le Devoxx France est, à l’image de son parent le Devoxx, une conférence à caractère technologique qui s’étale sur trois jours. Bien que axé sur l’écosystème Java, on y trouve aussi des tracks sur d’autres langages (comme Erlang ou Go), et sur d’autres technologies (programmation système sur Raspberry Pi ou sur Arduino).

C’est la troisième année et le cru 2014 a été, à mes yeux, excellents. Ce que j’aime dans cette conférence est son caractère technique ; les tracks sont animés par les programmeurs pour les programmeurs. Foin donc de toute propagande sur tel outil, tel framework ou tel autre produit. Ici, l’accent est mis sur la présentation avant tout technique, le plus souvent illustrée par une démonstration qui, je l’avoue, me parle beaucoup plus qu’une suite ininterrompue de slides et de blabla.

Cette année, le Devoxx a eu lieu, comme les années précédentes, à l’Hôtel Marriott Rives Gauche à Paris du mercredi 16 au vendredi 18 avril. Or, le lieu est peu spacieux et, effectivement, il a fallu jouer des coudes pour se glisser entre les gens et s’infiltrer dans une salle avant qu’elle soit comble. Le pire a été tout de même le déjeuner où il a fallu se serrer comme des sardines, voir faire preuve d’astuces, pour arriver à choper des crudités et des sandwichs. Mais, ceci ne sera sans doute qu’un mauvais souvenir car l’annonce a été faite que le prochain Devoxx France se fera … au Palais des Congrès à Paris du 8 au 10 avril 2015. Un espace donc bien plus conséquent, à l’image, je pense, du succès du Devoxx France et des ambitions de ses organisateurs.

Parmi les keynotes, deux m’ont le plus interpellés. D’abord celle de Gilles Babinet et de Kwam Yamgnane dans laquelle ils rappellent que notre société devient depuis quelques années une société de l’information, ouvrant ainsi une nouvelle ère qu’ils nomment l’Ère Numérique. Dans cette nouvelle société, le logiciel est partout et devient un élément marquant, voir différenciateur ; le développeur, pardon le programmeur (un clin d’oeil à J. de Morlhon), en est donc un acteur important. Malheureusement, la France ne semble pas encore préparée à entrer dans cette nouvelle ère, les auteurs prenant exemple des politiques actuelles, du rôle des programmeurs dans les entreprises françaises, de la gouvernance de celles-ci, mais aussi de l’enseignement à l’éducation nationale, fondés tous sur des modes de pensée et d’organisation de type pyramidales, issus de la fin du 19e et première moitié du 20e siècle. Ainsi, par exemple, alors que l’information est accessible partout et en tout lieu, au lieu d’apprendre aux enfants de l’exploiter, on fonde encore leur enseignement, et donc les évaluations, sur la rareté de celle-ci. De même que la société en devenir se fonde sur l’esprit de partage et de collaboration, l’enseignement force l’individualisation du travail de chacun. La seconde keynote est celle surprise de Tariq Krim, auteur de la controversée liste d’une centaine de développeurs marquants. Pour lui, et en accord avec le discours de Gilles Babinet et de Kwam Yamgnane, les programmeurs sont malheureusement peu considérés dans notre société et les entreprises et donc, indirectement, en est de même de l’intérêt et du rôle pourtant grandissant des logiciels dans la construction de la société de demain. Il reprend les paroles de Alan Kay, le père de la programmation orientée-objet : The best way to predict the future is to invent it et il nous exhorte que c’est à nous, aujourd’hui, d’inventer, de créer ce future. Pour ce faire, il nous propose son initiative “Code For France”.

Passons maintenant aux tracks proposés. Cette année, j’ai mis l’accent sur JEE, le mal aimé, dont les tracks ont été animés par les excellents Alexis Hassler et Antoine Sabot-Durand. En effet, je travaille sur un portail social et collaboratif d’entreprise, Silverpeas, qui a été construit dès le début, en 2000, sur une base J2EE. Or, depuis quelques années, avec l’arrivée de JEE 6, nous avons commencé à migrer notre plate-forme vers cette dernière mouture. Si j’ai suivi, d’un œil distant je l’avoue, les évolutions apportées par JEE 6 puis, et surtout, par JEE 7, j’étais encore resté sur mes connaissances des spécifications J2EE dans lesquelles le conteneur EJB était bien distinct du conteneur Web non seulement du point de vue de leur compartimentation par une hiérarchie différente de class-loaders, du cycle de vie des objets différent, mais aussi par l’outillage technique accessible. Ainsi, la persistance (à l’époque BMP, puis CMP), JCA, JMS, … étaient tous des services à disposition du conteneur EJB, celui Web étant plutôt son cousin pauvre. J’ai appris, par les différents tracks sur le sujet, qu’en fait, les conteneurs Web et EJB ne se résument finalement plus qu’à la gestion du cycle de vie des objets. Un autre conteneur intervient en transverse : le conteneur CDI, faisant que l’ensemble des services JEE reposent dorénavant sur celui-ci (ce n’est pas complètement vrai pour certains services comme JCA) . Il est donc possible, avec JEE, de profiter, du côté Web, de la persistance et d’autres services jusqu’alors destiné aux EJB et, avec JEE 7, sans avoir à utiliser pour ceci d’EJB ! Il est donc possible d’avoir toute son application dans une seule archive … war.

Ceci à part, j’ai assisté aussi à des tracks d’intérêts d’ordre plus personnel. A côté de celles sur AngularJS ou sur NodeJS, qui ont le vent en poupe, j’ai aussi assisté à la présentation des streams dans Java 8. Si j’étais dubitatif quant à ceux-ci comme choix d’implémentation des constructions fonctionnelles basiques, j’ai fini par mieux comprendre, et aussi par apprécier, leur intérêt. Et notamment leur préoccupation des problématiques du traitement parallèle (qui est distinct de celui concurrentiel), que l’on ressent jusqu’au choix du nom de la fonction reduce, du pattern Map-Reduce, en lieu et place de foldr, plus classique dans les langages de programmation fonctionnels. Toutefois, sur ce sujet, mon sentiment, qui est avant tout subjectif, est que les streams dans Java 8 constituent juste un premier jet pour répondre à un besoin émergent mais ne sauraient répondre aux vraies attentes des domaines d’application de la programmation parallèle comme le Big Data par exemple, le buzz word pour désigner le data mining à plus grande échelle. Quant à leur usage, ceci va demander une certaine révolution culturelle auprès des programmeurs Java, et ceci d’autant plus que les streams font appel à la programmation fonctionnelle, donc à une approche d’esprit et de conception différente de celle habituelle dans Java. On risque donc d’observer des ratés, voir des imbroglios dans le code. Si Scala est devenu, à mes yeux, le C++ de l’écosystème Java de par sa complexité technique contrebalançant son efficacité, ce dernier garde l’avantage d’être cohérent dans son approche de programmation plutôt orientée fonctionnelle (même s’il est possible de faire de la programmation impérative avec). Avec mon expérience des langages de programmation fonctionnelle (Lisp, Haskell et accessoirement Scala), j’ai hâte de tâter des streams dans un contexte de programmation naturellement dirigé par une approche impérative.

Les autres tracks qui m’ont intéressés, mais dont je n’ai pu assister pour la majorité, sont ceux sur Docker. Ce dernier est une solution de compartimentation de l’exécution de programmes vis à vis du système et des autres processus, destinée à la virtualisation, et qui se veut transversal des techniques de compartimentation sous-jacent aux différents systèmes : les cgroup sous Linux, les jails sous les BSD, … La difficulté sera de porter Docker sur des OS comme MacOS X et Windows qui ne proposent pas d’outils de ce genre mais je ne suis pas sûr que ce soit leur priorité, voir même leur axe de développement, étant donné que la majorité des serveurs, virtualisés ou non, tournent sur du GNU/Linux. L’intérêt de Docker est de pouvoir concevoir un conteneur avec un environnement configuré constitué de programmes donnés que l’on puisse installer et enlever dans un environnement virtualisé quel qu’il soit, voir même sur son propre poste de développement (s’il tourne sous une distribution GNU/Linux). Or ceci m’interpelle car il est fréquent, dans mon usage aussi bien professionnel que personnel, de nécessiter différents environnements d’une même application (avec ses dépendances comme un SGBDR ou un NoSQL par exemple). Docker est donc mon prochain axe d’investigation (enfin, si j’arrive à glaner suffisamment de temps).

Miguel Moquillon

Author: Miguel Moquillon

Restez au courant de l'actualité et abonnez-vous au Flux RSS de cette catégorie

Commentaires (1)

Etienne Etienne ·  24 avril 2014, 08:01

Merci pour ce retour sur cette conférence :)

Aucune annexe



À voir également

Le SnowCamp 2017

Le SnowCamp a été renouvelé cette année et a eu lieu du 8 au 11 février avec cette même formule qui a fait le succès de la première édition : une journée d’université le merdredi au World Trade Center, deux jours de conférences le jeudi et vendredi à l’Université des Alpes et une journée d‘“unconference” sur les pistes de ski de Chamrousse le samedi.

Lire la suite

Le SnowCamp 2016

Je vous propose un petit compte rendu du SnowCamp 2016 qui s’est déroulé du 20 au 23 janvier à Grenoble et ceci en toute … subjectivité étant un des organisateurs de cet événement. Mais d’abord, qu’est-ce que le SnowCamp ? C’est une manifestation faite par les codeurs à destination des codeurs et qui profite du pôle technologique et d’innovation qu’est Grenoble pour ouvrir ses portes aux thésards et aux chercheurs afin qu’ils nous fassent profiter de leur travaux.

Lire la suite