Quelle est ta techno coup de coeur ? - RÉPONDEUR #1
"Vous êtes bien sur le répondeur de Human Coders !"
J’ai pensé à ces discussions passionnées que j’ai pu avoir avec d’autres devs autour de ELM, Rust ou encore Elixir. Dans ce premier épisode, on va parler de vos technos coup de cœur.
•• TIMECODES ••
00:00:00 Introduction
00:01:19 Eric Burel et Private GPT
00:08:07 Jean-Philippe Baconnais et Quarkus
00:11:56 Julien Palard et Mypy
00:15:35 David Leuliette et Oh My ZSH
00:18:03 Tamara Guilbert et Langage C
00:19:37 Julien Cretel et Go
00:27:07 Karine Bauch et Python
00:31:05 Pierre Chapuis et Lua
•• NOS FORMATIONS ••
https://www.humancoders.com/formations
•• GUESTS ••
Cretel Julien, formateur Go et Hacking et Sécurité des applications pour Human Coders
https://www.humancoders.com/formateurs/julien-cretel
https://go.dev
Baconnais Jean-Philippe, consultant Full-Stack
https://twitter.com/JPhi_Baconnais
https://www.linkedin.com/in/jean-philippe-baconnais-931544116/
Eric Burel, formateur Next.JS pour Human Coders
https://www.humancoders.com/formateurs/eric-burel
https://twitter.com/ericbureltech
https://www.linkedin.com/in/ericburel/
https://docs.privategpt.dev/overview/welcome/introduction
Bauch Karine, développeuse Back-end Pyhton
https://www.linkedin.com/in/karine-bauch-dev-python/
Certaines infos sont tirées du magazine "Programmez" numéro spécial Python sorti en 2023.source CERN & FastAPI : https://epc-ccs.web.cern.ch/content/tools
Pierre Chapuis, développeur depuis 15 ans
https://twitter.com/pchapuis
https://www.linkedin.com/in/pchapuis/Lua
https://lua.orgLuaJIT
https://luajit.orgTeal
https://github.com/teal-language/tlMinix 3
https://www.minix3.orgPallene
https://github.com/pallene-lang/palleneMon Human Talks sur Lua en 2013
http://files.catwell.info/presentations/2013-02-human-talks-lua/fr.html
David Leuliette, formateur React Native pour Human Coders
https://www.humancoders.com/formateurs/david-leuliette
https://twitter.com/flexbox_
https://www.linkedin.com/in/david-leuliette/
https://davidl.fr/blog/git-cheatsheet
Julien Palard, formateur Python et Django pour Human Coders
https://www.humancoders.com/formateurs/julien-palardMastodon https://mamot.fr/@mdk
Sommaire de l'épisode
Transcription de l'épisode
Introduction
Matthieu Segret : Bonjour à toutes et à tous, je suis Matthieu et vous êtes bien sur le répondeur de Human Coders. Je suis content d'être avec vous pour cette première édition de ce podcast. On va y parler techno, pratiques de développement ou encore de sujets généraux, mais toujours en lien avec l'informatique.
Le concept de ce podcast est assez simple : dans chaque épisode, je vous pose une question et vous pourrez me répondre par vocal. Pour ce premier épisode, j'ai pensé à ces discussions passionnées que je pouvais avoir avec d'autres développeurs après certains meetups à Paris. On parlait, par exemple, de technos qu'on adore, qu'elles soient utilisées massivement en entreprise ou plus confidentielles, robustes ou expérimentales. On adorait parler de ces technos qui nous ont le plus marqués. Je me souviens d'échanges passionnés autour de Elm, Rust ou encore Elixir. C'est à ce moment-là que j'ai pu découvrir des technos fascinantes.
C'est pour ça que j'ai pensé que ça pourrait être un sujet intéressant pour ce premier podcast. Je vous propose donc de nous partager votre techno coup de cœur et pourquoi vous l'aimez particulièrement. Est-ce que vous avez une anecdote ou une expérience sympa à nous raconter à son sujet ? Vous êtes bien sur le répondeur de Human Coders, laissez-nous un message après le bip.
Eric Burel : Private GPT et la gestion de la "bistouille"
Eric Burel : Salut Matt, c'est Eric Burel, ingénieur freelance chez LBKE et formateur Next.js pour Human Coders. Je voulais répondre à ta question sur la techno coup de cœur. C’est une question qui m'a un peu perturbé parce qu'en fait, j'ai plutôt tendance à avoir des technos "coup de gueule", je suis peut-être un peu pessimiste. Mais je me suis creusé la tête et j'ai quand même trouvé un vrai coup de cœur parmi les technologies que j'ai utilisées récemment : c'est Private GPT.
C’est une techno pour faire tourner des grands modèles de langage, les fameux LLM. Le "Private", c'est parce que c'est fait pour que tes données restent confidentielles. Mais paradoxalement, ce n'est pas vraiment l'aspect LLM ou intelligence artificielle capable de générer du texte qui m'a intéressé. C'est plutôt tout ce qu'il y a autour.
Pour bien saisir cela, il faut parler d'un concept qui s'appelle la "bistouille", le kipple en anglais, décrit par Philip K. Dick dans Blade Runner. La bistouille, ce sont tous ces détails administratifs, cette paperasse, tous ces petits trucs à gérer qui nous arrivent dessus de façon un peu aléatoire et qui font partie intégrante de notre vie. Dick dit que si on ne lutte pas en permanence, on finit par être écrasé par ces trucs administratifs.
Ce qui m'intéresse dans Private GPT, c'est sa capacité à gérer la bistouille. Quand on est développeur web, une grande partie de notre travail consiste à gérer des aspects techniques invisibles pour l'utilisateur : ranger des fichiers, sécuriser des requêtes, vérifier que les choses fonctionnent. Aujourd'hui, on a des algorithmes surpuissants, mais il faut les rendre utiles dans notre vraie vie faite de fichiers Excel, de PowerPoint, de formats incompatibles ou de vieilles versions de Word des années 90.
L'émergence des LLM a poussé tout le monde à vouloir les alimenter avec ces données déstructurées. Private GPT est capable d'ingérer nativement des formats surprenants comme le PDF, qui est l'archétype du format difficilement lisible. Il extrait le texte pour l'ajouter à sa base de connaissances, et le LLM peut ensuite utiliser ces documents pour te donner des réponses. Ça permet de se faire un chatbot personnel sur ses propres PDF, ses PowerPoint, ses images, ses MP3, ses CSV ou même ses fichiers JSON.
En entreprise, c'est génial. On peut faire avaler à cet outil un gros Dropbox interne, les données restent privées parce que ça tourne sur ton ordinateur, et on obtient un chatbot intelligent capable de répondre à des questions sur cette base de connaissances.
Même si ce n'est pas encore parfait — l'entraînement et l'inférence coûtent cher en ressources et c'est parfois un peu lent — je salue vraiment la capacité de Private GPT à faire face à la bistouille.
Jean-Philippe Baconnais : Quarkus, le framework Java supersonique
Jean-Philippe Baconnais : Salut Mathieu, ici Jean-Philippe Baconnais, consultant Full-Stack. Ma techno coup de cœur, c'est clairement Quarkus. C'est un framework open source Java avec un slogan assez sympa : "Supersonic Subatomic Java".
Ce framework a été créé pour améliorer les performances des API Java, notamment sur la consommation mémoire et le temps de démarrage. Avec Quarkus, ça va super vite, c'est impressionnant. En plus, l'expérience développeur est au top. On a du rechargement à chaud (hot reload) pour les modifications, ce qu'on trouvait facilement dans l'écosystème front mais moins côté back à l'époque.
J'ai découvert Quarkus au Devoxx Paris lors d'une présentation d'Emmanuel Bernard et Clément Escoffier. J'avais un peu mis de côté Java à cause de sa lourdeur, mais cette présentation m'a vraiment réconforté et motivé à m'y remettre. Depuis, j'ai développé plusieurs API pour des projets persos ou open source avec ce framework.
Une autre fonctionnalité très intéressante, ce sont les "DevServices". Cela facilite énormément le développement : par exemple, si tu utilises une base de données MongoDB, Quarkus va te démarrer automatiquement une instance Docker MongoDB. C'est super pratique pour aller vite et éviter de perdre du temps en configuration.
La communauté est aussi très forte. Le framework fonctionne avec des extensions, et le nombre d'extensions ne fait qu'augmenter grâce aux contributeurs. J'ai moi-même commencé à contribuer dessus avec des collègues de Zenika, notamment sur l'aspect tooling avec GitLab CI et Gitpod. Les échanges avec la core team ont toujours été excellents. C'est vraiment un projet que je recommande d'aller voir sur quarkus.io.
Julien Palard : Les annotations de type et Mypy en Python
Julien Palard : Yo Matt, c'est Julien Palard, formateur Python et Django chez Human Coders. Je suis en train de réaliser un truc dont il faut qu'on parle.
Je viens du langage C. Dans ce langage, quand on associe un type à une variable, c'est avant tout pour le dire au compilateur. En Python, on pourrait croire que c'est pareil pour Mypy. Mais je réalise doucement qu'en fait, je n'écris pas mes types pour Mypy. J'ai plein de petits scripts où j'ai typé mes variables sans jamais passer Mypy ou Pylynt dessus.
En réalité, j'écris mes annotations de type pour l'humain qui va relire le code (souvent mon "futur moi"). C'est de la documentation. C'est une info supplémentaire, comme un commentaire. D'ailleurs, à l'origine en Python, les annotations de type étaient des commentaires.
Je me dis de plus en plus que Mypy n'est pas là pour vérifier si les développeurs font un bon usage des choses typées, mais pour vérifier si les annotations de type que j'ai rédigées sont justes. C'est un outil pour prouver que mon commentaire est vrai.
On écrit du code d'abord pour les humains et après pour les machines. Une machine met quelques millisecondes à lire du code, alors qu'un humain y passe beaucoup plus de temps. C'est comme le concept de doctest : on met des exemples dans sa docstring et on passe doctest pour vérifier qu'ils sont vrais. C'est moche de lire un commentaire faux parce qu'on a oublié de le mettre à jour après avoir modifié le code. Avec Mypy, on s'assure que notre documentation technique reste exacte.
David Leuliette : Productivité terminal avec Oh My Zsh
David Leuliette : Yo Matt, c'est David Leuliette. Je suis développeur React Native et formateur pour Human Coders. Tu me connais, je suis un mordu de productivité et j'adore les outils qui font gagner du temps. Un truc qui a boosté ma façon de développer, c'est Oh My Zsh.
C'est un outil open source communautaire qui permet d'améliorer l'expérience dans le terminal. En tant que développeur, c'est important d'avoir une machine qui procure de la joie. J'ai passé au moins deux jours à chercher le thème parfait, et maintenant j'ai de superbes couleurs, je suis trop content d'ouvrir mon terminal.
Au niveau des plugins, il y en a plein qui font gagner un temps fou. Il y a énormément d'alias pour Git. Si j'écris une commande Git un peu bancale, le plugin git-fast permet de corriger automatiquement les fautes. J'utilise aussi :
- zsh-syntax-highlighting pour savoir si une commande est exécutable (elle s'affiche en vert, sinon en rouge).
- history-substring-search pour chercher dans toutes les commandes tapées depuis le début.
- zsh-autosuggestions pour avoir des suggestions automatiques basées sur l'historique.
- z pour se déplacer ultra rapidement dans les dossiers : tu tapes juste z suivi du nom du dossier et ça "jump" directement dedans.
Grâce à ça, je développe plus vite que toi ! Et toi, qu'est-ce que tu utilises pour ton terminal ?
Tamara Guilbert : La rigueur ludique du langage C
Tamara Guilbert : Hello Matt, c'est Tamara Guilbert, ancienne développeuse et aujourd'hui freelance en gestion de projet tech. Ma techno coup de cœur, c'est le langage C, surtout utilisé en programmation embarquée.
J'ai beaucoup travaillé dans l'embarqué et la robotique. C'est un langage que je trouve à la fois ludique et sérieux. Ludique parce qu'on fait des actions concrètes, on expérimente avec de l'électronique et de la mécanique. Mais c'est aussi sérieux parce qu'il faut faire attention à la gestion mémoire. Il faut optimiser le code au maximum, parfois même en faisant de l'assembleur. Il faut anticiper le vieillissement de la mémoire qui peut générer des erreurs à long terme.
Quand j'ai fait de la programmation web, j'ai trouvé qu'il y avait presque trop de liberté, c'est parfois un peu le "bordel" : les règles ne sont pas toujours claires ou respectées. Comme cela n'a pas toujours d'incidence directe immédiate, on fait moins attention, mais on accumule de la dette technique.
En embarqué, si tu exploses la mémoire, tu t'en rends compte tout de suite. Tu ne peux pas faire n'importe quoi. Ça oblige vraiment à réfléchir, à poser le problème sur papier pour trouver le meilleur algorithme. Pour moi, c'est l'essence même du développement.
Julien Cretel : La bouffée d'air frais du langage Go
Julien Cretel : Salut Matthieu, c'est Julien Cretel. Je suis développeur, chercheur en sécurité web et formateur Go et Sécurité Web pour Human Coders. Ma techno coup de cœur, c'est Go (ou Golang), né chez Google il y a une douzaine d'années.
J'ai découvert le langage en 2017 alors que je vivais en Irlande. Au début, j'avais des réserves, notamment sur l'absence de constructeurs par rapport à des langages comme Java ou Scala. Mais j'ai fini par m'y mettre et j'ai trouvé que c'était une vraie bouffée d'air frais.
Pourquoi c'est mon coup de cœur ?
D'abord pour l'expérience de développement. Le compilateur est super rapide. Il y a une BD de XKCD où des développeurs se battent avec des épées en bois en disant "mon programme compile" ; en Go, ça n'arrive jamais, la compilation prend quelques secondes maximum.
Ensuite, l'outil de formatage gofmt est intégré. Tu sauvegardes ton fichier et ton code est automatiquement formaté de manière standard. On ne perd plus de temps en revue de code sur des futilités de style.
La bibliothèque standard est aussi excellente : on peut tout faire sans gros frameworks web ou frameworks d'injection de dépendances. Le langage est très stable ; les programmes écrits il y a dix ans compilent toujours avec les versions récentes.
L'autre point fort, c'est la gestion d'erreurs. Go n'a pas de système d'exceptions, les erreurs sont des valeurs comme les autres. Ça oblige à traiter les cas d'échec au fur et à mesure. Le code est très clair et on ne met pas les problèmes sous le tapis.
Enfin, il y a la concurrence. Go a des primitives de concurrence intégrées qui permettent de rendre les programmes performants très facilement en parallélisant les tâches. On oppose souvent Go à Rust. Rust est plus expressif et performant, mais Go est bien plus facile à apprendre. À moins d'avoir des besoins extrêmes comme Cloudflare, Go est souvent un excellent choix.
Karine Bauch : La polyvalence élégante de Python
Karine Bauch : Hello Matt, c'est Karine Bauch, développeuse Backend freelance. Je voulais te raconter ma rencontre avec Python.
J'ai commencé comme déveuloppeuse JavaScript. Pour moi, Python était plutôt réservé à ceux qui voulaient "bidouiller" pour faire de l'automatisation ou de la domotique. Et puis un jour, j'ai lu un numéro spécial Python du magazine Programmez. Je me suis rendu compte que j'avais tort : c'est un langage hyper puissant et présent partout.
On fait de la Data Science, du Machine Learning, de l'Intelligence Artificielle. Il a remplacé le Basic dans les calculatrices des lycéens. Il est utilisé pour les effets spéciaux au cinéma (chez George Lucas avec ILM), dans Blender, ou pour des sites comme Instagram et Pinterest.
J'ai décidé de m'y mettre avec l'aide d'un expert. J'ai commencé par la doc officielle et des exercices sur Coding Game. J'ai rapidement été séduite par la syntaxe. C'est naturel, élégant et agréable à lire. Même sans connaître le langage, on comprend vite ce que fait le code.
La communauté est aussi géniale : très ouverte, elle regroupe des profils variés, des data scientists aux ingénieurs, et même des gens qui ne sont pas développeurs de métier. J'ai même appris récemment que le CERN utilise Python et FastAPI pour le système de contrôle de l'accélérateur de particules. C'est stimulant de découvrir chaque jour de nouvelles applications.
Pierre Chapuis : Lua, la simplicité et la performance portables
Pierre Chapuis : Salut Matt, c'est Pierre Chapuis, développeur depuis une quinzaine d'années. Ma techno coup de cœur, c'est Lua.
Ma rencontre avec Lua remonte à 2006, quand j'étais étudiant. Je voulais vraiment comprendre toute la stack technologique, de l'assembleur au système d'exploitation. J'ai réalisé que comprendre Python ou Linux était trop complexe car ce sont des millions de lignes de code. J'ai donc cherché une stack plus simple : j'ai choisi Minix 3 pour l'OS et Lua pour le langage.
Lua est un langage dynamique dont la base de code fait environ 15 000 à 20 000 lignes de C. Si on connaît le C, on peut lire et comprendre l'intégralité de l'interpréteur. C'est fascinant. Lua, c'est un peu comme un Lisp déguisé en langage impératif.
Il a des fonctionnalités géniales comme les tail calls (pour faire de la récursivité sans explosion de pile) et les coroutines asymétriques. C'est écrit en "Clean C" (un sous-ensemble commun au C ANSI et au C++), ce qui le rend extrêmement portable sur n'importe quel matériel possédant un compilateur C.
Comme l'API C est très bien faite et que l'empreinte mémoire est faible, c'est le langage parfait pour scripter des applications natives. C'est pour ça qu'on le retrouve partout dans le jeu vidéo, mais aussi dans VLC, Redis, Nmap ou HAProxy. L'idée de Lua n'est pas d'être un langage qui fait tout, mais d'être un bon langage dynamique qui délègue le bas niveau au C, Rust ou Go.
Il existe deux implémentations : l'implémentation de référence (PUC-Lua) et LuaJIT, qui est extrêmement performante et a influencé V8 (JavaScript). Personnellement, je suis très impliqué dans la communauté, j'ai co-écrit un livre sur le sujet et je contribue à plusieurs bibliothèques. C'est une communauté très diverse (Brésil, Chine, Russie, Europe). Aujourd'hui, je m'intéresse aussi à Teal, qui apporte le typage statique à Lua, un peu comme TypeScript pour JavaScript. J'espère que ça vous donnera envie de découvrir Lua !
Informations sur l'épisode
- Date de publication
- Saison
- 2
- Épisode
- 1
- Durée
- 36:22
- Formateur·rice·s
- Série
- Human Coders Podcast