Julien Dubois

353

IA et Java

Julien Dubois

Le nouvel âge d'or de Java

Aujourd'hui, on peut obtenir un résultat extraordinaire à partir du moment où l'on a bien compris quelque chose et que l'on sait l'exprimer clairement. Et ce sont deux choses assez différentes.
Suivre IFTTD =>

Le D.E.V. de la semaine est Julien Dubois, Java Developer Relations Lead chez Microsoft/GitHub. Julien explore la renaissance de Java dans l’ère de l’IA, où Spring AI, LangChain4J et l’écosystème open source bouleversent l’intégration des LLM. Il partage comment GitHub Copilot et les nouveaux frameworks accélèrent les projets tout en posant la question du vrai rôle du dev : coder, ou structurer le besoin face à l’automatisation ? On y découvre aussi l’importance insoupçonnée de la communauté, du hobby… et d’un bon resto entre contributeurs. Un regard lucide et passionné sur le métier, entre legacy et réinvention permanente.

Chapitrage

00:00:55 : Introduction à l'IA en Java

00:03:20 : Génération de code avec JHipster

00:04:55 : Limitations de la génération de code

00:05:31 : Évolution avec GitHub Copilot

00:08:27 : Évolution du rôle des développeurs

00:11:02 : Java et son image actuelle

00:14:00 : Renaissance de Java avec l'IA

00:15:41 : Frameworks Java et intégration IA

00:17:00 : Communauté Java et open source

00:18:46 : Comparaison entre frameworks

00:20:54 : Culture communautaire et innovation

00:22:12 : Problématiques de contributions open source

00:26:19 : Financement des projets open source

00:29:56 : Importance de l'observabilité

00:32:09 : Intégration des LLM dans les projets

00:42:55 : Impact de l'IA sur l'industrie

00:47:35 : Avenir du développement avec l'IA

00:52:15 : Recommandations et ressources

00:54:03 : Conclusion et réflexions finales

Cet épisode n'a pas encore été compilé !
Un épisode est généralement refactoré 3 ans après sa diffusion !

Un peu de patience ...
Pas d'extraits disponible :(
Bruno:
L'IA en Java, c'est un peu comme voir un chef étoilé revisiter la blanquette de veau. On ne s'y attend pas forcément, mais le résultat intrigue. Longtemps, Java a été perçu comme le costard cravate du dev, là où Python était un peu plus le hoodie en figure un peu décontractée pour data scientist en quête de modèles rapides. Aujourd'hui, entre LongChain 4G, Spring AI et l'écosystème d'agents, Java réinvente la donne et s'invite dans la cour des frameworks qui comptent. Mais alors, jouer avec l'IA en Java, est-ce que c'est devenu vraiment simple ? Est-ce qu'on peut générer du code avec Copilot et devenir un vrai mini James Gosling ? Et surtout, est-ce que commenter son code, c'est has been ou c'est juste devenu une affaire de machine ? Pour répondre à ces questions de machine virtuelle, je ne reçois pas Rick Sanchez, mais il s'y connaît en intelligence réelle. Julien, bonjour.

Julien:
Bonjour.

Bruno:
Alors Julien, est-ce que tu peux te présenter pour les quelques personnes qui ne te connaîtraient peut-être pas ?

Julien:
Alors, je suis Julien Dubois, je fais du Java, tu l'as si bien introduit depuis trop longtemps pour peut-être le dire, depuis la fin des années 1999, quelque chose comme ça, 98-99, le millénaire précédent. J'ai vécu pas mal de choses en Java, j'ai fait des OJB, j'ai fait toutes les modes de l'époque. Aujourd'hui je suis chez Microsoft slash GitHub GitHub appartient à Microsoft donc j'ai les deux casquettes, et je fais du Java chez Microsoft depuis 7 ans, où j'ai une équipe en fait de DevRel Java donc notre but est de répondre la bonne parole de Java chez Microsoft et la bonne parole de Microsoft dans l'écosystème Java au niveau mondial on est une équipe, on est un peu partout j'ai quelqu'un en Allemagne, en Afrique du Sud au Japon, aux Etats-Unis, donc on essaie de tout couvrir et puis on voyage un petit peu.

Bruno:
Surtout les fuses d'horaire ?

Julien:
Oui, c'est une vie un peu particulière, mais ça fait partie du boulot, on essaie d'être global, donc on n'a pas le choix. Ah oui, j'ai oublié, si les gens me connaissent généralement, c'est parce que j'ai fait un projet qui s'appelle Gipster, qui est un générateur de code Java. C'est codé en JavaScript, ça génère essentiellement du Java, c'est un peu plus compliqué que ça, et on a, on va dire, plus de 100 000 visites euroniques sur le site web encore aujourd'hui, donc on a énormément de gens qui l'utilisent dans le monde entier, essentiellement pour des projets Java Spring Boot, et c'est une grosse communauté, derrière une association à but non lucratif en France, donc c'est pour ça qu'on est assez actif en France, donc je continue de le faire. Il y a un lien avec l'IA, parce que ce qui est amusant, c'est que moi finalement je faisais de la génération de code, alors on va dire bête mais je l'en faisais il y a plus de 10 ans et maintenant avec l'IA on a de la génération de cônes intelligentes, mais moi c'est un domaine dans lequel je suis depuis très longtemps et un peu par hasard finalement donc c'est assez amusant de relier mon hobby de l'époque à mon boulot d'aujourd'hui.

Bruno:
Alors moi je suis pas du tout de l'univers Java le gypster c'était quoi ? C'était de la génération de boilerplate en gros ?

Julien:
Oui alors à l'époque il y avait plein de générateurs de boilerplate en angular etc C'était un truc qui s'appelait Yeoman. Et alors, Jipster est lui-même basé sur Yeoman, d'ailleurs. Encore, je pense. On doit être les plus gros contributeurs de Yeoman maintenant, parce que c'est nous les plus gros utilisateurs. Et donc, oui, c'est du boilerplate. Donc, c'est un système de questions-réponses. Et alors, on va dire, on l'a avancé. On a notre propre langage pour faire des entités avec Hibernet, etc. Donc, on est allé assez loin. Mais dans la pratique, c'est du boilerplate. Donc, c'est des questions-réponses. Et voilà, je voudrais un champ string qui s'appelle Toto. Et on le génère pour toi. Ça fonctionne très bien, par contre, la génération initiale est super, là maintenant, c'est super, après c'est ton code, alors nous, on s'est toujours, parce qu'à l'époque, il n'y avait que ça, nous on s'était toujours dit, voilà, on t'aide à démarrer, on te kickstart, après on fait ce qu'on peut pour essayer que ce soit pas trop mal pour évoluer, on fait un projet déjà évolutif, on fait du beau code, on a quelques outils pour t'aider, mais c'est vrai qu'à un moment, il y avait une limite, après c'était ton code, on t'a fait gagner du temps au début du projet, mais après, c'était comme si tu l'avais codé toi-même, c'est ton code et t'étais parti. Je ne devrais pas en parler au passé, il y a toujours plein de gens qui en font. Après, moi j'ai un peu levé le pied. Je fais toujours... Alors, il faut bien que quelqu'un soit président de l'association, etc. Donc je continue de faire la partie administrative, etc. Mais c'est vrai que j'en fais moins en ce moment.

Bruno:
Mais du coup, au final, ce que tu décris, on ressent un peu les mêmes limitations avec les clots de code et le curseur actuel. C'est qu'au bout d'un moment, ça commence à tout sauter. C'est-à-dire qu'au début, ça se passe très bien. C'est propre, c'est carré. et puis à mesure que tu que t'empiles les reviews les commits de cloud, petit à petit ça dérive.

Julien:
On va pas être d'accord non non non au contraire je trouve tous ces outils, remarque alors j'ai pas trop fait de cloud mais je pense que moi je fais du GitHub copilot parce que c'est mon boulot je pense que ça ressemble à mort donc je pense pas qu'il y ait une différence, fondamentale là dessus mais moi ce que j'adore sur ces outils c'est qu'ils sont capables de comprendre ton code, de comprendre aussi ce que t'as envie de faire, ton intention on va dire tu écris ton point MD où tu décris ce que tu veux, et il peut aller beaucoup plus loin que ce qu'on faisait ce qu'on fait encore avec Gipstore aujourd'hui, alors il arrive à nous générer, moi j'ai fait un skill exprès, alors assez balèze mais il génère quelque chose un peu comme Gipstore donc il te fait de la génération initiale par contre où il est fort c'est de la suite il arrive à comprendre ce que tu veux et à l'améliorer, ce qu'avec Gipstore on n'arrivait pas à faire parce qu'à un moment c'était trop compliqué, donc pour moi ils sont très très forts pour, comprendre ton projet voir ce que tu veux faire aussi dans le projet, enfin il va voir la manière dont tu as codé, donc il va continuer de la même manière, et puis aussi tu rajoutes des instructions pour dire ce que tu veux, mais il est très fort pour faire du custom, et quelque chose de spécifique, ce qu'on n'arrivait pas à faire avec Gipster. Franchement là-dessus, moi c'est la partie qui m'a vraiment... Je suis comme beaucoup de gens, il y a 2-3 ans, quand on a commencé à voir ça arriver, je n'y ai pas cru. Et c'est vrai qu'aujourd'hui, les dernières versions, les dernières LLM, encore, je dis ça, il faut qu'on dise la date, parce que les gens vont écouter dans 6 mois, on va dire, enfin, voyons.

Bruno:
On enregistre ça, effectivement, mi-mars 2026.

Julien:
Oui, mais c'est vrai que, d'un mois à l'autre, quasiment, ça change complètement. Mais là, on va dire au mois actuel, c'est très surprenant de voir ce que ça arrive à faire. Je ne m'attendais pas à ça il y a quelques mois.

Bruno:
Moi, c'est en train de générer des questions folles. dans ma tête, de voir effectivement la qualité et la rapidité avec laquelle on peut générer des choses impressionnantes. C'est en train de changer beaucoup de choses.

Julien:
Il y a plein de choses que je fais maintenant. Moi, j'ai toujours beaucoup connu avec mon téléphone. Je suis un mec un peu spécial. En fait, c'est dans les transports. Parce qu'en fait, Gipster, c'était aussi du hobby. Je le faisais à côté, donc j'étais dans les transports. Et puis, des poules requests, tu peux commenter, tu peux vaguement coder des petits trucs. Donc, je faisais des... Je galère avec mon téléphone.

Bruno:
Oui, forcément.

Julien:
Mais bon, je faisais quand même pas mal de choses avec le téléphone. Là, avec... J'ai l'appli GitHub, je peux lancer des agents dedans et je peux lui parler parce que mon téléphone c'est Siri qui comprend, qui transforme ma parole en texte, mais je peux lui parler je dis vas-y, fais-moi je voudrais que tu changes, mon application les bleus, fais-le à moi en rose je lui dis, et effectivement il va m'écrire le ticket GitHub copilote dans GitHub va prendre le relais, il va me faire le boulot et à la fin il me fait une copie d'écran t'es d'accord, pas d'accord, clique, je suis d'accord, c'est parti, il va infiniment plus loin que ce que je faisais, Et là, aujourd'hui, je peux... J'ai d'autres manières de coder. Ça n'existait pas. Avant, je ne pouvais pas faire ça. Je ne pouvais pas être dans mon lit avec le téléphone et dire, vas-y, fais-moi ça. Et fais-moi une copie d'écran pour me montrer. C'est un truc complètement fou.

Bruno:
Ce qui pose la question, est-ce qu'on peut encore dire que tu codes ? Ou est-ce qu'on devient un créateur d'applications ? Et qu'en fait, notre capacité, elle est sur le... comprendre une problématique, comprendre un besoin et essayer de structurer une réponse. Mais après, la partie codage, au final c'est de moins en moins un autre sujet.

Julien:
Ah oui c'est du travail de littéraire de bien comprendre alors ça peut être un besoin d'un métier ou alors moi évidemment je fais pas mal de trucs techniques mais c'est comprendre comment ça fonctionne là je bosse sur des LSP en Java donc le truc ultra technique, c'est à toi de comprendre ce que tu veux LSP.

Bruno:
Tu peux nous.

Julien:
Redire ce que c'est ? c'est le language server protocol alors c'est marrant c'est un protocole Microsoft à la base c'est complètement par hasard ça se tient dans VS Code, dans Eclipse, et donc quand tu as GitHub Copilot GitHub Copilot, quand il lit ton code Java mais autre s'il n'a pas de LSP, qu'est-ce qu'il va faire ? En fait, il fait des greppes. Il cherche ton code avec des outils uniques de base ça marche très très bien. Par contre tu peux aussi le configurer pour qu'il ait un support d'un LSP donc d'un langouage serveur protocole, typiquement en Java pour qu'il comprenne réellement c'est une sorte de mini-éclipse qui tourne sans front-in et là, il est capable de lui demander telle méthode qu'est-ce qu'elle fait ? Et ça, ça a des avantages en termes de perfs parce qu'en fait, il sait directement ce que ça fait. Je dirais que les deux approches ont leurs intérêts mais c'est bien d'avoir la deuxième également. Donc moi, j'essaie de bosser là-dessus en ce moment. C'est vrai que... T'as besoin d'une bonne compréhension de ce que tu veux, parce que là, tu ne comprends pas ce que tu fais. Tu peux avoir un super LLM, ça ne sert à rien. Il faut savoir écrire ce que tu veux. Il faut deux choses, le comprendre et savoir bien l'exprimer. C'est deux choses différentes. Il y a aussi plein de gens, ils ont du mal à exprimer leur pensée. Ce n'est pas facile, forcément. Encore, on a une chance, parce que nous, on peut le faire en français. Toutes les langues ne sont pas équivalentes, on va dire, sur les LLM. Moi, j'ai tendance à les rester en anglais, parce que finalement, tout le monde voulait en anglais. mais en français c'est vrai que ça va quand même donc c'est aussi une chance pour pas mal de français qui parlent pas bien anglais, Ils ont aussi accès à ça, qu'ils ne pouvaient pas faire avant. Mais on peut maintenant avoir un résultat extraordinaire à partir du moment où, un, on a bien compris, et deux, on sait l'exprimer. Et c'est des choses pas simples et qui sont assez différentes, on va dire, en tout cas, l'exprimer, c'est différent de ce qu'on avait avant. Moi, j'avais tendance avant, je codais comme un taré. Je faisais des tests unitaires, ou je codais direct. Enfin, je faisais... Je réfléchissais pas.

Bruno:
On a tout essayé.

Julien:
Moi, j'étais pas le genre de mec à beaucoup réfléchir. Typiquement, on parlait de jipster. Au début c'était juste le soir je code le truc et puis on regarde après là ça te force à tu t'arrêtes tu réfléchis, t'exprimes ce que tu veux, t'as pas la même méthode de travail après c'est pas plus mal je pense que ce que je faisais c'était pas bien et que c'est beaucoup mieux maintenant, après j'ai pas eu le choix.

Bruno:
Bon on a déjà commencé à disgrisser pour parler finalement de la génération de code, l'idée c'était quand même de parler de Java et de comment faire de l'IA avec Java et pas au sens générer du Java, mais au sens utiliser l'IA comme, cœur de fonctionnalité ou de features. Sans forcément se refaire à un historique de Java, on l'a déjà fait plusieurs fois sur ce podcast, mais un truc que je dis souvent à tous les javaïstes que je reçois sur ce podcast, c'est que le Java fait partie de ces langages, qui a une certaine image, une certaine notoriété, c'est une certaine noblesse dans le métier. C'est parfois aussi associé à une certaine lourdeur, que de Java c'est un peu lourd, c'est un peu lent c'est un peu compliqué, tout ça tout ça c'est quoi toi qui en fais depuis la nuit depuis le siècle dernier c'est quoi ta perception de Java ?

Julien:
Alors Java, déjà c'est toujours énorme toutes les boîtes il y en a partout c'est un truc incroyable, Beaucoup de grosses boîtes, bien sûr, mais après, il y en a moins, mais ça, il y a quand même aussi des startups, des petites boîtes qui en font. Il y a aussi une renaissance grâce à Android. En fait, Android, c'est du Java. Moi aussi, dans ce que je fais sur l'IA avec Java.

Bruno:
Mais depuis qu'ils sont passés à Kotlin, c'est un peu moins...

Julien:
Oui, mais en fait, les librairies Java, alors typiquement, les librairies clientes pour accéder à OpenAI, à l'école en Kotlin. Et pourquoi ? Parce qu'une grosse partie de leurs clients, c'est des mecs qui, à la base, faisaient des applis Android. Donc, il y a aussi une renaissance là-dessus. Donc, il y a des choses un peu tranches sur Java. il n'y a pas que Java Entreprise mais bon à la base le vrai Java dont on parle c'est les mecs en costume cravate qui sont dans les banques mais c'est une population énorme il y a énormément de gens qui font ça. Et Java pour moi on a toujours été fort sur l'intégration, accéder à une base de données accéder à un Elasticsearch toutes ces choses là c'est vrai que c'est le coeur de Java on fait des applis REST qui font des appels en base de données depuis la nuit des temps, jusqu'à il y a on va dire un an ou deux pour accéder à un LLM pour faire de l'IA le problème c'est qu'il n'y avait pas les librairies justement donc on pouvait le faire avec des appels rest parce que finalement c'est que des appels rest donc ça marchait mais ce n'était pas naturel, il n'y avait pas de librairie officielle pour le faire contrairement à ce qu'on avait en javascript ou en Python donc c'est clair qu'il y a deux ans, Python et javascript ils avaient un avantage monstrueux donc il y a énormément de gens qui ont démarré sur les LLM avec Python et JavaScript. Go, ils n'ont pas forcément de langage, mais il y a aussi beaucoup de gens qui font du Go. Parce que c'était les startups de l'époque. Java a du coup arrivé un petit peu tard. Alors moi, je fais partie des gens à l'époque. Surtout avec Microsoft, on a fait nos propres clients Java, parce qu'il n'y en avait pas. Comme il n'y avait rien, il fallait bien le coder. Donc on a fait les nôtres. Et puis depuis, je dirais, un peu plus d'un an, il y a des clients officiels qui arrivent. Donc c'est ce qui, typiquement avec OpenAI, ils savaient que je bosse beaucoup. Donc ils ont un client fait par OpenAI sous-trait une boîte mais on va dire fait par OpenAI, ils ont un propre client officiel et ce n'est pas les seuls, donc maintenant on a des clients en Java officiels pour accéder à des LLM et là on arrive dans le monde Java classique c'est-à-dire que tu accèdes une base de données en Java tu fais du JDBC, tu as l'habitude là tu accèdes à ton LLM avec une sorte de JDBC ça ressemble énormément donc ça c'est ce qu'on sait faire depuis toujours donc ça on est très fort en Java là-dessus et puis après, c'est l'autre force de Java c'est les frameworks, etc des fois il y a des critiques de l'order mais Java c'est Spring c'est Hibernet etc et donc maintenant on a des frameworks qui arrivent donc les deux principaux c'est LongChain4j et Spring AI, moi j'ai eu la chance de bosser sur les deux. Et en fait là c'est des fromeurs qui se mettent au-dessus de ces clients qui t'aident pour, alors, j'allais dire, toutes les fonctions tu veux faire du RAG c'est déjà prévu, tu veux accéder à une base de données vectorielles, c'est déjà prévu tu veux faire, alors maintenant des agents des workflow d'agents, c'est déjà prévu, en fait on ne se rend pas compte au début au début tu accèdes à ton LLM tu te dis, c'est bon, ça me suffit puis après, plus ton projet se complexifie plus tu te dis, ah bah oui, je voudrais pouvoir changer de LLM et puis je voudrais la mémoire, etc et au bout d'un moment tu te rends compte que finalement le framework qui est utile. Et ça, donc à nouveau, on est très fort pour les faire en Java. Et en Java, il y a toujours eu ces concurrences, Spring contre, à l'époque, J-Boss, maintenant c'est Quarkus. Là, il y a pareil, c'est les mêmes équipes, donc tu as Spring AI et LongChain 4G qui se concurrencent. Et ça, c'est une chance, une force de Java, c'est qu'on n'a pas un framework qui pourrait se reposer sur les lauriers et que tout le monde utilise, et puis t'es pas content.

Bruno:
C'est pas grave. Et qui est la seule solution disponible.

Julien:
Nous, en Java, il y en a deux. ils se battent mais c'est pas plus mal c'est ça qui donne la richesse, la force du langage et puis les gens se regardent, tiens t'as fait ça, je vais faire pareil, il reste des communautés qui sont très sympas en Java moi j'ai la chance d'être entre les deux donc à la base je suis plutôt Spring c'est mon monde après Longchain4J est arrivé avant donc j'ai d'abord démarré sur Longchain4J, j'ai la chance de pouvoir bosser sur les deux ça reste des communautés très ouvertes, très sympas, je parlais des chances de Java c'est une autre force de Java, on a des communautés open source ultra dynamiques, ultra sympas et ces projets là, pareil tu veux apprendre comment ça fonctionne, tu veux participer c'est gratuit déjà mais en plus les gens sont super sympas tu peux participer, tu peux faire des tickets, des pull requests il n'y a pas de problème, c'est ouvert et c'est sympa et puis après on a les conférences, en France on a Devox et compagnie tu peux voir les gens donc ça fait partie des, C'est-à-dire tout le javoc notaire est aussi une partie qui est super sympa. C'est moins le costume cravate, pour le coup. C'est les gens en costume cravate, le soir, ils viennent boire des bières à des Vox, mais c'est une autre partie du métier qui est super sympa.

Bruno:
Oui, carrément. Mais donc, sur cette... J'entends effectivement qu'il y avait une approche, une vision... Attention, elle s'est bien proche du micro.

Julien:
Ah, pardon, oui.

Bruno:
Une approche effectivement très orientée à base de données qui a été maîtrisée. Effectivement, l'LLM qui apporte une approche un peu différente. Tu nous as parlé de LongChain 4G qui est du coup c'est une implémentation en gros de LongChain dans un contexte java, là où SpringGave va avoir une approche un peu différente.

Julien:
Au final ça va se ressembler beaucoup sur les choses de base on va dire LongChain 4G à la base c'est un porte de LongChain, après ça a complètement dérivé et ils ont gardé le nom mais bon voilà, et LongChain 4G a pas mal évolué sur les couches au dessus donc maintenant il y a toute une couche d'agents donc tu peux faire des workflows etc il y a quelqu'un qui s'appelle Mario Fusco qui est très très bien pour faire ça donc il y a une couche d'agents qui est extraordinaire, et simple d'utilisation Spring AI eux ils sont restés alors sur les couches bas niveau on va dire c'est grosso modo pareil, ils ont peut-être un petit peu moins d'intégration parce qu'ils sont plus jeunes mais en fait t'as pas besoin d'en avoir 50 en fait une fois que t'as tous les gros LLM enfin c'est pas la peine d'en avoir dès que t'en as 20 ça suffit déjà on va dire, et par contre les couches supérieures on va dire de vraiment les agents compliqués c'est un autre framework qui s'appelle Homebabel qui est fait par Rod Johnson qui se met par-dessus alors qui est peut-être plus avancé par contre c'est un autre projet donc c'est encore autre chose, mais c'est vrai qu'on a la chance d'avoir cette communauté, Très très dynamique.

Bruno:
Est-ce que du coup Mbubble, j'ai oublié le nom, parce qu'il y a Longchain, mais il y a aussi Long, il y en a un autre.

Julien:
A Langraff.

Bruno:
Langraff, ouais. Est-ce que du coup Mbubble, c'est la même mécanique que Langraff ou pas du tout ?

Julien:
C'est, oui, alors après, tu as des liens, oui, et puis aussi tout le monde se recopie.

Bruno:
Ouais.

Julien:
Mais, l'idée, c'est de pouvoir faire des workflow d'agents. Alors nous, tu sais, on a aussi le agent framework en .NET. On a essayé les mêmes trucs. Quand tu regardes, La première fois que je l'ai vu, je me dis, tiens, il y a séquentiel, etc. Tu as les différents types d'orchestrateurs. La première fois que tu le dis, tiens, le mec, il est quand même vachement malin d'avoir fait ça. Puis après, tu regardes, d'un côté, il a pareil. Et puis Microsoft, un jeu de framework, il a pareil. En fait, ils sont tous recopiés.

Bruno:
Du coup, ça pose la question, est-ce que tu penses qu'ils font tous la même chose ? Enfin, la même manière de le faire. Parce que c'est la meilleure manière de le faire. Ou est-ce que c'est qu'en fait, on est tous allés très vite pour essayer de faire quelque chose. Et c'était la manière la plus évidente et que potentiellement tu vois tu nous dis qu'au final Langchain 4G Langchain, Langraph, Ambebel SpringEye tout ça c'est assez proche tu vois ce que je veux dire ?

Julien:
Les concepts vont être proches après tu orchestres tes agents il n'y a pas 36 manières de faire de toute manière tu vois tu les veux des lançants séquentiels, ou en parallèle on va dire un truc un peu plus compliqué il n'y a pas 36 manières de faire donc, après celui qui est amusant c'est qu'il y a toujours alors il n'y a pas toujours le même nom dans l'enchain 4G ils appellent ça pure agenting framework c'est que tu as un LLM qui dirige les autres agents alors ça tu as un prompt qui n'est pas forcément le même partout, mais ça c'est assez amusant mais ça pareil oui c'est j'allais dire je pense que la théorie est la même partout ça va pas je pense pas qu'il y en ait un qui ait une idée révolutionnaire et puis en plus il aurait à nouveau tout est open source et d'autres ils vont pomper direct dessus donc, le vrai choix du langage du framework c'est déjà la communauté ce côté plus Spring ce côté plus Quarkus en Java les fonctionnalités je les mettrais même après parce que la communauté finalement elle est plus forte Au final, c'est plus la culture et les personnes qui sont dedans, qui ont une force, que les fonctionnalités, parce que dans six mois... Ça aura changé. Donc moi, je suis plutôt, oui, on va dire, la culture et la communauté en particulier. Les fonctionnalités, déjà, en plus, pour des besoins normaux, c'est déjà overkill. Enfin, moi, les clients qu'on a, pour beaucoup, ils sont en train encore de découvrir l'IA. Enfin, le gros des gens, ils font pas des choses incroyables. Donc, c'est des choses qui sont à, j'allais dire...

Bruno:
Majoritairement, c'est du chatbot, il n'y a pas de...

Julien:
C'est... J'allais dire, 99% des gens que je vois, ils font des choses finalement assez simples, ils ne sont pas du tout sur ces besoins-là. Ça va venir, ça peut être intéressant pour quelques gens, mais l'immense majorité, on va dire que c'est comme Spring et Quarkus, ils se battent pour l'immense majorité des gens, ça fait total folie de boulot, tu vas faire une API REST, un comme l'autre, ils vont te faire une API REST très très bien, qui va avoir les performances largement suffisantes pour les milliers utilisateurs que tu as, donc après il ne faut plus choisir, je pense, sur le oui, sur la communauté, ce que tu préfères, ton style de code enfin je sais pas, c'est des choses comme ça après c'est au niveau, c'est presque du goût.

Bruno:
Je t'avais interrompu juste avant tu commençais à nous expliquer les différences entre Lanchine 4G et Spring UI, au final c'est juste en fonction de si t'es plutôt Spring ou Quarkus ou pour toi il y a plus de...

Julien:
Ah ça c'est un truc qui est marrant, c'est que Spring UI il marche que sur Spring donc si tu fais du Spring, enfin si tu choisis Spring UI, t'as pas le choix, c'est Spring, après vous avez le Spring c'est comme la grosse partie du marché la grosse majorité du marché donc c'est pas forcément gênant, Longchain 4J donc on va dire c'est l'équipe Quarkus et ça marche aussi sur Spring parce que c'était fait avant donc si tu fais du Quarkus t'as pas le choix, tu fais du Longchain 4J Spring AI il marchera pas, donc Quarkus t'as pas le choix par contre c'est intéressant de te dire que Longchain 4J marche sur les deux, le support de Spring est peut-être moins bon parce que c'est pas poussé etc j'en ai fait une partie, j'ai fait starter, par contre il y a quelque chose de peut-être plus générique donc là c'est vrai qu'on a une c'est pas comme d'habitude on a les deux communautés qui se battent avec deux projets concurrents là ils ont une sorte de projet qui marche sur les deux.

Bruno:
Donc.

Julien:
C'est assez amusant donc ça c'est encore une autre sorte de communauté finalement, mais parce que c'était fait avant après.

Bruno:
Mais après le fait que ce soit un port déjà d'un projet entre guillemets on va pas dire étranger mais c'était un projet Python à l'origine oui.

Julien:
Oui c'est pas ta.

Bruno:
Python puis JavaScript après il y a eu JavaScript j'ai reçu la personne qui a participé au port en PHP, Elephant donc tu vois il y a eu beaucoup de traductions de cette librairie là mais tu vois je pense que comme ça porte déjà nativement le fait que ça vient d'ailleurs que Java de se dire du coup on fait un truc qui fonctionne pour tout le monde, est-ce que d'ailleurs du coup c'est un, comment dire tu nous as dit tout à l'heure que LongChain 4G a pris quand même pas mal de distance avec le LongChain d'origine oui parce que finalement.

Julien:
Après les gens sont partis à.

Bruno:
Faire mais du coup ça a pris une empreinte très Java c'est ça le...

Julien:
C'est une API furante en Java c'est du vrai Java et puis après oui les, Le contributeur principal, et puis après pas mal de contributeurs, travaille chez Quarkus, donc chez Red Hat, donc c'est une teinte Red Hat particulière. Après c'est bien, enfin, puis je l'avais même dit, heureusement, le problème de beaucoup de projets open source, en général, mais entre-temps en Java, c'est comment tu vis sur le long terme. Si c'est juste un projet que tu fais, tu vois, le soir en tant que hobby, à un moment c'est pas tenable, surtout là, parce que là t'as des clients, t'as des gens qui utilisent pour faire des choses, on va dire sérieuses. Tu peux pas faire la semaine prochaine tu peux très bien dire la semaine prochaine j'ai pas envie et ça c'est pas possible pour les clients donc, heureusement qu'on a des sociétés typiquement Red Hat qui embauchent les gens, qui les rémunèrent et qui font vivre le projet c'est un des gros soucis d'open source, moi j'ai fait mon propre projet je connais bien le problème avec Jipster moi Jipster j'ai voulu que ça reste purement un hobby, c'est vrai que moi j'adore le fait de pouvoir me dire c'est mon hobby, si je ne veux pas en faire la semaine prochaine j'en fais pas, par contre c'est vrai que pour un utilisateur, tu vois une boîte on a souvent le problème, des gens qui disent je ne suis pas content, je veux tel truc, j'ai tel bug il faut me le résoudre, et bien oui mais un tu ne payes pas, deux c'est mon hobby et bien voilà, c'est pas vraiment c'est pas très bon pour le projet en soi donc j'ai hipster pour le résoudre en fait on a pas mal d'argent, il y a des sponsors qui nous donnent pas mal d'argent maintenant on fait des bug bounty, donc on donne de l'argent quand je dis maintenant ça fait bien 10 ans qu'on fait ça on donne de l'argent au contributeur donc on dit voilà tel bug il est important, on te file 500$ on corrige le bug, c'est une autre manière de faire mais il faut de l'argent à un moment. Le problème du projet open source qui est un hobby c'est que t'as des bugs qui sont soit trop compliqués moi quand je faisais ça le sur pour m'amuser le soir t'as une heure le truc qui est trop compliqué il faut, 15h, ça marche pas c'est le premier problème et le deuxième problème c'est le bug chiant. Personne ne veut le faire. Tu fais ça pour ton mobile, c'est un client, c'est une grosse banque, il a un bug chiant. T'as pas spécialement envie de passer ta soirée pour l'aider. Et en fait, comment tu le résous ? C'est avec de l'argent, tout simplement, tu paies les gens. Tu résous ce bug embêtant, on te donne 500 dollars, bon ben, voilà. Et heureusement qu'il y a ça. Je suis désolé de faire mon capitaliste, mais il y a un moment pour les projets open source, si tu veux passer à un niveau, il n'y a pas le choix.

Bruno:
Mais après, t'as aussi... C'est une histoire récurrente, en fait, cette dépendance de certaines organisations sur des projets open source qui sont potentiellement maintenues par une seule personne. Il y a cette fameuse BD de XKCD avec cette librairie qui est supportée par tout le monde. Mais je crois que c'était il y a deux ans aussi, je ne sais pas si tu avais vu ça, je crois que c'était un Russe qui avait créé une lib qui était un color picker en JavaScript. Et en fait, c'était le color picker le plus déployé sur Internet. Et personne contribuait à son projet. Et un jour, il en a eu marre. Et il a déployé une mise à jour avec une boucle infinie qui, du coup, bloquait le chargement de toutes les pages où il était installé. Donc, du jour au lendemain, le gars a rendu KO des milliers de sites Internet et a fait prendre conscience à beaucoup d'organisations. Déjà, du risque, effectivement, de se porter sur une numérique qui est soutenue par une seule personne et de ne pas contribuer à ces choses que tu utilises gratuitement.

Julien:
Ce que j'ai voulu faire comme ça sur Gipster, il y a deux modèles. C'est soit tu as une boîte comme Red Hat qui paye les gens, donc là tu as une boîte, on va dire c'est sérieux. Soit Gipster, donc on a fait une assoce à boutons lucratifs. Alors c'est un petit peu aussi la Unix Fondation, il y a plein d'autres gens qui font un peu pareil. Nous on voulait contrôler ce qu'on faisait donc on a fait notre propre assoce. Mais il y a plein d'autres gens qui font des choses équivalentes parce que comme ça tu as un groupe de personnes, tu as de l'argent aussi pour régler les problèmes, voilà. Et ça te garantit quand t'es utilisateur qu'a priori ça va bien se passer si t'as quelqu'un de tout seul que tu connais pas et tu prends son code t'as la merci de la personne et c'est vrai que t'as pas de contrat si t'as un contrat c'est la licence open source qui dit clairement, t'as pas de garantie donc moi ça m'est déjà arrivé moi sur mes projets open source des gens qui me contactent ils disent il faut que tu me corriges ça la licence il n'y a pas de garantie donc je suis sympa j'essaye d'aider c'est vrai qu'il y a des moments, quand c'est du hobby t'as envie.

Bruno:
D'en faire un truc sympa en fait ?

Julien:
T'as autre chose à faire et puis effectivement tu fais ça pour t'amuser moi c'est l'un des gros sujets sur Gipster c'est que nous on fait ça pour s'amuser donc on fait des restos avec l'argent parce qu'on s'amuse, on aime bien passer du temps ensemble et papoter et tu vois on parlait d'IA, une des questions c'est est-ce que finalement on est content d'avoir de l'IA qui nous aide parce que nous ce qu'on veut c'est pas t'as une IA qui fait un super pull request ça améliore le projet, on devrait être content mais nous ce qui nous intéresse c'est d'être entre potes l'IA tu peux pas être potes avec elle tu peux pas aller faire un resto avec elle, nous l'objectif c'est pas un objectif de rentabilité ou de production c'est un objectif de s'amuser donc t'as pas le même t'as pas le même t'as pas le même objectif mais ça fait partie des problèmes du moment avec l'EI et l'open source.

Bruno:
Du coup tu nous expliquais aussi qu'avec ces deux aspects Longchain 4G et Spring AI, le langage Java du coup s'ouvre énormément à ces sujets d'IA est-ce que tu penses que du coup Java aujourd'hui c'est un un langage que tu recommanderais à des projets qui se lancent, à des gens qui se lancent en disant que c'est, un langage et un contexte facilement impréhendable ?

Julien:
C'est le truc important de cette discussion oui, en fait il y a deux choses, on parlait de génération de code génération de code dans Java ça marche super bien parce que le code Java il y en a partout, Du coup, Java, c'est un...

Bruno:
Et puis du code très propre.

Julien:
Du beau code, etc. Alors, si vous voulez du très bon code, vous pouvez même dire à votre LLM, vous codez comme Julien Dugois. Ça marche, en plus. J'ai tellement de code, il recode comme moi. Moi, ça m'amuse bien. Mais en fait, sérieusement, on a tellement de code Java sur GitHub, c'est ce que tout le monde utilise pour entraîner sa LLM, que Java, c'est un très bon langage pour générer le code. Donc, ça, c'est le premier point. Deuxième point, après, quand tu veux faire de l'IA en Java, donc là, vraiment, à appeler un LLM depuis ton Java. Donc nous, avec les frameworks, les librairies, ce qu'on sait parfaitement faire en Java depuis toujours, on a tout qui fonctionne. C'est un écosystème qui est très bien fait. Tu prends Spring AI, ça s'intègre dans Spring parfaitement. C'est un non-sujet, c'est ultra simple. Pour quelqu'un qui veut débuter, tu as le choix. Il y a 2-3 ans, j'ai dit qu'il faut faire du Python parce que c'est en Python qu'on entraîne le LLM. Tellement que tu l'entraînais en Python. C'est toujours bien remarquer d'entraîner en Python, certainement. Par contre, l'utiliser.

Bruno:
Ça n'a rien à voir. C'est pas la même science.

Julien:
J'allais dire que ça a été entraîné avec Jupyton, ça n'a aucune importance. Et là, Java, c'est tout à fait pertinent, c'est extrêmement simple. Pour moi, c'est un délangage majeur pour faire de l'IA comme n'importe quel autre service que tu intégreras avec du Java. Moi, je vois plein de boîtes, parce que c'est aussi un des problèmes qu'on a. Les boîtes font du Java, elles ont une historique en Java énorme. Ils disent, tiens, on voudrait mettre un LLM, il faudrait qu'on refasse une nouvelle équipe avec d'autres technos, non c'est pas la peine. Ton équipe actuelle qui fait du hibernate, elle va parfaitement savoir faire accéder à un LLM avec Spring AI ou Lockchain4j, ça ne va pas leur prendre longtemps et en plus ton copilote ou ton cloud code va t'aider. Donc il n'y a vraiment aucun souci. C'est la chose que je pousse en ce moment, parce qu'effectivement, ce n'était pas forcément vrai il y a un an. Il y a plein de gens qui sont restés là-dedans. Puis aussi, il y a cette vision de Java, les OJB. Il y a plein de gens qui sont restés là-dedans. Non, ça, c'est un monde passé. C'est fini tout ça. C'était très bien à l'époque, ou pas bien du tout à l'époque. Ça dépend de qui tu parles. Mais en tout cas, c'est passé. C'est un monde qui est fini maintenant.

Bruno:
Sur cette simplification de l'intégration des LLM, est-ce que c'est une bonne chose qu'on ait simplifié au final aussi vite la capacité d'intégrer ces outils-là qui sont des outils qui sont non déterministiques qu'on ne maîtrise pas encore parfaitement toujours, tu vois, est-ce que il ne faudrait pas essayer de rajouter un peu de friction dans la manière dont on intègre du LLM dans nos fonctionnalités de manière justement à pouvoir, avoir plus de métrie parce qu'on voit des projets en fait que ce soit de chatbot ou autre en fait qui se retrouvent à dire n'importe quoi parce qu'ils ont été faits de manière un peu trop.

Julien:
Légère on va dire d'où l'intérêt des frameworks qui t'aident parce que justement, typiquement dans l'OnChain 4G c'est réfléchi il y a déjà plein de choses prévues pour t'aider parce que si tu le fais toi-même à la main, en fait tu vas refaire ce qu'on a fait dans l'OnChain 4G dire ah ouais tiens il faudrait mettre des gardes rails il faudrait de la mémoire pour qu'on se souvienne, donc non non justement c'est l'intérêt d'avoir des frameworks qui t'aident et puis aussi qui intègrent alors si tu veux des bons, j'allais dire des bons résultats il faut du prompting donc il faut du contexte supplémentaire là aussi tout est prévu donc Springer et LongChain4J pour t'aider, pour accéder à soit des bases données vectorielles soit des promptes tu vois en plus pour t'aider et diriger et ça il y a un gros gros boulot qui est nécessaire à faire là dessus de toute manière mais c'est plus simple quand t'as un framework où c'est déjà réfléchi que de te le faire à la main.

Bruno:
Ça c'est un truc que je vois assez fascinant c'est qu'il y a, Je pense qu'il y a 3 ans ou 4 ans Faire un RAG C'était quand même un peu compliqué Il fallait quand même déjà.

Julien:
Comprendre pas mal.

Bruno:
De concepts Aujourd'hui c'est vrai qu'un RAG En quelques heures Voire peut-être même quelques Demie heures Tu montes un RAG hyper rapidement.

Julien:
Sur un GFJ t'as même un truc qui s'appelle Easy RAG, Après tu vas vouloir customiser le prompt Mais t'as déjà un truc tout fait C'est prévu T'as une base de l'année vectorielle ton LLM et puis c'est parti puis t'as un prompt par défaut et puis c'est parti mais c'est ça qui est super sympa c'est que tu démarres vite t'as un résultat puis après t'y taire pour améliorer.

Bruno:
Et du coup, les contributions aujourd'hui sur l'Enchain4J et sur SpringGuy, qui sont des projets open source, c'est quoi l'engouement de la communauté que tu vois autour de ces sujets-là versus ce que tu as pu voir sur Spring ou sur Gypsy ? Est-ce que tu vois qu'il y a une très forte adhérence de la communauté qui le fait partir un peu dans tous les sens et donc le fait progresser ? Ou est-ce que c'est encore un peu...

Julien:
Ah non, tu as plein de gens. Alors après, tu vois, ce n'est pas la même communauté, ça, qui est marrant. Alors après moi je te donne c'est mon sentiment, j'ai pas forcément raison, là j'invite tout le monde à commenter et me dire je pense pas comme toi, moi je trouve que Longchain Forging, le contributeur principal Dimitro c'est un mec ultra carré donc en fait tu passes un temps pas possible à tout vérifier à tout que ce soit nickel, donc alors il est extraordinaire mais c'est vrai qu'il fait un peu goulé d'étranglement par contre, du coup t'as un code que je trouve très propre et très, très homogène je trouvais par contre Spring AI peut-être qu'ils acceptaient un peu trop de trucs mais c'est toujours le problème aussi des projets open source c'est que tu veux grossir donc tu acceptes tu te dis ça ça a l'air sympa, si je fais une code review trop violente à nouveau le mec en face il fait ça gentiment donc tu fais une code review trop violente il va partir, donc tu as les deux approches soit tu es très strict et puis tu limites un petit peu mais tu as un code nickel soit tu es trop open donc tu as plein de choses qui arrivent et après au bout d'un moment c'est compliqué, il va falloir refaire. Mais moi pour les deux je vois beaucoup de gens qui contribuent alors après, c'est aussi la nature de ce genre de produit en fait comme tu as plein de LLM plein de bâtonnides vectoriels etc en fait c'est que des modules séparés, donc ça veut dire que le mec qui fait, moi je vais faire des parties OpenAI, tu vois, il y a un autre mec qui va faire, je ne sais pas ce qu'ils ont chez OVH, ce que je pense, on parlait d'OVH avant, mais on va dire les concurrents ont forcément leur propre système chacun, on va dire, bosse son module à lui, alors à la rigueur c'est vrai que tu regardes des fois le module d'à côté, moi j'aime bien ceux s'ils m'écoutent, ça le fera marrer, c'est Guillaume Laforge qui bosse chez Google, je sais qu'il fait du beau boulot j'aime bien, il y a aussi quelqu'un, Cédric qui bosse qui bossait chez Cassandra, chez Datastax. Pareil, je sais qu'il fait du bon boulot. Donc, j'ai regardé ce qu'ils ont fait. Je sais, eux, tiens, probablement, leur code, il est pas mal. Moi, je vais regarder. Mais après, chacun de son côté. C'est vrai que t'as peu de porosité entre ces projets. Mais ça, c'est là, on va dire.

Bruno:
Il n'y a peu de porosité, mais vous vous regardez quand même un peu de loin.

Julien:
Chacun se regarde. Et puis après, même, tu ne regardes pas maintenant qu'elle est LLM. Il va dire, tiens, le module d'à côté, il est fait comme ça. Donc toi je vais le faire comme ça mais ça c'est au contraire, je trouve que ça va être vachement bien dans le futur enfin on y est déjà c'est que moi jusqu'à présent sur ces projets là tu veux une qualité de code identique partout c'était très compliqué chacun vient avec sa manière de coder, et à nouveau si tu es trop méchant sur les contributions les gens vont plus contribuer, donc après moi c'est ce qu'on a appelé sur Gipster on avait plein de contributions très très différentes il y avait un code qui n'était pas top, parce qu'on voulait que les gens viennent maintenant que le LLM on va pouvoir lui dire aussi peut-être tu recodes ça dans la manière d'eux donc soit les gens vont le faire automatiquement parce que le LLM va les, coder bien, soit toi tu es le maintainer tu reviens, tu dis allez recode moi ça bien et finalement c'est que du formatage presque.

Bruno:
Est-ce que ça veut dire qu'on va avoir de plus en plus de projets open source, venir avec leurs propres skills .md ?

Julien:
Pour moi dans les projets open source on va pouvoir, On est en train de discuter de le faire sur Gipster. Je préviens, je ne veux pas critiquer les gens, je suis le premier à ne pas l'avoir fait. Mais effectivement, pour que les gens contribuent, il faut que ton projet soit préconfiguré. Tu es un agent.md, etc. Pour que quand un contributeur arrive, il soit déjà guidé. Et que ça l'aide. La difficulté maintenant des projets open source, je vais repartir sur le côté obscur des LLM, c'est maintenant la peine de contributions qui sont n'importe quoi, c'est tellement facile de contribuer qu'on se prend beaucoup de contributions on a le problème sur Jipster, mais on n'est pas les seuls t'as plein de gens, ils connaissent pas le projet, ils disent à leur LLM tiens, regarde les tickets qui ont les RL les plus sympas alors nous, comme je disais tout à l'heure, on donne de l'argent il se dit, ah tiens, il y a 200 dollars il dit à son LLM, vas-y corrige, il nous envoie sa pull request, son truc c'est mal fait c'est n'importe quoi, et puis à nouveau, nous on aime bien discuter enfin, on fait ça pour être copains et puis, en face, on est un agent, ouais il y a un problème aujourd'hui dans les projets open source de trop de pull requests faits par des LLM qui ne sont pas forcément de bonne qualité et surtout qui ne sont pas faits par des humains ça enlève un petit peu l'esprit de la chose, donc après c'est à toi aussi de guider guider les humains les bons contributeurs avec ton agent.md et puis après on commence la discussion pour carrément bloquer les bots en fait quand on voit qu'en face ce n'est pas un humain, le bloquer parce que ça ne nous intéresse pas, quoi. À nouveau nous c'est.

Bruno:
À chaque projet d'avoir sa philosophie chacun son truc.

Julien:
Nous on n'a pas un objectif de productivité on serait une boîte tu es une vraie boîte et tu veux produire le plus possible c'est parfait, mais c'est pas l'invision si je prends mon boulot on est chez Microsoft, on veut produire le plus vite possible forcément on va faire du copilote partout, si tu allais vite, il n'y a pas le choix mais c'est pas la même philosophie qu'un projet open source.

Bruno:
Sur cette simplification de l'intégration des LLM via soit Lang4G, soit Springer, soit peut-être même d'autres solutions, il y a aussi de plus en plus, on met le doigt sur des nécessités d'observabilité, ce qui couvre beaucoup de sujets dans le sujet des LLM parce que déjà tu as envie de voir bien évidemment si tu as des réponses, je parle de réponses au sens technique c'est à dire si effectivement ton LLM répond bien et autre, après tu as sur la qualité en tant que tel des réponses mais on veut aussi surveiller la consommation de tokens, et j'ai vu passer aussi il y a quelques temps une techno, alors j'ai oublié le nom qui te permet rétroactivement de voir quels éléments de ton prompt ont déclenché tels éléments dans la réponse, de pouvoir voir un peu le truc, je ne sais pas s'il y a l'intégration du coup déjà, de ces sujets là en fait de surveillance ou d'observabilité c'est.

Julien:
Un peu compliqué je ne sais pas par exemple entre Spring AI et LongChain 4G, Spring AI pour moi et en avance, l'enclin de fourgie, je pense que c'est avec la personne qui le faisait il y a deux semaines, donc c'est en train d'arriver. En fait on a des intégrations open télémétrie, l'idée c'est qu'évidemment ça renvoie toute la télémétrie à un système de monitoring, Là, je reprends mon chapeau Microsoft, parce que moi, je n'ai évidemment bossé que sur Microsoft Fondry, donc sur la plateforme. Nous, on a ce qu'il faut pour monitorer, ce qu'on fait dans d'autres langages. Alors, ça marche très bien en .NET, ça marche très bien en Python. En JavaScript, je crois aussi qu'ils ont bossé dessus, je crois que ça marche aussi. C'est le Java qui a un peu de retard, mais c'est le truc essentiel, c'est ce que tout le monde veut, c'est-à-dire voir les différentes requêtes, donc les promptes, les appels, comprendre ce qui s'est passé. Donc, on arrive à l'avoir, on va avoir une trace complète. Dans Azure on a un truc ça s'appelle application insight tu as des traces de tout ce qui se passe mais il faut que le framework envoie toutes les bonnes données le boulot il est là, et c'est essentiel pour débuguer, comprendre ce qui se passe plus c'est compliqué tu as des agents qui lancent des agents, des machins qu'est-ce qui se passe, c'est incompréhensible si tu n'as pas ça il le faut à tout prix pour avoir de la qualité la deuxième raison c'est ce que tu dis c'est l'argent, ça consomme des tokens, suivant ce que tu fais ça va consommer plus ou moins, et on a plein de clients ils ont forcément une logique financière. Ils ont un projet, ils se disent tiens je vais faire telle chose avec mon LLM, ça me rapporte le temps les tokens me coûtent le temps à tout prix qu'on moniteur pour savoir si c'est rentable et si t'as pas ce système là, t'arrives pas à vérifier la qualité donc le problème technique mais aussi t'arrives pas à résoudre ton problème financier, c'est à dire que est-ce que ce que je fais, ça a une rentabilité ou pas ça c'est essentiel sinon tu ne parles pas dessus et ça c'est super intéressant, surtout ce que tu dis aussi c'est que c'est probabilistique on pourrait même dire que c'est généralement rentable c'est incroyable quand tu dis, Mais bon, sur plein d'utilisateurs, au bout d'un moment, ça va se tisser. Tu vas dire, tiens, ça me coûte tant de tokens, ça me rapporte le temps. Bon, j'y vais ou j'y vais pas. Mais c'est une des parties que je trouve très sympa avec l'IA. C'est que moi, je vois plein de clients, en fait, qui remplacent des clients typiquement dans la pub. Tu vois, ils avaient des pubs statiques. Ça rapporte le temps et ça coûte pas très cher vu que c'est du HTML statique. Maintenant, tu mets un texte généré en fonction des présences d'utilisateurs, de je sais pas ce que t'as en stock, etc. Ça te coûte plus cher parce que forcément, il faut réfléchir, mais tu es une pub plus ciblée. Tu peux très bien faire de l'AB testing par rapport à la partie statique, par rapport à ton IA, puis il va être différent de l'IA. Tu as plusieurs LLM, tu as plusieurs promptes.

Bruno:
À différents niveaux de granularité, on peut imaginer plein de...

Julien:
Tu vois ce qui marche le même, il te faut du monitoring pour ça. Clairement, ce qu'on voit, on a des énormes clients qui font ça. L'IA est bien meilleure, évidemment. Tu as des résultats bien meilleurs qu'avec du statique. Le client, il n'a plus tendance à cliquer quand c'est quelque chose de pas planisé.

Bruno:
Il te coûte plus cher, c'est une équation économique.

Julien:
Oui, mais à toi, à ce suite d'avoir les outils pour vérifier, parce que oui, tu as vendu plus, ça a coûté beaucoup plus cher. Donc, je trouve ça ultra intéressant. Donc là, on peut vraiment tout tester. On arrive dans des choses que je trouve extrêmement intéressantes.

Bruno:
Est-ce que tu vois justement l'IA arriver comme... Parce qu'on parle beaucoup d'IA en ce moment dans le milieu des développeurs et développeuses, mais surtout sur l'aspect génération de code, donc sur les impacts qu'il y a sur notre métier en direct. Mais je trouve qu'on parle assez peu de l'impact aussi sur notre métier que ça a dans le fait que c'est un outil intégré en plus dans les fonctionnalités qu'on développe au quotidien. Il faut pouvoir intégrer parfois à tort ou à raison est-ce que tu vois quand même de plus en plus de projets, qui intègrent ces outils là que ce soit du LLM ou d'autres types d'IA il y en a plein qui existent ou les gens sont encore beaucoup autour de la génération de code plus qu'autre chose alors.

Julien:
Moi j'ai les deux mais aussi mon métier il est un peu il me force.

Bruno:
J'ai une fenêtre.

Julien:
Donc la génération de code il y a tout le monde ça franchement honnêtement je pense que tout le monde va dessus après mettre de l'IA dans ses projets, ça dépend des boîtes. Parce qu'on est sur des... Des fois, il y a des boîtes qui ont un truc très régulé. Juste, il n'y a pas le besoin. Mais c'est vrai qu'on a des grosses demandes. En fait, le... Ils ont des nouvelles possibilités qui n'étaient pas possibles avant. En fait, grâce à l'IA, ils peuvent faire des projets de pub qui sont plus performants qu'avant. Ils n'avaient pas le projet parce qu'ils avaient un site web. Ils poussaient du texte statique, maintenant ils peuvent faire un texte dynamique. Ils lancent des nouveaux projets qu'ils n'avaient pas avant. Et aussi, grâce à l'IA, à copilote pour générer, ils peuvent aussi lancer un projet plus facilement. Avant, tu voulais faire ton projet... J'ai moqué Java, mais on va dire, c'est un projet Java. il faut 10 personnes il faut 6 mois etc et ça va être long et compliqué et là on peut leur dire ben non avec Copilot ou CloudCode tu génères ton projet t'as un proto très très rapide, donc là on a des tu peux faire des nouveaux projets plus vite avec des fonctionnalités que tu pouvais pas faire avant donc il y a tout un nouveau pan j'allais dire de travail qui arrive qu'on avait pas, après c'est la discussion que je trouve passionnante sur qu'est-ce que devient notre métier parce que j'ai plein de gens qui disent l'IA va me prendre mon métier ouais mais il y a aussi tous ces projets là qui existaient pas qui arrivent, des.

Bruno:
Projets qui vont générer du coup un besoin de personnes pour les maintenir pour les faire évoluer.

Julien:
Il y avait des stats assez intéressantes qui montraient que c'était les boîtes qui faisaient le plus d'IA, récemment qui recrutaient le plus justement elles trouvent des nouveaux marchés elles ont des nouveaux besoins et forcément il y a besoin de plus de monde parce qu'au final il faut quand même bien quelqu'un qui prôme la personne va plus vite mais t'as quand même besoin de quelqu'un à la base, donc je trouve ça passionnant de voir ça en ce moment après effectivement je comprends les jeunes qui peuvent se demander qu'est-ce que ça va devenir dans dix ans. Après, c'est vrai dans tous les métiers. Des métiers qui vont être complètement chamboulés par l'IA, il y en a plein. On est peut-être les premiers parce que nous, on est dedans, etc. Mais les chauffeurs de taxi, dans dix ans, et tu verras des taxis automatisés, ils vont avoir le même problème que nous.

Bruno:
Complètement.

Julien:
À la rigueur, nous, on a la chance de pouvoir y participer. Donc il y a déjà, on va dire intellectuellement c'est sympa et puis peut-être aussi on va peut-être mieux tu vois.

Bruno:
Mieux tirer notre épingle du jeu.

Julien:
Voilà, mieux y arriver parce que nous on aurait été parti prenons dedans tu vois le chauffeur de taxi il est pour rien, il peut rien faire ça lui arrive, nous à la rigueur on peut en bénéficier mais c'est vrai que c'est intéressant et effrayant.

Bruno:
C'est une période mouvante on va dire.

Julien:
C'est ce qu'on disait au début, personne n'imaginait ce qui se passerait il y a 6 mois et il y a un an encore moins, moi je peux te le dire Microsoft on est leader là-dedans il y a 2-3 ans personne n'en parlait de tout ça je ne l'ai pas du tout vu venir et après les premières IA qu'on avait on faisait de l'autocomplétition de code j'ai eu plein de gens qui me disaient c'est bien, ça autocomplète mieux qu'avant, ça va s'arrêter là parce qu'après les lèmes c'est tellement coûteux, c'est tellement compliqué on n'arrivera pas à faire mieux et puis on arrive maintenant avec des agents qui font des trucs complètement fous donc va savoir comment ça va être dans 6 mois, c'est ça qui est passionnant et effrayant. Je trouve sympa de le dire en ce moment, pour nous en ce moment après.

Bruno:
Pour terminer, pour toi aujourd'hui, justement tous ces outils de génération de code vont permettre à Java de conforter une position forte, dans l'écosystème de langage grâce à tout ce qui est déjà disponible qui permet de générer du code plus propre, donc plus pérenne, plus maintenable et plus solide.

Julien:
Les langages typés comme Java marchent mieux avec VIA. Les langages qui ont plein de projets open source marchent mieux, comme Java, donc en gros Java est quand même bien mis, et puis après j'ai des collègues qui sont assez marrants, ils me disent finalement le code c'est pas important, je suis dans GitHub Copilos chez Lai, je lui dis ce que je veux, il me génère et puis je lui dis, gêne-moi dans le meilleur langage possible, et peu m'importe le langage après quand tu regardes les performances brutes des langages Java est super bon, en termes d'écologie etc, alors une fois que c'est compilé que c'est dans la JVM, ou alors tu fais des complications natives en Java, il y a un truc qui s'appelle GraalVM qui est super aussi En fait, Java, une fois que ton projet tourne soit dans la JVM, soit dans GraalVM, c'est extrêmement performant, plus performant que du Python, plus performant que du JavaScript. Donc finalement, si le langage est plus important, ce qui est important, c'est quoi ? C'est ton runtime, que ça te coûte moins cher quand ça tourne, Java est très très bon. Donc ça, c'est un autre argument aussi. Bon, après, on pourrait dire, oui, je pourrais le faire. J'ai des gens qui me disent oui je pourrais le faire en Rust ou en Go ben là en fait comme il y a un peu moins de projets open source qui sont un peu moins bons et alors je sais pas si tu te souviens il y a quelques minutes on parlait des LSP, le LSP Java est très très bon et je crois qu'en Go et en Rust il est moins bon donc en fait t'as un avantage encore en Java mais c'est juste la taille de la communauté plus t'as de monde qui fait quelque chose ben plus le LLM est bon et plus du coup tu bénéfices du résultat plus.

Bruno:
L'historique aussi parce que on parle souvent de l'historique comme étant du legacy comme étant un boulet qu'on porte mais Et mine de rien, Java est là depuis quasiment le début. Et il y a aussi toute cette connaissance, cette expertise-là qui est partie pleine de Java.

Julien:
C'est aussi bien d'avoir des anciens comme nous parce que ce qu'on disait aussi, ton LLM comme directif, il faut dire je veux ça de telle manière parce que je sais que c'est ça qui va marcher t'as besoin de cette compétence là aussi si tu veux des projets qui réussissent, elle est moins importante qu'avant mais elle reste, celui qui sait absolument rien à rien sur l'informatique, il va jamais prompter quelque chose d'intéressant donc voilà canon.

Bruno:
Merci beaucoup Julien pour cette conversation. J'aurais deux dernières questions pour toi qui sont les questions rituelles du podcast. La première, c'est est-ce qu'il y a un contenu que tu souhaiterais partager avec l'ensemble des auditoristes ?

Julien:
Oui. Alors moi, ce que j'aime beaucoup, j'écoute beaucoup de podcasts, mais j'écoute peu de podcasts. Enfin, non, j'écoute des podcasts techniques, je t'écoute. Mais ce n'est pas mon sujet principal. Il y a plein d'autres choses qui m'intéressent beaucoup. Il y a une chose qui m'intéresse beaucoup en ce moment, c'est tous les podcasts sur la finance. Je trouve que ça manque beaucoup en France. Alors, c'est mon côté, j'allais dire, avec Microsoft, j'ai tout un côté américain, j'ai mes collègues, comment ça se passe là-bas ils n'ont pas le même système que nous, et je trouve que ça manque beaucoup en France les développeurs, ils n'ont pas placé leur argent c'est des choses qui les dépassent ils sont à voir, le podcast que j'aime que je trouve bien pour démarrer là-dessus il y a une société qui s'appelle Finary et leur CEO est très très bien, il fait des podcasts il faut chercher Finary, c'est une appli et derrière, ils font un podcast très populaire. Il explique bien comment tu places ton argent quand tu es débutant, quand tu ne sais pas comment faire. Après, évidemment, il veut te vendre son application, qui est très bien aussi, mais l'intérêt, surtout pour moi, de manière générale, c'est de se former sur comment tu places ton argent. Moi, c'est quelque chose que j'ai fait très, très, très, très tardivement. Je regrette. Et en France, on n'a pas cette culture-là. Et je trouve que c'est bien de s'y mettre. Donc, voilà. Le truc n'a rien à voir avec la tech.

Bruno:
Bon, on retrouvera les liens. On les mettra, bien évidemment, dans la description. Et dernière question, de loin la plus importante de ce podcast. Julien, tu es plutôt espace ou tabulation ?

Julien:
Ah ! J'ai une demi-heure ou pas.

Bruno:
Allons-y, tu peux prendre autant que tu veux.

Julien:
Non, parce qu'en fait, bizarrement, c'est un sujet sur lequel j'ai pas mal bossé, parce qu'on parlait de jipster, mais en fait, dans l'organisation jipster, on a des sous-projets, et entre autres, on a fait Prettier pour Java. Donc Prettier, c'est un truc pour automatiser ton formatage. On a fait la version officielle Java. Donc, j'ai passé pas mal de temps sur les histoires de formatage. Et alors... Déjà ma réponse à ta question parce qu'on ne va pas l'éviter c'est un truc sur lequel j'ai passé du temps, ma vraie réponse c'est en fait tu prends le formatage du projet auquel tu contribues tu fais de l'open source les mecs ils font, alors tu vas sur Linux ils font des tabulations dans le noyau Linux je crois que c'est 8 caractères par défaut ils font un truc bizarre, c'est pas toi qui vas venir et dire moi je mets 2 espaces non, tu suis ton projet donc quand tu fais de l'open source, tu suis les pratiques du projet donc ma vraie réponse c'est ça, je ne suis ni l'un ni l'autre C'est ce que fait le projet, ce que fait la communauté. C'est une communauté qui aime bien les espaces, et je fais des espaces. Après, si c'est mon projet à moi, alors moi j'aime bien faire 4 espaces, parce que c'est mon habitude. La bonne réponse, on va dire, microsoftienne, ce qu'on est à fond en train de pousser l'accessibilité, ce serait les tabulations, parce qu'il paraît que c'est mieux, dans certains IDE. Donc en interne, ce serait ça. Mais moi, au niveau perso, j'ai juste une habitude, j'ai toujours mis 4 espaces, parce qu'en Java, c'est comme ça. Ah non, pardon, je fais 4 espaces en Java, et en JavaScript, j'en fais 2. mais tu.

Bruno:
Restes espace quand même.

Julien:
Je reste espace mais par contre je fais ce que j'ai dit tout à l'heure je suis les pratiques de la communauté parce que c'est comme ça que ça fonctionne je fais pas le code pour parce que je l'aime bien pour moi, je fais le code pour les autres pour le faire avec eux, sinon ça n'a pas de sens.

Bruno:
On a un métier très collaboratif on est rarement tout seul.

Julien:
C'est ce que plein de gens ne comprennent pas sur notre métier ils pensent qu'on est sur notre PC à coder, notre Mac à coder, le gros du temps moi je suis en train de papoter avec des gens et puis après des gens vont se dire est-ce qu'ils bossent vraiment ils papotent après.

Bruno:
C'est aussi que t'es des vrais peut-être que ça joue au fait que tu passes ton temps par là des gens.

Julien:
Alors ouais alors après euh.

Bruno:
Mais oui, je suis d'accord avec toi. C'est vrai que le métier de dev, c'est un métier qui passe par beaucoup de communication et d'échanges et de partage.

Julien:
Les gens dans DevRel sont naturellement extravertis. Sinon, il ne fallait pas faire ce boulot-là. Il y en a qui ne le sont pas, mais je pense que tu veux le faire. Tu peux le faire parce que tu aimes bien parler avec les gens. Sinon, il ne fallait pas faire ça. Par contre, j'ai plein de projets internes. En fait, on a un nombre de réunions pas possible parce qu'on discute. Ou de Teams. Microsoft Teams. Chez GitHub, c'est Slack. On passe un temps pas possible à discuter, à faire des code review et une grosse partie du métier finalement c'est de la communication mais c'est pas du code. Le code c'est le produit final mais c'est pas le… c'est aussi même pas ce que j'apprécie le plus. Moi ce que j'aime bien c'est que je suis avec les gens, on fait quelque chose d'utile. Après que j'ai codé avec 4 espaces ou une tabulation.

Bruno:
Ça change pas et après.

Julien:
Donc si t'as prétieur donc prétieur le vrai truc c'est un hook git en fait dans la pratique tu t'en moques quand tu sauvegardes ton code tu fais git commit et t'as le hook qui passe qui te reformate donc en fait tu t'en moques, complètement de la manière dont c'est codé finalement le formatage c'est une étape, avant la compilation.

Bruno:
Qui sert.

Julien:
À rien enfin qui sert à rien voilà c'est pas important.

Bruno:
Très bien merci beaucoup Julien merci beaucoup et merci à tous d'avoir suivi cet épisode voilà Java est une technologie effectivement envisagée parce qu'effectivement, aujourd'hui il faut considérer la capacité des LLM à adresser du code alors c'est vrai que Claude a fait des annonces sur une capacité à générer du COBOL mais c'est pas pour autant qu'il faut se mettre au COBOL il faut prendre avec des pincettes ce qui a été dit sur la capacité de Claude à faire du COBOL mais c'est quand même intéressant. Donc voilà Java effectivement est un langage intéressant et notamment avec SpringEye et Long4G. Moi, de mon côté, je vous remercie, comme toujours, de partager ce podcast autour de vous. Je vous souhaite une très bonne fin de semaine. Je vous dis à la semaine prochaine. Et d'ici là, codez bien.

MCP://IFTTD

Grande nouvelle, ce podcast t'a rendu meilleur.e dev, tu peux maintenant rendre ton IA meilleure aussi ! Avec le MCP IFTTD, ton Cursor ou Claude Code va enfin pouvoir utiliser toute l'expertise de ce podcast. Va tester sur mcp.ifttd.io et pour les 50 premiers, le code IFTTD3M offre 3 mois gratuits !