Article écrit par Louison
Le 15 novembre a eu lieu la quatrième édition du DevFest Strasbourg. Avec plus de 30 conférences réparties sur 4 scènes, c’est la plus grande conférence technique du Grand-Est destinée aux développeurs et développeuse. 🚀
Nous vous proposons un résumé de 2 conférences auxquelles nous avons pu assister.
“Faire simple, la clé de la durabilité” 🗝️
Dans cette conférence, Bertrand Delacrétaz, Principal Scientist chez Adobe et membre de la fondation Apache, nous parle de l’importance souvent sous-estimée de la quête de simplicité dans les projets informatiques.
En illustrant la simplicité avec des objets et outils du quotidien comme les briques Lego, le couteau suisse ou encore un kazoo, on peut faire le parallèle avec la philosophie UNIX : faire une seule chose, mais la faire bien.
Cette citation d’Antoine de Saint-Exupery s’applique aussi bien à la simplicité : “Il semble que la perfection soit atteinte, non quand il n’y a plus rien à ajouter, mais quand il n’y a plus rien à retrancher.”
On peut assembler ces blocs pour résoudre des problèmes plus complexes. Simple ne veut pas dire simpliste, il faut que la solution trouvée résolve le problème initial, il ne faut pas prendre de raccourci. Par exemple, une librairie de composants web, l’architecture est simple, mais des notions comme l’accessibilité sont quand même prises en compte.
Un autre exemple, pour un projet d’acquisition continue de données météo.
Ce projet a eu lieu dans les années 90, époque où la bande passante et le réseau étaient moins développés qu’aujourd’hui. Une solution plutôt évidente aurait été d’utiliser une base de données, mais est-ce vraiment nécessaire dans ce contexte ? Et non, pas besoin de requêtes SQL. On veut simplement récupérer les données pour une plage horaire choisie.
À l’époque, les systèmes de bases de données open source n’étaient pas aussi répandus, et renoncer à une base de données permettait aussi d’économiser le coût des licences.
La solution retenue est le stockage de fichiers dans des dossiers chronologiques. Chaque année (2021, 2022, 2023) a son dossier, avec 12 sous-dossiers mensuels, et à l’intérieur, 31 dossiers journaliers et 24 dossiers horaires. Chaque fichier porte un nom de timestamp et contient de 5 secondes à 1 minute de données.
Le contexte est aussi très important. Il n’existe pas de recette magique pour simplifier, il faut aussi pouvoir mesurer et évaluer. C’est en éliminant les solutions les plus complexes, en expérimentant, qu’on a pu trouver une solution simple.
Web Assembly en dehors du navigateur 🌐
Dans cette conférence, Mete Atamel, Developer Advocate chez Google, nous parle de WebAssembly, souvent abrégé en WASM, un format d’instruction binaire pour une machine virtuelle à pile.
À l’origine conçu pour exécuter du code de façon rapide et sécurisé dans le navigateur, principalement pour des besoins de performance et de sécurité. Par exemple, Adobe a développé une version de photoshop accessible depuis le navigateur grâce à WebAssembly.
WebAssembly est supporté par les principaux navigateurs du marché (Chrome, Firefox, Edge et Safari). Dans sa présentation, Mete va nous parler de l’utilisation de WebAssembly en dehors du navigateur. Pour pouvoir utiliser WebAssembly en dehors du navigateur, le projet WebAssembly System Interface (WASI) a été créé. Il permet à WebAssembly de proposer une interface standard pour accéder à des ressources telles que les fichiers et les connexions réseau.
Pour exécuter le code, un runtime est nécessaire, les plus populaires sont :
– wasmtime : développé par le consortium Bytecode Alliance
– wasmedge
Vous pouvez retrouver une liste plus exhaustive ici.
Au lieu de faire tourner son code dans des containers ou des machines virtuelles, il peut être déployé en tant que module WebAssembly (WASM). De nombreux langages peuvent être compilés en WASM (rust, go, c / c++, c#, python, kotlin, etc …). À noter que WASI est toujours en cours de développement et certaines fonctionnalités, comme le ramasse-miettes, sont encore en cours de spécification. Si vous souhaitez l’essayer chez vous, vous pouvez retrouver le code de la démo réalisée par Meta pendant sa présentation ici.
WASM en dehors du navigateur est encore une technologie en cours de développement, mais de plus en plus d’acteurs l’adoptent comme Shopify ou Docker qui propose de faire tourner des containers via WASM (fonctionnalité en beta).
Il est intéressant de garder un œil sur son évolution. WebAssembly pourrait devenir une technologie de référence dans le futur.
Conclusion 😎
Une journée intéressante et des salles bien remplies. Le GDG de Strasbourg s’est encore surpassé pour l’organisation de cette édition. 👏
En attendant l’année prochaine, vous pouvez retrouver toutes les conférences sur la chaîne YouTube du GDG Strasbourg 👇