Interview de Sylvain Roussy, auteur du livre Neo4j - Des données et des graphes, à l'occasion de la sortie de la 2e édition du tome I. Prise en main (10/02/2016).
Bonjour Sylvain, une deuxième édition de ton livre vient de paraître. Tu as choisi de mettre d'abord à jour ce premier livre avant de terminer le second volume portant sur le déploiement en production de Neo4j. Pourquoi ?
L'équipe de Neo Technology a beaucoup travaillé, certains changements dans Neo4j impactaient directement ce premier ouvrage. L'authentification est arrivée avec Neo4j 2.2, de nouvelles fonctions CYPHER également. Cette multitude de fonctionnalités additionnelles m'ont convaincu de remettre ce premier tome à jour avant de poursuivre sur l'aspect production. C'est également l'occasion de faire profiter au lecteur d'un plus grand retour d'expérience de la part de la communauté et pour moi d'affiner mon travail rédactionnel et pédagogique.
Cette nouvelle édition porte-t-elle sur la version 2.3 ou la version 3.0 ? Quelles sont les différences ?
La version stable de Neo4j utilisée pour la rédaction de cet ouvrage est la 2.3. Cependant cette révision est Neo4j 3.0 Ready ! En effet certains exemples proposés dans l'ancienne édition de ce tome ne fonctionneront plus avec la version 3.0 de Neo4j (rien d'insurmontable cependant, mais je ne voulais pas que le lecteur soit perdu alors qu'il est en cours d'apprentissage). Il s'agit principalement de l'emploi des parenthèses rendues obligatoires pour désigner les nœuds dans un Pattern Matching. Tous les exemples sont corrigés pour cette édition.
Neo4j 3.0 fera également la part belle à un protocole de communication binaire basé sur TCP répondant au nom de Bolt. Voilà qui nous promet une communication à grande vitesse avec un serveur Neo4j. Je n'ai pas plus de détails concernant d'autres améliorations majeures mais je reste d'être à l'affût.
Qu'est-ce qui a changé d'autre dans le livre ?
C'est une somme de détails, tantôt un appui pédagogique sur un point particulier, parfois la réécriture d'une section. L'aide-mémoire CYPHER a également été complété. Et puis de nombreuses corrections qui n'avaient pas pu l'être dans l'édition papier ont été appliquées. Sur le fond j'ai tenté d'être plus clair et plus pédagogue. L'annexe sur les ressources a également été complétée, on y cite autant les APIs Javascript de manipulation des graphes que les différents acteurs faisant partie de l'écosystème Neo4j, et l'année a été prolifique en la matière.
Nicolas Rouyer t'a rejoint pour cette nouvelle édition. Quelle a été sa contribution ?
Je remercie Nicolas pour la qualité de sa relecture, ce qui m'a permis de faire des corrections allant de l'accessoire au gênant (je pense qu'il n'y a pas pire que de se relire soi-même ! Et je le remercie une seconde fois puisque grâce à lui une nouvelle annexe a fait son apparition, elle permet au lecteur de prendre contact avec un cas d'usage concret dans le cadre des Graph Gists (un Graph Gist est un document associant texte, graphe et requêtes autour d'un cas d'utilisation précis). Nicolas a fait un très bon travail et emmène le lecteur, d'un besoin (ou de l'idée) vers la vérification par la mise en place d'un graphe Neo4j. Je suis ravi que cette annexe ait pu voir le jour.
Pourquoi avoir ajouté un chapitre sur les Graph Gists ?
Comme je l'ai dit, un Graph Gist est un document, un Gist au départ (essentiel en français, le Gist est bien connu de la communauté GitHub qui lui doit son origine) enrichi pour traiter des graphes avec Neo4j. C'est un document, certes, mais auto-portant dans le sens où il peut contenir de la documentation complétée d'exécutions et de visualisations. Nous sommes presque proches d'un document multimédia mais les traitements sont effectués en temps réel. Des requêtes CYPHER peuvent y être lancées, et l'on peut constater leur résultat dans un graphe intégré au document. C'est un outil magnifique à la fois pour un intervenant fonctionnel mais également pour un intervenant technique. Il permet de communiquer sur un sujet autant que de s'enrichir grâce au sujet des autres. Il n'y a qu'à jeter un œil sur la liste et la variété des sujets proposés sur le site des GraphGists (transports, logistique, réseaux sociaux, etc.) pour se rendre compte du potentiel. Il y a plus d'un an de cela, j'en avais parlé en introduction d'un Meetup Neo4j à Lyon. Il me semblait à la fois naturel et important qu'un chapitre les détaillant fasse partie de cet ouvrage, au même titre qu'un exemple Javascript y est donné.
Merci Sylvain, souhaites-tu ajouter quelque chose ?
Écrire un ouvrage technique est une aventure en soi, surtout lorsque ce travail s'inscrit en plus de son activité professionnelle. Le réviser l'est presque tout autant. Tout est question de disponibilité, d'honnêteté envers le lecteur et d'informations fraîches. Il n'est pas simple de parvenir à tout conjuguer. J'espère une fois de plus avoir réussi à stimuler la passion qui nous anime, quelle que soit notre fonction dans ce monde de l'informatique. Enfin, j'ai dit à Nicolas que tu étais le troisième auteur, dans l'ombre. Je pense qu'il n'a pas fait très attention à cette remarque en premier lieu. Je pense à présent qu'il en est convaincu. Une communauté dans les communautés, notre travail serait maladroit sans le tien. Peut-être puis-je me permettre de te retourner la question : Merci Patricia, souhaites-tu ajouter quelque chose ?
Les bases de données orientées graphes ont quelque chose de vraiment fascinant, permettant de relier les données de manière riche et intuitive. Pour ma part, j'ai pris un réel plaisir à travailler sur ce livre, et j'espère qu'il inspirera de nombreux lecteurs !