DotGo Europe 2019

DotGo Europe 2019

J’ai eu la chance d’aller à l’édition 2019 de la conférence Dot Go. Bien que je n’ai pas l’occasion de pratiquer le Go quotidiennement (breaking news, les journées ne font toujours que 24h), ce 25 mars 2019 était pour moi l’occasion de rentrer un peu plus dans le monde du Go.

Premier contact, nouveau lieu pour moi : le Théatre de Paris. Autant être franc, assister à une conférence tech dans un lieu aussi prestigieux, ça en jette ! Bon, par contre, si vous mesurez plus d’1m70, les places à l’étage ne sont pas du tout confortables :)

Constat suivant : j’étais habitué à des conférences JS (ReactEurope pour ne citer que celle là). Ici, on est sur une volumétrie plus réduite, mais pas forcément moins intéressante. C’est moins l’usine.

Venons-en à présent aux talks, l’essence même de la conférence. Pour faire le parallèle avec les confs JS où chaque talk est là pour vous présenter une nouvelle lib^H^H^Hbibliothèque, ici les sujets sont plus généralistes, et même pas forcément rattachés au Go en lui-même. Assez déstabilisant (surtout le talk d’Ellen Körbes, j’y reviendrais), pas forcément désagréable. On est moins dans le “matuvu”, mais en contrepartie, peut-être moins d’effet wahou à la clé.

Voici le détail des talks auxquels j’ai pu assister :

Matin :

  • Daniel Martí - Optimizing Go code without a blindfold

Ici, on parle de benchmarks. Mais pas nécessairement uniquement sur le Go. Pour faire de l’optimisation, il faut avoir des metrics. Et les metrics doivent être stables et fiables. Or, lorsque vous faites des benchmarks en local, tout ce qui tourne en même temps sur votre machine influe sur le résultats (Slack, Chrome, et je passe les autres CPU hogger.) Approche intéressante sur le throttling du CPU pour éliminer la variance sur les benchmarks. https://docs.google.com/presentation/d/1cUVp8OuzOW4lzClsiptgacW7nSFkcgvhLRVAOgVPpYg/edit#slide=id.g550f852d27_228_0

  • **Kat Zień - How do you structure your Go apps **

Ce talk me semblait prometteur, au niveau de son intitulé, moi qui me demande à chaque fois comment structurer un projet quand je joue avec un nouveau langege / framework. Au final, ce talk s’est plus axé sur le Domain Driven Development. Très intéressant sur le fond, mais je ne peux m’empecher d’avoir un peu de déception par rapport à mes attentes initiales. https://github.com/katzien/talks/blob/master/how-do-you-structure-your-apps/dotgo-2019-03-25/slides.pdf

  • Ignat Korchagin - Go as a scripting language in Linux

    Comment utiliser du Go comme un simple langage de scripting (donc sans compilation). Très bonne approche et découverte du special mount linux /proc/sys/fs/binfmt_misc.

    https://blog.cloudflare.com/using-go-as-a-scripting-language-in-linux/

  • Michael McLoughlin - Better x86 Assembly Generation with Go

    Il est parfois nécessaire de recourir à l’assembleur : performance, élimination des effets de bords, être plus près de la machine. C’est notamment le cas dans l’implémentation de la crypto. Ecrire de l’assembleur est fastidieux. Et actuellement, c’est en python que la génération d’assembleur se fait. Pourquoi ne pas utiliser le Go ? https://speakerdeck.com/mmcloughlin/better-x86-assembly-generation-with-go https://github.com/mmcloughlin/avo

  • LT1: Joan López de la Franca Beltran

  • LT2: Olivier Wulveryck - ONNX-Go, neural networks made easy

  • LT3: Natalie Pistunovich - TensorFlow and Go

    Aborder l’aspect machine learning en Go au lieu du Python.

  • LT4: Roberto Clapis - Channels

    La gestion de la concurrence et des mutex en Go : https://docs.google.com/presentation/d/1tyLYa5ucxVx-_h-GRaHYKzhQBaCTBP4B-Lai3wkmj6A/edit#slide=id.p

    Talk avancé, mais abordé de manière efficace en 5 minutes.

  • LT5: Valentin Deleplace - Semaphores

    Comment expliquer les sémaphores en Go ? Simple : des gophers, une piscine et comment optimiser/maîtriser l’occupation de la piscine. Simple, efficace et très abordable.

Après-midi :

  • Dave Cheney - Constants

    Monsieur Dave Cheney, MC de ce DotGoEu a fait un talk intéressant (mais avancé) sur les erreurs sentinelles,en Go et l’utilisation de vraies constantes : https://dave.cheney.net/2016/04/07/constant-errors

  • Jean de Klerk - Multi-Module Repositories

    Comment gérer les sous modules au sein d’un projet Go. Ici, on parle de dépendences, de versionning et de problématique de package manager. Intéressant, bien que le scénario exposé ne soit pas à la portée du premier venu. Il le dit d’ailleurs dans ce talk : à n’utiliser que si vous ne pouvez pas faire autrement, sinon préférez deux repositories, deux projets.

  • Johan Brandhorst - Get going with WebAssembly

    Ahhhh, là, je retrouve un marronnier des confs JS : WebAssembly. Pourquoi ne pas utiliser du Go dans votre navigateur. Alors, oui, pourquoi pas. Mais les perfs (notamment la taille des bundles générés) ne sont pas là. https://www.youtube.com/watch?v=jKKFf77Qwno https://talks.godoc.org/github.com/johanbrandhorst/presentations/wasm/wasm.slide#1

  • Bryan Boreham - Tune Your Garbage-Collector!

    Ce talk a abordé la notion de Garbage Collector (et de son tuning) en Go. Si vous avez déjà eu à faire à un GC, le talk est une autoroute. Intéressant, mais pas forcément novateur. https://www.youtube.com/watch?v=r_hT7Z2YE-8

  • Ellen Körbes - 3D modeling with Go

    Un talk qui parle d’impression 3D, de génération programmative. Bon, la techno est super intéressante mais l’application faite ici est pour le moins surprenante : la modélisation et génération de dildos/“dilator”. La présentation la plus surprenante de cette journée (dans le bon sens !)

  • James Bowes - An introduction to reflect and unsafe

    Démonstration de reflect et unsafe en Go. J’avoue ne pas avoir tout compris :)

  • Jessica Frazelle - Introduction to RISC-V

    Ici, ça parle architecture CPU, instructions, registres, etc. Moi qui pensais que le RISC était mort et enterré, j’ai été surpris d’apprendre qu’un portage Go pour tourner sur RISC-V avait déjà été entrepris. Par contre, bien qu’intéressant (car pas forcément lié au Go), ce talk était particulièrement difficile à suivre, la speaker ayant un débit de parole ahurissant :) https://blog.jessfraz.com/post/digging-into-risc-v-and-how-i-learn-new-things/

  • Marcel van Lohuizen - Go 2 Error Values Today

    La gestion d’erreur en Go, et les propositions pour les prochaines versions de Go. Je n’ai pas eu assez à faire avec les erreurs en Go pour apprécier la teneur du Talk

Quelques photos en vrac : dotGo EU 2019 dotGo EU 2019 dotGo EU 2019 dotGo EU 2019

Et parce que je suis une “victime”, j’ai ramené un nouveau compagnon à la maison ;)

dotGo EU 2019

Publié le :
27/03/2019
Dans la catégorie :
Auteur :
Mathieu LESNIAK
Mathieu LESNIAK
Commentaires :
Arnaud ASSAD
Arnaud ASSAD
Merci pour cet excellent retour sur la conf.

J'aurais juste une question : Comment avez vous trouver la communauté ?
(c'était bien votre première conf Go ?)
03/04/2019 20:25:11
Mathieu Lesniak
Mathieu Lesniak
Rien à redire sur la communauté, j'ai pu échanger un tout petit peu au début, bon feeling.
Et oui, c'était ma première conf Go
07/04/2019 13:31:46