La réécriture de Bun en Rust est une prouesse impressionnante
MMaximilian Schwarzmüller
Computing/SoftwareSmall Business/StartupsInternet Technology
Transcript
00:00:00BUN a été porté de SIG vers Rust.
00:00:02Vous en avez probablement déjà entendu parler,
00:00:04mais il y a beaucoup de choses à analyser ici.
00:00:06Il y a eu beaucoup de remue-ménage la semaine dernière,
00:00:08mais il se passe beaucoup de choses intéressantes.
00:00:10Et peu importe si vous vous intéressez à BUN, SIG ou Rust,
00:00:14c'est vraiment intéressant.
00:00:15Notamment sur la façon dont l'IA a été mise à profit
00:00:18et ce que cela pourrait signifier pour des projets similaires
00:00:20dans notre industrie en général.
00:00:22Maintenant, juste une petite parenthèse,
00:00:24j'apprécie personnellement pas mal BUN.
00:00:26C'est mon environnement d'exécution JavaScript par défaut
00:00:29pour la plupart de mes projets.
00:00:30Et en fait, par une heureuse coïncidence,
00:00:32j'ai publié un tout nouveau cours sur BUN la semaine dernière.
00:00:35Et cela fonctionne évidemment pour la version Rust
00:00:37tout comme pour la version SIG.
00:00:39Donc, si vous voulez approfondir un peu BUN
00:00:41et découvrir toutes les API principales qu'il a à offrir,
00:00:44car c'est l'un des plus grands avantages de BUN,
00:00:46d'avoir autant de fonctionnalités intégrées.
00:00:48Certains n'aiment pas ça, moi j'adore.
00:00:50Si vous voulez en savoir plus à ce sujet,
00:00:51ce cours pourrait vous intéresser.
00:00:53Mais examinons maintenant de plus près
00:00:54le calendrier global du portage, voulez-vous ?
00:00:58C'est arrivé il y a deux mois en fait.
00:01:01L'article de blog a été publié la semaine dernière en juillet,
00:01:04mais le portage lui-même a eu lieu en mai.
00:01:08Et cela a commencé début mai
00:01:10lorsque la branche CloudFaserPort a été découverte
00:01:13sur le dépôt GitHub officiel de BUN.
00:01:15Cette branche contenait un fichier de portage MD,
00:01:18un fichier Markdown avec des instructions
00:01:21sur la façon de convertir du code SIG en code Rust,
00:01:23comment porter ce code, des tables de traduction,
00:01:27et des instructions générales.
00:01:28Et nous reviendrons sur la façon dont ce fichier a été créé,
00:01:30car bien sûr, l'IA était impliquée,
00:01:32comme vous pouvez le deviner, un peu plus tard.
00:01:34C'est ce qui a été découvert.
00:01:36Naturellement, des discussions s'en sont suivies sur Hacker News et X.
00:01:40Certains étaient enthousiastes à ce sujet.
00:01:43D'autres étaient très critiques.
00:01:46Mais à ce moment-là, nous ne savions pas grand-chose.
00:01:47Évidemment, il y a beaucoup de polarisation autour de Rust.
00:01:52Il y a des gens qui adorent Rust, comme moi.
00:01:55Il y a des gens qui détestent Rust.
00:01:57Il y a des gens qui détestent
00:01:58que tout devrait être réécrit en Rust,
00:02:00car très souvent, on lit
00:02:03que les gens veulent que le programme XYZ soit réécrit en Rust.
00:02:06Et je comprends que ce soit agaçant.
00:02:08Mais naturellement, donc,
00:02:09il y avait beaucoup de polarisation à ce sujet.
00:02:11Mais le portage n'avait pas encore eu lieu.
00:02:15Cela a changé plus tard en mai.
00:02:16Et le 14 mai, une pull request officielle a été ouverte,
00:02:22puis également fusionnée,
00:02:24qui a effectivement migré la base de code BUN,
00:02:28entièrement, de Zig vers Rust.
00:02:30Maintenant, comme vous pouvez le voir, c'est une énorme pull request.
00:02:32Plus d'un million de lignes de code ont été ajoutées.
00:02:35Et la suppression du code Zig a eu lieu
00:02:39à une étape différente.
00:02:40Donc oui, c'est pourquoi ce n'est pas un simple échange.
00:02:42Mais c'est un changement énorme, comme vous pouvez le voir,
00:02:44avec près de 7 000 commits.
00:02:46Maintenant, naturellement, ce code n'a pas été revu par des humains,
00:02:51du moins pas entièrement.
00:02:52Il a été revu par une IA.
00:02:54Il y avait des tests réussis, mais il n'a pas été revu par des humains.
00:02:59Et nous reviendrons sur la façon dont l'IA a été utilisée dans une seconde.
00:03:02Mais cela a été publié ou fusionné.
00:03:06Et bien sûr, d'autres discussions ont suivi maintenant.
00:03:08Comme je viens de le mentionner, il n'a pas été revu par des humains.
00:03:10C'est impossible à faire dans ce laps de temps, bien sûr.
00:03:14Mais la communauté s'y est plongée et a jeté un œil
00:03:17et a analysé certaines parties.
00:03:19Et puis il y a eu un autre, ou un premier article de blog,
00:03:23pas l'officiel sur tous les détails,
00:03:25mais un premier article de blog ou déclaration publié par l'équipe de Bun
00:03:29à propos de l'utilisation de “unsafe”.
00:03:32Parce qu'une critique majeure apparue après cette pull request
00:03:37est que le code Rust qui s'y trouvait n'était pas du Rust idiomatique.
00:03:41Ce n'était pas le genre de code Rust que vous écririez
00:03:44si vous construisiez cela à partir de zéro.
00:03:46Au lieu de cela, c'était vraiment comme une traduction du Zig vers le Rust.
00:03:50Et cela signifiait que toutes les meilleures pratiques
00:03:54et motifs de Rust n'étaient pas utilisés.
00:03:55Et surtout, il y avait une quantité décente
00:03:58d'utilisation de “unsafe” dedans.
00:04:00Maintenant, pour comprendre “unsafe”, vous devez comprendre
00:04:03comment Rust gère la mémoire.
00:04:05parce que c'est l'un de ses plus grands avantages,
00:04:08et c'est assez différent des autres langages.
00:04:10Car dans la plupart des langages, vous avez soit un ramasse-miettes,
00:04:14qui est un processus qui détecte essentiellement
00:04:16quand une valeur n'est plus utilisée nulle part dans le programme
00:04:19puis libère la mémoire, ce qui est pratique,
00:04:21mais consomme des ressources supplémentaires.
00:04:24Ou bien vous devez le faire vous-même.
00:04:26Dans des langages comme le C, par exemple,
00:04:28vous devez allouer et libérer la mémoire manuellement.
00:04:31Et c'est pareil en Zig.
00:04:33Vous pouvez y allouer de la mémoire, mais vous devez aussi appeler free
00:04:37ou vous devez la libérer quand vous n'en avez plus besoin.
00:04:40Vous pouvez utiliser defer, ce qui est pratique.
00:04:43Cela signifie essentiellement que vous pouvez l'appeler
00:04:47avant qu'elle ne soit réellement exécutée.
00:04:49Elle est différée et sera appelée automatiquement
00:04:52à la fin de la portée, en substance.
00:04:55Et c'est bien parce qu'il existe différentes situations
00:04:58où une valeur peut ne plus être nécessaire.
00:05:00Mais quand même, lorsque vous devez nettoyer la mémoire manuellement,
00:05:04il y a de nombreuses situations
00:05:05où vous pouvez vous tirer une balle dans le pied.
00:05:07Vous avez un contrôle plus précis
00:05:09et cela peut être très utile, très efficace,
00:05:11mais il est aussi facile d'oublier des situations
00:05:15dans des programmes plus complexes
00:05:16où vous pourriez ne pas nettoyer la mémoire,
00:05:19provoquant ainsi une fuite de mémoire,
00:05:20ou là où vous pourriez nettoyer deux fois,
00:05:23ce qui causera également une erreur.
00:05:25Et c'est pourquoi il existe un compromis.
00:05:27Et Rust a une approche différente.
00:05:30Dans Rust, vous avez le concept de propriété,
00:05:32ce qui signifie que chaque valeur a exactement un propriétaire,
00:05:36et elle est liée à une portée.
00:05:38Donc, si vous avez une portée,
00:05:39et vous pouvez créer une portée en utilisant des accolades,
00:05:41ou une fonction aura également sa propre portée.
00:05:43Vous connaissez peut-être ce concept en JavaScript.
00:05:46Si vous avez une portée,
00:05:47alors lorsqu'une valeur y est créée,
00:05:49elle appartient à cette portée.
00:05:51Et si la portée se termine, elle est libérée.
00:05:53Et cela est bien sûr très pratique
00:05:55car vous n'avez pas à vous soucier de la libérer.
00:05:58Vous n'avez pas non plus de ramasse-miettes.
00:06:00Au lieu de cela, vous avez cette règle claire.
00:06:02Cela peut mener à une certaine complexité dans les programmes plus complexes
00:06:05où vous devez transmettre des valeurs.
00:06:07Vous pouvez le faire dans Rust,
00:06:08mais cela demande une autre façon de penser.
00:06:11Mais cela vous apporte bien sûr la sécurité mémoire,
00:06:14à moins d'utiliser le mot-clé unsafe.
00:06:19Si vous l'utilisez, vous pouvez créer une portée unsafe.
00:06:22Et là-dedans, ces règles ne s'appliquent plus.
00:06:24C'est alors votre travail de vous assurer
00:06:26que la mémoire est gérée de manière appropriée.
00:06:28Pourquoi feriez-vous cela ?
00:06:29Eh bien, par exemple,
00:06:31si vous importez une bibliothèque C,
00:06:33ce que vous pouvez faire dans Rust,
00:06:34vous pouvez intégrer du code C, pour ainsi dire,
00:06:37ou appeler des méthodes et fonctions de bibliothèques C,
00:06:40puisque le C est naturellement non sécurisé,
00:06:44le code où vous faites appel à ce code C est également non sécurisé.
00:06:48Vous avez donc besoin de cette fonctionnalité pour interagir avec notre code unsafe.
00:06:52Et c'est aussi une chose qu'ils ont notée
00:06:54dans cette déclaration officielle,
00:06:56que toutes ces utilisations unsafe dans la base de code
00:07:00étaient en bonne partie liées à des appels,
00:07:04à d'autres bibliothèques, des bibliothèques C, et ainsi de suite,
00:07:07ce qui ne changera pas.
00:07:08Mais ils ont aussi identifié des zones
00:07:10où ils pouvaient réellement améliorer le code
00:07:13et se débarrasser du unsafe.
00:07:14Et ils ont mentionné qu'ils feraient cela
00:07:15dans des pull requests ultérieures.
00:07:18Ils l'ont fait et continuent de le faire.
00:07:20Vous pouvez donc considérer ce portage initial
00:07:22comme un point de départ,
00:07:24qui a ensuite été raffiné au fil du temps.
00:07:26Il convient tout de même de mentionner que cette pull request initiale,
00:07:28ou cette énorme pull request,
00:07:30avait déjà des tests qui passaient.
00:07:32Donc c'était stable, les tests passaient,
00:07:35mais le code n'avait pas la qualité
00:07:37que vous attendriez peut-être s'il avait été écrit en Rust
00:07:40depuis le début, car ce n'était pas l'objectif.
00:07:43C'était donc le 21 mai.
00:07:45Puis, il y a eu le silence.
00:07:46Et il vaut aussi la peine de noter que cette version de Bun
00:07:49n'était pas encore sortie.
00:07:50Et au moment où j'enregistre ceci, elle n'est toujours pas en ligne.
00:07:52Quand vous installez Bun en ce moment,
00:07:54vous obtenez toujours la version Zig,
00:07:56mais cela devrait changer d'un jour à l'autre.
00:07:58Mais ensuite, le 8 juillet,
00:07:59le billet de blog officiel a été publié,
00:08:02où nous trouvons beaucoup de détails intéressants
00:08:04sur ce portage.
00:08:06Et ça vaut vraiment la peine d'être lu.
00:08:07Je vais le mettre en lien ci-dessous
00:08:08car il y a beaucoup à apprendre ici.
00:08:11Ce portage entier, et ce n'est pas un secret,
00:08:13a été réalisé avec l'aide de l'IA.
00:08:15Il est bon de garder à l'esprit que BUN appartient à Anthropic.
00:08:18Ils avaient donc un accès libre à tous ces jetons,
00:08:22et surtout à Fable 5
00:08:24avant qu'il ne soit rendu public.
00:08:26Ce portage a été réalisé avec Fable 5.
00:08:29Et si vous installez Cloud Code maintenant, soit dit en passant,
00:08:32même si BUN 1.4, la version Rust, n'est pas encore sortie,
00:08:36Cloud Code tourne déjà au-dessus
00:08:39d'une version non publiée de BUN, pour ainsi dire,
00:08:42c'est-à-dire la version Rust.
00:08:44Voilà pour ça.
00:08:45Mais oui, ce portage a été réalisé avec Cloud Code
00:08:48basé sur Fable 5 avec des jetons gratuits, bien sûr,
00:08:52puisque BUN fait partie d'Anthropic.
00:08:54C'est important de garder cela à l'esprit
00:08:56car dans cet article de blog,
00:08:58on apprend que si l'on devait combiner tous les jetons,
00:09:03ou si l'on additionnait tous les jetons
00:09:04dépensés aux prix de l'API,
00:09:08ce portage complet aurait coûté environ 160 000 dollars.
00:09:13C'est un chiffre impressionnant, mais en fait,
00:09:18si l'on considère l'ampleur de ce projet,
00:09:20sachant que BUN comptait 535 000 lignes de code SIG,
00:09:26si l'on pense à cette ampleur,
00:09:28et au temps qu'il faudrait à des humains pour le porter en Rust,
00:09:32alors les 160 000 dollars ne semblent peut-être pas si élevés,
00:09:36selon l'endroit où vous vous trouvez.
00:09:38Néanmoins, il est clair qu'aucun projet open source
00:09:43ne serait capable de faire cela.
00:09:44Et la plupart des entreprises ne seraient probablement pas en mesure
00:09:47ou ne voudraient pas dépenser cette somme pour un portage.
00:09:50C'est possible parce que BUN fait partie d'Anthropic.
00:09:54Et bien sûr, c'est aussi un joli coup marketing
00:09:58pour Anthropic.
00:09:59Ce n'était peut-être pas l'intention principale.
00:10:03Je ne le sais pas.
00:10:04Mais bien sûr, c'est un bon marketing.
00:10:06Il est important de garder tout cela à l'esprit.
00:10:08Néanmoins, dans cet article de blog,
00:10:10on apprend comment Jared a effectué ce portage
00:10:14ou comment il a réussi à le faire fonctionner.
00:10:18Et tout a commencé avec ce fichier MD de portage,
00:10:21qu'il a créé lors d'une discussion avec Claude,
00:10:25une discussion de trois heures,
00:10:26comme il l'a mentionné dans l'article,
00:10:28où il a essentiellement décidé avec Claude Code
00:10:32et les modèles Anthropic,
00:10:35à quoi ce fichier de portage MD devrait ressembler
00:10:37pour être capable de traduire le SIG en code Rust.
00:10:40Une fois qu'il l'a peaufiné et qu'il en a été satisfait,
00:10:44il l'a testé sur trois fichiers au départ.
00:10:46Et une fois qu'il a été satisfait,
00:10:48il a lancé Claude sur l'ensemble du code source de BUN.
00:10:53Dans cet article de blog,
00:10:54il précise qu'il n'a pas simplement demandé à Claude
00:10:57de réécrire BUN en Rust, ne vous y trompez pas,
00:11:00mais qu'au lieu de cela, il a mis en place un système élaboré
00:11:03où il avait un agent principal,
00:11:07qui lançait aussi des sous-agents,
00:11:09pour effectuer le portage conformément au fichier MD.
00:11:13Il disposait également de deux agents de révision antagonistes
00:11:16qui révisaient le travail de l'agent principal une fois terminé,
00:11:19fournissaient des commentaires,
00:11:21puis un agent correcteur pour appliquer ces commentaires.
00:11:24Il a fait tourner tout cela en boucle
00:11:25et, bien sûr, distribué sur plusieurs arbres de travail
00:11:30pour traiter l'ensemble du code source
00:11:33et avancer progressivement.
00:11:35Dans l'article de blog,
00:11:35il mentionne avoir réécrit BUN en Rust
00:11:38en utilisant 50 flux de travail dynamiques dans Claude Code,
00:11:40qui sont ces flux qui lancent de nombreux sous-agents
00:11:43sur une période de 11 jours.
00:11:46Il a aussi un joli graphique dedans.
00:11:48En général, dans cet article,
00:11:49il y a de beaux graphiques
00:11:51qui rendent les choses plus faciles à digérer,
00:11:53qui montrent le nombre de commits créés
00:11:56et poussés les différents jours
00:11:58et aux différents moments de la journée.
00:12:00Donc tout cela s'est passé avec l'aide de boucles dans Claude Code,
00:12:04avec l'aide de beaucoup de sous-agents
00:12:05et le processus clair d'un agent principal,
00:12:08des agents de révision et de l'agent correcteur.
00:12:10Et puis il a aussi fait un autre chemin séparé,
00:12:15pour ainsi dire, pour faire fonctionner tous ces tests.
00:12:20Cela a apporté ses propres défis
00:12:22car la suite de tests est si large et complexe
00:12:25qu'il s'est heurté à diverses restrictions d'infrastructure
00:12:29car certains tests consomment beaucoup de mémoire,
00:12:31et exécuter de nombreux tests en parallèle,
00:12:33cela ne fonctionne donc pas.
00:12:34Mais finalement, il a réussi à faire fonctionner tout cela, également avec l'aide de l'IA,
00:12:39en exécutant les tests, en corrigeant le code,
00:12:42en relançant les tests, et ainsi de suite.
00:12:43Donc beaucoup de boucles, beaucoup d'agents et de sous-agents impliqués,
00:12:47naturellement, et beaucoup de jetons brûlés.
00:12:49165 000 dollars de jetons brûlés.
00:12:53Encore une fois, vous pouvez plonger plus profondément,
00:12:55et c'est ce que je recommanderais de faire
00:12:57si vous vous intéressez à tous les détails techniques.
00:12:59C'est un excellent article de blog documentant le voyage pour y parvenir.
00:13:03Mais en résumé, voilà comment le portage s'est déroulé en 11 jours
00:13:08avec tous ces agents et sous-agents distribués sur plusieurs flux de travail,
00:13:1250 de ces flux, comme nous l'avons appris, sur 11 jours,
00:13:17165 000 $ dépensés en jetons aux prix de l'API.
00:13:24Enfin, une fois terminé, dans l'article de blog,
00:13:29il mentionne que Bun 1.4 corrige divers bugs présents dans la dernière version SIG,
00:13:35qu'il est plus efficace en mémoire et plus petit.
00:13:38Et comme nous l'apprenons par la réponse d'Andrew Kelly, le créateur de SIG,
00:13:43certaines de ces améliorations auraient probablement pu être obtenues avec SIG.
00:13:47Mais cet article de blog est assez intéressant car il a été modifié.
00:13:53Il est moins rempli de colère maintenant qu'il ne l'était au début.
00:13:57La première version était pleine d'attaques personnelles,
00:14:00juste pour dire ensuite que ce n'était pas une attaque personnelle,
00:14:03mais c'était plein d'attaques personnelles.
00:14:05La dernière version, que je mettrai également en lien ci-dessous, est toujours assez épicée.
00:14:11Au bout du compte, on peut clairement dire en lisant la première version,
00:14:14mais aussi cette version,
00:14:16qu'Andrew, le créateur de SIG, et Jared, le créateur de Bun,
00:14:21ne deviendront plus, ou ne redeviendront plus, meilleurs amis.
00:14:26Maintenant, il remercie Bun de soutenir SIG, financièrement aussi,
00:14:31juste pour pratiquement rager sur tout ce portage et dire à quel point il n'aurait pas été nécessaire
00:14:41si le code de Bun avait été écrit en SIG approprié.
00:14:44Il indique très clairement qu'il ne pense pas que le dépôt Bun,
00:14:48la version SIG, avait une qualité de code élevée et que cela a conduit à de nombreux problèmes.
00:14:53Et cela peut être vrai ou non.
00:14:56Je pense qu'il est absolument possible que dans un projet de l'envergure de Bun,
00:15:01se déplaçant à la vitesse à laquelle Bun se déplace,
00:15:06la qualité du code n'ait pas été à la hauteur des normes du créateur de SIG.
00:15:12On pourrait certainement arguer que la plupart des projets de code
00:15:15n'ont pas nécessairement la meilleure qualité de code, cependant.
00:15:18Donc vous pouvez en penser ce que vous voulez.
00:15:21Je vais en rester là.
00:15:24J'ai le sentiment que l'article de blog de réponse est assez faible
00:15:29parce qu'il est tellement empreint de colère.
00:15:33Il contient quelques points valides.
00:15:35Comme, par exemple, dans l'article de blog que Jared rédige,
00:15:40il mentionne que le portage du SIG vers Rust a été validé,
00:15:46bien sûr, avec tous ces agents réviseurs,
00:15:48mais aussi en exécutant la suite de tests et en la faisant fonctionner.
00:15:51Et Andrew déclare correctement que, bien sûr, cette même suite de tests
00:15:56aurait dû ou n'aurait pas dû suffire à prouver que la version SIG est excellente.
00:16:00Alors peut-être que la suite de tests aurait dû être améliorée, elle aussi.
00:16:04Quoi qu'il en soit, ces deux-là ne deviendront clairement pas meilleurs amis.
00:16:09Et je n'ai pas d'opinion sur le fait de savoir si SIG ou Rust est le langage de batterie en général ou pour Bun.
00:16:17Je crois, cependant, qu'avec l'IA, Rust, son modèle de mémoire et le fait
00:16:23que vous obteniez des erreurs de compilation pour de nombreux problèmes liés à la mémoire, est un avantage énorme,
00:16:30surtout à l'ère de l'IA, car, bien sûr, tout ce portage est vraiment impressionnant
00:16:38en ce qui concerne l'utilisation de l'IA.
00:16:41Et bien sûr, c'est une manière d'utiliser l'IA que la plupart d'entre nous ne pourront pas se permettre
00:16:45ou ne voudront pas se permettre dans les entreprises.
00:16:48Mais c'est impressionnant que l'IA ait pu faire cela.
00:16:52Et ce n'est pas du code « vibe » ou juste du « YOLO prompting ».
00:16:56Il y a un processus clair derrière tout cela.
00:16:59Beaucoup de réflexion a été consacrée à cela, ce que j'espère avoir clarifié, et qui devient définitivement clair
00:17:05si vous plongez dans les détails techniques.
00:17:08Mais avec toute la planification, toute l'itération avec la configuration, avec la façon dont cela a été abordé,
00:17:13il est clair que ce n'était pas juste une seule invite lancée au hasard.
00:17:17Et puis nous verrons où cela nous mène, cela montre ce que vous pouvez faire avec l'IA.
00:17:21Et bien sûr, porter une base de code d'un langage à un autre est un très bon cas d'utilisation pour l'IA.
00:17:27Si vous y réfléchissez, l'IA peut, bien sûr, lutter avec l'écriture de nouveau code.
00:17:32Il se peut qu'elle n'écrive pas le code que vous vouliez écrire, qu'elle ne suive pas les conventions de code
00:17:36ou les styles que vous vouliez suivre, et elle peut aussi gâcher des choses.
00:17:40Maintenant, l'IA est définitivement incroyable pour construire de nouveaux logiciels, aussi.
00:17:43Mais vous faites face à un ensemble différent de problèmes là avec un portage.
00:17:47L'énorme avantage est que vous avez une base de code que l'IA peut simplement regarder et traduire,
00:17:53ce qui est quelque chose que l'IA peut faire, et vous avez une suite de tests là-bas.
00:17:57Il y a donc beaucoup de choses sur lesquelles s'appuyer.
00:17:59C'est un bon cas d'utilisation pour l'IA, semble-t-il, et comme ce portage le prouve clairement.
00:18:04Et je pense que c'est le point le plus intéressant à retenir ici.
00:18:08Également le fait que vous pouvez vous attaquer à des projets qui auraient été tout simplement impossibles
00:18:12à aborder auparavant.
00:18:13Encore une fois, pas pour tout le monde, mais pour certaines entreprises de certaines tailles.
00:18:18Cela peut être intéressant.
00:18:19Moderniser des logiciels hérités avec l'aide de l'IA peut ou pourrait être un excellent cas d'utilisation.
00:18:26Et cela montre et prouve que cela peut être fait.
00:18:30Maintenant, bien sûr, BUN 1.4 n'est pas encore sorti.
00:18:32Nous verrons si tout s'effondre et s'ils doivent faire marche arrière dans un mois.
00:18:36On ne peut pas totalement l'exclure, mais je ne pense personnellement pas que cela arrivera.
00:18:40Il est déjà utilisé en production par certains adeptes précoces, comme la CLI Cloud Code.
00:18:47Il a été testé et examiné de manière approfondie, même si, bien sûr, par l'IA, et non par des réviseurs humains.
00:18:54Mais je suis assez confiant dans le fait que cela fonctionnera et je trouve que c'est un exploit assez impressionnant et aussi une utilisation assez impressionnante de l'IA.
00:19:03Mais comme toujours, je suis également intéressé d'entendre ce que vous en pensez.