StackOverflow
Présentation
StackOverflow est un site de questions-réponses collaboratif, qui se positionne sur des questions concrètes de développement logiciel. Il se distingue en celà des autres sites de la famille StackExchange, qui sont davantage centrés sur des questions d’ingénérie logicielle, de conception, de qualité… ou bien qui sont plutôt définis par un environnement technologique comme « Android », « Linux », ou « la sécurité informatique » que par la pratique du développement logiciel.
Avantages
Christian trouve que la fréquentation de StackOverflow est un bon complément pratique à l’étude théorique du langage de programmation, car elle est plus adaptée pour répondre aux question que l’on se pose quand on a les mains dans le cambouis. Par exemple « Je veux faire X dans mon code, comment dois-je procéder ? », ou bien « Quelles bibliothèques conseillez-vous dans le langage X pour le domaine métier Y ? ». C’est particulièrement vrai dans un cadre d’autoformation, où on n’a guère l’occasion d’interroger ses enseignants.
Le principal avantage de StackOverflow est sa taille. Il s’agit sans doute de la plus grande communauté de développement logiciel sur internet, et le site a accumulé au fil des années une base de connaissances immenses. Quand on fait une recherche sur un problème de développement logiciel sur internet, il est courant que StackOverflow soit le premier résultat du moteur de recherche, et qu’il contienne effectivement la réponse juste. Et quand la réponse n’est pas encore là, on sait que toute question posée sera vue par une audience gigantesque, au sein de laquelle il y a de fortes chances de tomber sur une personne qui connaît la réponse. Bien entendu, comme dans tout site de questions-réponses, la qualité des réponses dépend aussi beaucoup de celle de la question…
Globalement, les utilisateurs de StackOverflow sont très satisfaits. C’est devenu un outil incontournable dans le monde du développement logiciel, même en tant que « simple lecteur » qui ne pose pas de questions et ne soument pas de réponses. Que l’on tombe dessus par simple recherche web, que l’on contribue directement au site ou que l’on s’abonne à des alertes régulières sur un sujet donné comme Antoine, l’utilisation est facile, le contenu est copieux et de qualité élevé, et le site a globalement tiré chacun d’entre nous de plus d’un mauvais pas.
Inconvénients
Au niveau des défauts, l’utilisation excessive de StackOverflow tend à créer chez le développeur une certaine paresse intellectuelle, où l’on finit par copier-coller du code de réponses que l’on ne comprend pas sans ouvrir la documentation, réfléchir et se demander si il est optimal ou adapté à la situation. La pratique est suffisamment répandue pour avoir gagné le surnom moqueur de « StackOverflow-oriented programming ». Bien entendu, il ne s’agit pas vraiment d’un problème lié au site et que ce dernier pourrait corriger, mais plutôt d’un travers de la société qui s’est construite autour du site.
La grande taille et le long historique de StackOverflow ont aussi quelques inconvénients. Par un système de ludification, le site encourage très fortement les utilisateurs à soumettre des réponses aux questions, mais n’offre qu’un contrôle relativement faible de la qualité des réponses. Quand on combine cela au grand nombre d’utilisateurs, il vient naturellement qu’une question populaire va avoir un grand nombre de réponses, de qualité très variable, et qu’un certain nombre de recherches seront nécessaires pour faire le tri. Et comme le site existe depuis longtemps, et gère mal le vieillissement des réponses, il n’est pas rare de tomber sur des réponses anciennes obsolètes que personne ne s’est chargé de corriger. A ce niveau, l’inertie communautaire liée au système des votes est aussi un problème, car elle s’adapte mal aux changements dans le milieu technologique extérieur.
La gestion des droits utilisateurs et de la modération, basée sur un système de réputation, est très encadrée à un degré qui frise parfois le psychorigide. Les nouveaux utilisateurs ne peuvent faire que peu de choses sur le site, et les habitués ayant accumulé une grande quantité de pouvoir par leur fréquentation régulière du site sont rarement très tendres avec les débutants. On est autant jugé sur la forme que sur le fond, de nombreux sujets de conversation (notamment tout ce qui relève d’un jugement de valeur) sont complètement bannis du site, et la chasse au doublon se fait souvent sans pitié. Globalement, les « experts » historiques ont souvent un comportement peu aimable voire très dominateur, c’est une des principales critiques du site à l’extérieur. Mais bien sûr, il y a des exceptions.
Un mot sur les auteurs
Le site StackOverflow a été cofondé par Jeff Atwood et Joël Spolsky, deux illustres bloggeurs de la première heure dans le monde Microsoft, auteurs respectifs des blogs Coding Horror et Joel on Software. Parmi les autres réalisations de ces développeurs, on peut aussi mentionner:
Conférences
Budget missions du SI
Le service informatique du LAL possède un budget pour financer toutes sortes de missions, qu’il s’agisse d’aller à des conférences ou d’accélérer un projet en passant une semaine avec les développeurs principaux.
Ce budget est géré selon l’idée que si on se déplace principalement pour le compte d’une expérience de physique, il est approprié de mettre la mission sur le compte de l’expérience correspondante, mais qu’il existe tout un tas d’activités du SI qui sont soit trop transverses, soit trop « informatique » pour qu’aucune expérience précise ne s’y identifie. Le SI finance volontiers ce type de missions.
Dans cette optique, Michel recense actuellement qui souhaite se rendre à CHEP et aux JI.
CHEP
Nous avons déjà parlé de CHEP dans des éditions précédentes de cette réunion. C’est sans doute la plus grande conférence d’informatique et de logiciel pour la physique des particules, et elle est organisée tous les deux ans et dont le lieu tourne entre l’Europe, les Etats-Unis, et le reste du monde. Cette année, elle est organisée à Sofia, en Bulgarie.
L’inscription à CHEP est chère par rapport aux habitudes du monde de la physique et du milieu académique (500 €), mais ces frais ne sont pas forcément excessifs si on les met en parallèle avec d’autres conférences d’informatique. Pour donner quelques exemples, l’inscription à la conférence GTC du fabricant de processeurs graphiques NVidia coûte près de 2000 $, et même des conférences informatiques organisées par des sociétés savantes comme l’ACM (SIGGRAPH, Supercomputing…) voient leurs frais d’inscription sans réduction monter à plus de 600 $.
JIs
Les JI sont un autre rendez-vous dont l’esprit est très différent. Il s’agit des Journées Informatiques de l’IN2P3 et de l’Irfu, qui rassemblent à l’échelle nationale des personnels informaticiens du CNRS et du CEA travaillant sur des thématiques « univers et particules », via le réseau RI3. L’atmosphère est plutôt détendue, avec un programme mêlant présentations informelles et ateliers pédagogiques, et les frais sont presque tous pris en charge par les tutelles à l’exception du transport. Le cadre est généralement un centre de vacances du CAES en morte saison, le comité de programme parvient à n’avoir que 2-3 sessions en parallèle sans faire une sélection très stricte, et globalement l’idée est plutôt de prendre un moment pour se poser et voir ce que font les collègues de l’autre bout de la France.
Bien sûr, cela ne veut pas dire pour autant qu’il n’y a rien à préparer. En particulier, les animations pédagogiques comme la piscine (dont on a parlé dans les réunions précédentes) nécessitent une bonne dose de matériau et de main d’oeuvre, dont la préparation est généralement lancée quelques mois à l’avance. A ce niveau, David reconnaît que le nom de « Pépé Nageurs », qu’il proposait pour la prochaine édition des piscines, n’est pas forcément idéal (selon la personne qui le lit, il peut être lu comme sexiste, comme un « sale vioque », etc…). On trouvera mieux. Il rappelle aussi que les JI n’excluent pas des formats de formation plus longs que la piscine, qui sont plus adaptés par exemple à l’exploration en profondeur d’un sujet, ou bien à l’utilisation d’une infrastructure qui ne se VM-ise ou containeur-ise pas.
Avenir d’ACAT
Pour terminer sur le sujet des conférences, Julius s’inquiète du devenir de la conférence ACAT.
Pour ceux qui ne seraient pas familier de cette dernière, il s’agit d’une conférence d’informatique en physique des particules, beaucoup plus petite que CHEP et plus centrée sur les questions de logiciel, avec quelques sous-domaines de prédilection comme l’apprentissage automatique (qu’ils traitaient avant que ce soit la mode). Les habitués trouvent ACAT plus agréable que CHEP, car cette conférence a une atmosphère plus « humaine », moins « usine ».
Le coeur du problème est que l’organisation de la conférence a historiquement été fortement portée par Federico Carminati, or ce dernier…
- Approche de la retraite et doit passer la main, avec les risques que cela entraîne.
- Ne serait, selon Julius, actuellement plus en odeur de sainteté dans la communauté des développeurs CERN.
Au coeur du second problème se trouve le projet de simulation HEP parallèle et vectorisée GeantV. Ce dernier se place en concurrence avec le standard actuel de la simulation, Geant4, ce qui fait qu’il n’est naturellement pas vu d’un très bon oeil par les experts de cet outil. Et dans ce contexte tendu, le caractère peu diplomate de Federico ne fait que jeter de l’huile sur le feu.
Ce conflit est devenu particulièrement apparent lors de la revue du projet GeantV par HSF, principalement assurée par des experts Geant4, dont les conclusions n’accordaient de crédit qu’aux seuls aspects du projet qui peuvent être aisément réintégrés à Geant4, et se montraient critiques sur tous les autres aspects. Or, s’il va de soi qu’une telle intégration est extrêmement désirable lorsqu’elle est possible, puisqu’elle permet une validation du code GeantV au sein des simulations des expériences, il est évident que favoriser ces aspects au détriment des innovations de rupture de GeantV est unilatéralement à l’avantage du projet Geant4 dans un contexte de compétition entre ces deux projets.
C’est cette lutte intestine, jusqu’à présent plutôt à l’avantage de Geant4 (qui possède un plus grand soutien des expériences), qui amène Julius à s’interroger sur la capacité de Federico à maintenir une force politique au CERN suffisante pour assurer le devenir d’ACAT. Du côté des éléments plus rassurants, on peut cependant noter que…
- La section simulation Community White Paper de HSF a été rédigée d’une façon qui respecte davantage le point de vue des développeurs de GeantV, et présente une vision plus conciliante de l’avenir des deux projets.
- Il y a déjà eu, avec ROOT, un précédent dans l’histoire du CERN où une innovation de rupture logicielle a été d’abord violemment rejetée, en compagnie de son créateur, mais finalement réintégrée.
Système de classement de tutos
Le groupe Dev@Lal souhaiterait recenser les bons didacticiels disponible en ligne et rendre les siens plus visibles. Le classement hérarchique gère mal les sujets « transverses ». Un système de mots-clés semble plus adapté pour ce cas, et David aimerait bien embaucher un stagiaire en développement web pour se fabriquer un tel « trieur de tutos ».
Le sujet a été lancé à l’IUT. Si des membres connaissent d’autres formations en développement web, David est intéressé par l’information. Pour initialiser cet index, un grand nombre de contenus sont disponibles sur la cellule webcast du CC IN2P3, les sites des JDEV (2017, 2015, 2013 et 2011) et le site LoOPS.
Github possède un système de tri par étiquettes intégré, et l’instance Gitlab du CERN et du CC IN2P3 semble proposer une fonctionnalité similaire ( -> Settings -> General). Mais l’information correspondante semble mal intégrée à l’interface actuellement : ajouter des mots-clés à un projet n’a pas d’effet apparent…
Il y a un équilibre entre faire les choses soi-même et utiliser une solution clé-en-main. On peut faire mieux soi-même en y consacrant suffisamment de temps, mais la main-d’œuvre est une denrée très précieuse. Un stage fournit temporairement de la main-d’œuvre, mais la maintenance et l’évolution future sont incertaines. De plus, un stage est court, or les projets logiciels débutent souvent en 5 minutes pour la première version mais nécessitent 10 ans pour la version finale…
C’était aussi un sujet de discussion au dernier café LoOPS sur le développement de jeu vidéo : utiliser un moteur de jeu tout fait a un coût en termes de flexibilité. A ce sujet, Julien et Serge mentionnent qu’un bon compromis est souvent de partir d’un projet tout fait open-source, et de le modifier pour l’amener à ses besoins.
Nouveaux entrants et valorisation
Julien a participé le 20/03 à la journée des nouveaux entrants du CNRS.
Le début n’était pas passionnant, avec une table ronde qui ne tournait pas rond: les questions/réponses étaient clairement préparées et répétées à l’avance. Une intense phase de lobotimisation du type « regardez c’est génial, on s’aime tous et on travaille tous ensemble ».
La suite s’est révélée plus intéressante, avec entre autre des présentations sur la propriété intellectuelle, les brevets, les licences logicielles, … L’accent a été principalement sur les thèmes scientifiques, les sciences sociales étant un peu ignorées. Antoine mentionne tout de même qu’il existe plusieurs projets informatiques en sciences sociales, tels que la constitution de bases de données (par exemple le TGIR huma-num).
Julien note qu’il existe une volonté d’aider et de financer les projets interdisciplinaires, et en lien avec l’industrie, favorisés par la politique actuelle. Ces ressources sont souvent méconnues des agents. En même temps, Julien doute de cette démarche puisque lui même a passé 3 ans dans une équipe interdisciplinaire (physique, stat, info), où la recherche de financement était une difficulté comme partout ailleurs (sempiternelle réponse: pourquoi des physiciens iraient financer des projets informatiques alors qu’ils n’arrivent même pas à financer des projets de physique, et vice-versa?).
Il existe un « pôle CNRS innovation » : c’est une société privée qui travaille pour le CNRS, en faisant du conseil et de l’accompagnement de création d’entreprises. C’est gratuit pour l’utilisateur, il y a un formulaire d’inscription simple et sans engagement avec post-traitement donnant soit une réponse «Non» (refusé), soit «peut-être mais» (on accompagne et on décidera plus tard) soit «Oui».
On peut créer une structure au sein du CNRS ou bien chercher un partenariat avec le privé. Le pôle CNRS innovation (en lien avec le service valorisation) gère les questions de droit d’auteur et s’occupe de faire des études de marché.
Christian se demande d’où vient l’argent qui paye ces gens ? Mais la réponse n’est pas connue… Il y a 45 personnes dans la structure CNRS innovation, et plusieurs antennes dont une à Saclay (en lien avec les SATT).
Nouvelles bases de données
Du côté ATLAS, il y a eu une discussion autour de l’utilisation éventuelle de Kudu dans l’Event Index. Les avis sont partagés: Dario est enthousiaste, mais Torre (le chef du computing ATLAS) n’est pas motivé. Du côté LAL, Julius trouve que c’est de la complexité inutile.
Kudu est une nouvelle BDD pour Hadoop, column-wise, non-relationnelle mais avec une interface SQL. Ça devient courant, probablement davantage pour des raisons de familiarité et de réutilisation que de réelle adéquation au domaine.
Christian voit aussi ça avec les dataframes, qui utilisent de requêtes SQL pour exploiter les optimiseurs existants. Au-delà de quoi Spark optimise aussi le pipeline entier, le réordonne…
David trouve que c’est une discussion intéressante dans le cadre de nos discussions sur les DSL de calcul. SQL, un DSL qui a réussi, serait-il finalement vu comme moins désirable ? Hadrien pense qu’il y a un continuum entre langage généraliste et langage spécifique à une application très précise, et que SQL vire généraliste.
Antoine mentionne qu’un intérêt de SQL, en combination avec le modèle relationnel, est qu’on peut faire des prédictions sur l’utilisation des données, basées sur des modèles mathématiques précis de l’usage. Une raison pour laquelle les BDD orientées objet comme Objectivity n’ont pas eu trop de succès, c’est que SQL a plusieurs propriétés désirables comme la possibilité de prouver la finitude d’une requête.
Julius trouve qu’il y a aussi un problème de l’évolution de schémas : l’objet est fait pour permettre des changements faciles de l’implémentation derrière une interface stable, mais les BDD n’aiment pas les changements de schémas…
Les « anciens » du service, comme Serge et Jean-Noël, se souviennent encore de BaBar, où l’expérience a fini par assumer elle-même la maintenance de la BDD Objectivity. Aujourd’hui, cette peur revient avec MongoDB, où il n’y a pas de garantie que le modèle soit stable…
Divers
Le groupe SVOM récupère l’ancien stagiaire d’Oleg. Ce dernier est en effet perdu pour la science, il partira faire de la blockchain dans l’industrie dans quelques mois.
Il y a pas mal de musiciens dans le SI, en fait: Oleg joue de la trompette, Guy Barrand et Christian Helft avaient fait une session guitare il y a quelques années, Christian Arnault chante, David a joué du basson, Hadrien du piano et de la flûte…