<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Papy Dev - Histoires de la Tech</title><description>Papy Dev, aka Maxime Gonzalez, partage des histoires passionnantes sur la tech.</description><link>https://papydev.fr/</link><language>fr-fr</language><atom:link href="https://papydev.fr/rss.xml" rel="self" type="application/rss+xml" xmlns:atom="http://www.w3.org/2005/Atom"/><item><title>ReactJS - Pourquoi React a-t-il été créé ? Et quels irritants a-t-il résolus ? ⚛️/</title><link>https://papydev.fr/blog/1/</link><guid isPermaLink="true">https://papydev.fr/blog/1/</guid><pubDate>Sun, 25 Aug 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Tu t&apos;es déjà demandé pourquoi React a fait un tel carton depuis son lancement par Facebook en 2013 ? 🤔 C&apos;est pas juste parce que c&apos;est un buzzword ou un truc que tout le monde utilise. React a été conçu pour résoudre des vrais problèmes de développeurs.&lt;/p&gt;&lt;p&gt;Retour au début des années 2010. Les développeurs front-end galéraient avec des interfaces utilisateurs de plus en plus complexes. À chaque interaction utilisateur, il fallait mettre à jour plusieurs parties de la page web, ce qui impliquait des tonnes de manipulations du DOM (Document Object Model) et une sacrée pagaille de code spaghetti. 🍝 On perdait du temps, c&apos;était galère à maintenir, et le résultat n&apos;était pas toujours fluide pour l&apos;utilisateur.&lt;/p&gt;&lt;p&gt;C’est là que Facebook a eu l&apos;idée de React : une bibliothèque JavaScript qui permet de créer des interfaces utilisateur réactives et performantes. React a introduit le concept de composants, des morceaux de code réutilisables qui gèrent leur propre état et peuvent être assemblés pour créer des interfaces complexes. Fini le temps des énormes fichiers JavaScript et des mises à jour manuelles du DOM. Maintenant, tu construis ton UI comme un LEGO, pièce par pièce. 🧩&lt;/p&gt;&lt;p&gt;L&apos;un des plus gros irritants auquel React a répondu, c’est la gestion compliquée de l&apos;état des applications. Avec des applications web dynamiques, l&apos;état (ou les données) change souvent, et il faut que l&apos;UI suive sans se casser. React a introduit un système simple mais puissant pour gérer ces changements d’état avec ce qu’on appelle le &quot;virtual DOM&quot;. Au lieu de mettre à jour le DOM complet à chaque changement (ce qui est super coûteux en termes de performance), React utilise une version virtuelle du DOM, compare les changements et n’update que ce qui est nécessaire. Résultat ? Des performances optimisées et un code beaucoup plus facile à maintenir ! 🚀&lt;/p&gt;&lt;p&gt;Et puis, il y avait aussi le problème de la réutilisabilité. Avant React, chaque projet repartait de zéro ou presque. Avec ses composants encapsulés, React permet de réutiliser du code facilement, ce qui accélère le développement et réduit les bugs. C’est comme si tu avais une boîte à outils pleine de pièces prêtes à l’emploi ! 🔧&lt;/p&gt;&lt;p&gt;Donc, si tu cherches à construire des applications web modernes, performantes et faciles à maintenir, React est probablement le framework qu&apos;il te faut. 💡&lt;/p&gt;</content:encoded></item><item><title>Vue.js - La simplicité au service de la performance ! 🌿/</title><link>https://papydev.fr/blog/2/</link><guid isPermaLink="true">https://papydev.fr/blog/2/</guid><pubDate>Mon, 26 Aug 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Si tu cherches un framework qui allie la simplicité d’utilisation à la puissance, alors tu dois absolument connaître Vue.js. Mais pourquoi Vue.js a-t-il été créé, et quels irritants a-t-il résolus pour les développeurs ? 🤔&lt;/p&gt;&lt;p&gt;Remontons à 2014, quand Evan You, ancien ingénieur chez Google, décide de créer Vue.js. À l&apos;époque, il y avait deux géants sur le marché des frameworks JavaScript : AngularJS, qui était lourd et complexe, et React, qui nécessitait une certaine courbe d&apos;apprentissage et une approche un peu différente pour les développeurs habitués à d&apos;autres frameworks. Vue.js est né d’une idée simple : prendre le meilleur des deux mondes. Evan voulait un outil qui soit facile à apprendre, mais assez puissant pour construire des applications dynamiques et interactives. 💡&lt;/p&gt;&lt;p&gt;L’un des irritants majeurs auquel Vue.js répond, c’est la complexité inutile. Pour beaucoup de développeurs, la configuration et la syntaxe d&apos;Angular ou même de React pouvaient sembler un peu intimidantes. Vue.js, en revanche, a été conçu avec une philosophie de progressive enhancement, c’est-à-dire qu’il est facile à intégrer dans des projets déjà existants. Tu veux juste ajouter une petite fonctionnalité réactive ? Pas de souci, ajoute Vue.js comme tu le ferais avec une simple bibliothèque JavaScript. Tu veux construire une application complète ? Vue est aussi là pour ça. C’est un framework progressif, qui te permet de commencer petit et de grandir avec ton projet. 🌱&lt;/p&gt;&lt;p&gt;Un autre gros point fort de Vue.js, c’est son écosystème riche et flexible. Vue offre des outils comme Vue CLI pour démarrer rapidement un projet, Vue Router pour gérer les routes, et Vuex pour la gestion de l’état. Mais tout cela reste optionnel et peut être adopté à mesure que ton application devient plus complexe. Pas besoin de tout charger dès le début, ce qui te donne une performance optimisée et une expérience utilisateur fluide. ⚡&lt;/p&gt;&lt;p&gt;Vue.js est aussi connu pour sa documentation claire et accessible. Contrairement à d’autres frameworks où tu dois souvent fouiller à travers des tonnes de pages et de tutos pour trouver une réponse, Vue te guide avec des exemples simples et des explications détaillées. C’est comme avoir un guide qui te tient la main tout au long du voyage. 🗺️&lt;/p&gt;&lt;p&gt;Aujourd’hui, Vue.js est utilisé par des entreprises comme Alibaba, Xiaomi, et même Nintendo. Pourquoi ? Parce qu’il combine la puissance avec la simplicité, rendant le développement front-end agréable et efficace. 🎮&lt;/p&gt;</content:encoded></item><item><title>Angular - L’arme secrète pour les applis web ambitieuses !/</title><link>https://papydev.fr/blog/3/</link><guid isPermaLink="true">https://papydev.fr/blog/3/</guid><pubDate>Tue, 27 Aug 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Tu te souviens de la première fois que tu as entendu parler d&apos;Angular ? À l’époque, c’était un sacré bazar dans le monde du développement front-end. On avait des dizaines de frameworks et de bibliothèques, chacun avec ses propres idées de génie, mais aussi ses propres galères. Alors pourquoi Angular a-t-il été créé, et surtout, quel problème venait-il résoudre ?&lt;/p&gt;&lt;p&gt;Retour en 2010. Les développeurs web s’arrachaient les cheveux avec des applis complexes et des architectures spaghetti. Il manquait un outil qui puisse tout structurer, un framework qui prenne en charge les soucis de gestion d&apos;état, de dépendances et de mises à jour du DOM sans trop de prise de tête. C’est là qu’AngularJS, la première version, est arrivé comme une bouffée d’air frais. Angular n’était pas juste un framework, c’était une véritable plateforme pour construire des applications web robustes et évolutives. 💪&lt;/p&gt;&lt;p&gt;Les irritants auxquels Angular répondait ? Tout d’abord, l’absence de structure claire dans les projets front-end. Avec Angular, Google a introduit un modèle basé sur le MVVM (Model-View-ViewModel) et plus tard le MVC (Model-View-Controller), ce qui a permis aux développeurs de mieux organiser leur code et de le rendre plus maintenable. Finis les projets où tout était mélangé et où chaque modification devenait un calvaire !&lt;/p&gt;&lt;p&gt;Ensuite, il y avait le problème de synchronisation des données entre le front-end et le back-end. Angular a introduit le concept de two-way data binding. Pour la première fois, les développeurs pouvaient synchroniser automatiquement l’interface utilisateur avec le modèle de données, réduisant drastiquement les bugs et les incohérences. C&apos;était une révolution.&lt;/p&gt;&lt;p&gt;Aujourd’hui, avec Angular (oui, le nouveau, pas le JS 😉), on est passé à un niveau supérieur. Avec son système de composants, ses services injectables, et sa gestion des routes, Angular est devenu un framework ultra-complet qui s’adapte aux besoins des projets modernes. C&apos;est le choix parfait quand tu veux une solution &quot;clé en main&quot; pour développer des applications web à grande échelle.&lt;/p&gt;&lt;p&gt;Alors, Angular, tu l&apos;as adopté ou tu es encore en train de te battre avec ton ancien framework ?&lt;/p&gt;</content:encoded></item><item><title>Next.js - Le futur du web, entre statique et dynamique ! 🌐⚡/</title><link>https://papydev.fr/blog/4/</link><guid isPermaLink="true">https://papydev.fr/blog/4/</guid><pubDate>Wed, 28 Aug 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Si tu t’intéresses au développement web moderne, tu as sûrement déjà entendu parler de Next.js. Mais pourquoi ce framework est-il devenu si populaire, et surtout, quels problèmes vient-il résoudre pour les développeurs ? 🤔&lt;/p&gt;&lt;p&gt;Next.js a été créé par Vercel en 2016 pour simplifier et améliorer le développement d&apos;applications React. À cette époque, développer une application React signifiait gérer toute la configuration soi-même : bundling, routing, SSR (server-side rendering), SEO, etc. C’était lourd, complexe et souvent frustrant. 😩 Next.js est arrivé avec une solution clé en main qui prend en charge tous ces aspects, tout en restant flexible.&lt;/p&gt;&lt;p&gt;L&apos;un des premiers irritants auxquels Next.js répond, c’est le rendering côté serveur (SSR). Avant Next.js, le rendu des pages dans React se faisait essentiellement côté client, ce qui posait des problèmes de performance, de temps de chargement et surtout de SEO. Avec Next.js, tu peux facilement rendre des pages côté serveur, ce qui permet de charger plus vite et de mieux référencer ton site sur Google. 🚀&lt;br&gt;&lt;/p&gt;&lt;p&gt;Mais ce n’est pas tout. Next.js a aussi introduit une solution simple pour le rendu statique (SSG - Static Site Generation), ce qui permet de pré-générer des pages à la compilation. Tu peux donc créer des pages ultra-performantes, servies directement en HTML, tout en bénéficiant des avantages de React pour l&apos;interactivité. 🔥&lt;br&gt;&lt;/p&gt;&lt;p&gt;Ensuite, il y a la gestion du routing. Avec React, configurer des routes nécessitait un peu de configuration supplémentaire. Next.js élimine cette étape fastidieuse avec son file-based routing : chaque fichier dans le dossier `pages/` devient automatiquement une route. Tu crées une nouvelle page, elle est déjà accessible via une URL. Simplissime. 👌&lt;/p&gt;&lt;p&gt;Et bien sûr, Next.js brille par sa flexibilité. Que tu veuilles créer un site statique, dynamique ou un hybride des deux, tu peux tout faire dans le même projet. Besoin de générer des pages statiques pour des performances maximales ? Fait. Besoin de pages avec du contenu dynamique rendu côté serveur ? Pas de souci, tu as aussi ça avec getServerSideProps et getStaticProps. 🛠️&lt;/p&gt;&lt;p&gt;Sans oublier les outils que Next.js te donne pour optimiser les performances : gestion des images optimisée, support intégré de TypeScript, prérendering automatique, et une intégration fluide avec des services comme Vercel pour déployer ton site en quelques clics. 🌍&lt;/p&gt;&lt;p&gt;Aujourd&apos;hui, #Next.js est adopté par des entreprises comme Netflix, GitHub, et même TikTok. Pourquoi ? Parce qu&apos;il offre la meilleure expérience pour construire des applications React modernes, performantes et prêtes pour le futur. 💡&lt;/p&gt;</content:encoded></item><item><title>Nuxt.js - Vue.js sous stéroïdes pour le web moderne ! 💥🌍/</title><link>https://papydev.fr/blog/5/</link><guid isPermaLink="true">https://papydev.fr/blog/5/</guid><pubDate>Thu, 29 Aug 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Si tu adores Vue.js mais que tu veux pousser tes projets encore plus loin avec du server-side rendering (SSR), du routing automatique, ou des pages statiques ultra-performantes, alors Nuxt.js est probablement ton nouveau meilleur allié. Mais pourquoi Nuxt a-t-il été créé, et quels problèmes résout-il pour les développeurs ? 🤔&lt;br&gt;&lt;/p&gt;&lt;p&gt;Nuxt.js est né en 2016 pour simplifier et améliorer le développement d’applications web basées sur Vue.js, en intégrant des fonctionnalités que tout le monde veut (mais sans les tracas). Si tu as déjà démarré un projet Vue classique, tu sais que configurer le SSR (server-side rendering), la génération de pages statiques, ou encore la gestion des routes manuellement, c’est parfois compliqué et répétitif. C’est là que Nuxt entre en scène pour automatiser et simplifier tout ça. 🚀&lt;/p&gt;&lt;p&gt;Le premier gros irritant auquel Nuxt répond, c’est le server-side rendering. Avec Vue.js pur, il faut se plonger dans pas mal de configurations si tu veux générer tes pages côté serveur pour des raisons de performance ou de SEO. Nuxt, lui, te donne du SSR clé en main. Pas besoin de réinventer la roue, il te suffit de l’activer, et tu bénéficies instantanément d’un rendu ultra-rapide et optimisé pour les moteurs de recherche. 📈&lt;/p&gt;&lt;p&gt;Ensuite, il y a le routing automatique. Plutôt que de devoir définir manuellement chaque route, Nuxt crée tes routes automatiquement en fonction des fichiers que tu mets dans ton dossier pages/. C’est aussi simple que ça. Tu veux ajouter une nouvelle page ? Crée juste un fichier dans pages/ et c’est bon, Nuxt s’occupe du reste. Ça te fait gagner un temps fou, et ton code reste propre et facile à gérer. 👌&lt;/p&gt;&lt;p&gt;Nuxt, c’est aussi la puissance de la génération statique. Avec la fonction Nuxt Generate, tu peux transformer ton site en un site statique super rapide, idéal pour des blogs, des sites vitrines, ou même des e-commerces légers. Il combine le meilleur des deux mondes : la réactivité de Vue.js avec les performances d’un site HTML pré-généré. 💡&lt;/p&gt;&lt;p&gt;Un autre point fort, c’est la gestion des données. Avec des hooks comme asyncData, tu peux récupérer des données côté serveur avant de rendre la page. Fini les chargements en décalé qui peuvent frustrer l’utilisateur. Tout est prêt dès le premier affichage, et c’est ultra fluide. ⚡&lt;/p&gt;&lt;p&gt;Enfin, Nuxt t’offre un écosystème riche et bien pensé. Que tu veuilles ajouter un système d’authentification, des animations, ou des optimisations SEO, tout est disponible via des modules Nuxt officiels ou communautaires. Pas besoin de partir à la chasse aux dépendances externes, tout est bien intégré et documenté. 📦&lt;/p&gt;&lt;p&gt;Aujourd’hui, Nuxt.js est utilisé par des entreprises comme Ubisoft, Alibaba, et Decathlon, preuve de sa robustesse et de sa capacité à gérer des projets web ambitieux. 💼&lt;/p&gt;</content:encoded></item><item><title>Vanilla JS - Le retour aux sources du web ! 🌿💻/</title><link>https://papydev.fr/blog/6/</link><guid isPermaLink="true">https://papydev.fr/blog/6/</guid><pubDate>Fri, 30 Aug 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Dans un monde rempli de frameworks et de bibliothèques JavaScript comme #React, #Vue, ou #Angular, il est facile d’oublier #VanillaJS. Mais c’est quoi exactement, Vanilla JS, et pourquoi on devrait encore s’y intéresser aujourd’hui ? 🤔&lt;/p&gt;&lt;p&gt;Spoiler : Vanilla JS n’est pas un framework. C’est juste du JavaScript pur. Oui, le bon vieux JavaScript, sans librairies ni frameworks, celui qui tourne directement dans le navigateur. Avant l’explosion des outils modernes, les développeurs construisaient tout en Vanilla JS, et il reste une solution solide pour certains projets. Alors, pourquoi revenir aux bases ?&lt;/p&gt;&lt;p&gt;Le premier irritant auquel Vanilla JS répond, c’est la complexité inutile. Les frameworks sont géniaux pour des applications complexes, mais pour des projets plus simples, ils peuvent ajouter une surcharge inutile. Avec Vanilla JS, pas besoin de configurer un environnement complexe, de gérer des dépendances ou d’installer un milliard de packages. Tu écris ton code, tu l’injectes dans ton HTML, et c’est parti. 🚀&lt;/p&gt;&lt;p&gt;Ensuite, il y a la question de la performance. Quand tu utilises un framework comme React ou Angular, tu embarques tout un tas de fonctionnalités dont tu n’as peut-être pas besoin. Avec Vanilla JS, tu ne charges que ce que tu écris. Résultat ? Un temps de chargement plus rapide et une meilleure expérience utilisateur, surtout pour des projets légers comme des sites vitrines, des landing pages ou des scripts personnalisés. ⚡&lt;/p&gt;&lt;p&gt;Un autre avantage majeur de Vanilla JS, c’est qu’il t’oblige à maîtriser les bases. Beaucoup de développeurs commencent directement avec un framework, sans vraiment comprendre comment fonctionne JavaScript sous le capot. En revenant à Vanilla JS, tu prends le temps de comprendre les fondamentaux : manipulation du DOM, événements, gestion des requêtes asynchrones… Ces compétences sont essentielles pour devenir un développeur JavaScript complet. 💪&lt;/p&gt;&lt;p&gt;Et ne t’inquiète pas, Vanilla JS a évolué avec le temps ! Aujourd’hui, avec des fonctionnalités modernes comme ES6+, tu peux écrire du JavaScript propre et efficace, sans avoir l’impression de coder en 1999. Entre les arrow functions, les promises, et les modules JavaScript, tu as accès à des outils puissants sans avoir besoin d’un framework au-dessus. 🛠️&lt;/p&gt;&lt;p&gt;Alors, pour les petits projets ou même pour affûter tes compétences, Vanilla JS reste une excellente option. C’est aussi un bon rappel que tout ne nécessite pas un framework. Parfois, la simplicité, c’est la clé. 🌟&lt;/p&gt;</content:encoded></item><item><title>JavaScript - La techno qu’on adore détester (ou qu’on déteste adorer, c’est selon)./</title><link>https://papydev.fr/blog/7/</link><guid isPermaLink="true">https://papydev.fr/blog/7/</guid><pubDate>Sat, 31 Aug 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Retour fin des années 90. On est sur Netscape Navigator, le web est encore un bébé. On clique, on charge des pages statiques… et c’est tout. Si tu voulais une page un peu “vivante”, avec des interactions, bah fallait carrément changer de page. Imagine aujourd’hui devoir recharger Facebook à chaque “like”. Insoutenable.&lt;/p&gt;&lt;p&gt;C’est là qu’un gars, Brendan Eich, débarque. En 10 jours chrono, il pond un truc qui allait tout changer : JavaScript. L’idée ? Offrir aux pages web la capacité d’être dynamiques. Ajoute une animation, valide un formulaire côté client, affiche un message sans aller chercher un serveur à 10 000 km. Bref, donner du mouvement et de la réactivité au web.&lt;/p&gt;&lt;p&gt;Le problème, c’est que cette prouesse express a laissé des cicatrices. Une syntaxe un peu bizarre, des comportements imprévisibles… À l’époque, personne ne pensait que JavaScript survivrait longtemps. C’était juste là pour “patcher” les failles du moment.&lt;/p&gt;&lt;p&gt;Mais voilà : les irritants qu’il réglait étaient tellement critiques qu’il est devenu un standard. Aujourd’hui, JS est partout. Dans ton navigateur, sur ton serveur (merci Node.js), dans tes applis mobiles et même dans ton frigo connecté si t’as un modèle un peu fancy.&lt;/p&gt;&lt;p&gt;C’est quoi la morale ?&lt;br&gt;Une techno n’a pas besoin d’être parfaite pour réussir. Elle doit juste résoudre un vrai problème, au bon moment.&lt;/p&gt;</content:encoded></item><item><title>Flutter - La magie d&apos;une seule base de code !/</title><link>https://papydev.fr/blog/8/</link><guid isPermaLink="true">https://papydev.fr/blog/8/</guid><pubDate>Sun, 01 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Quand on bosse sur une appli mobile, souvent, on doit jongler entre Android et iOS, ce qui veut dire deux bases de code, deux fois plus de boulot, et donc... deux fois plus de migraines ! C’est ici que Flutter a fait son entrée en mode &quot;super-héros&quot;. 🦸‍♂️&lt;/p&gt;&lt;p&gt;Flutter, c’est la réponse aux développeurs épuisés par les incompatibilités et les performances inégales. Google a voulu résoudre le problème des interfaces utilisateur non uniformes et du développement en silo. Ils ont cherché une solution pour écrire #UNE seule fois le code, mais pour qu’il fonctionne #PARTOUT. Et voilà, Flutter était né ! 🚀&lt;/p&gt;&lt;p&gt;Mais attends, ce n’est pas tout. Un autre irritant auquel Flutter répond : la lenteur du développement. Avec les approches traditionnelles, tu passes des heures à compiler pour voir les changements. Flutter, lui, te permet de voir tes modifs en temps réel avec le hot reload. Résultat : une boucle de feedback ultra-rapide, moins de frustration et un produit final qui arrive plus vite. C&apos;est pour contrer ça qu&apos;à été créé #SwiftUI et #Compose&lt;/p&gt;&lt;p&gt;Et puis, il y a le fameux problème de la consistance visuelle. Avant, tu pouvais avoir un design qui pétait la classe sur iOS, mais qui devenait vite moche sur Android. Grâce à Flutter, ce problème appartient au passé ! Avec ses widgets personnalisables, ton appli reste belle sur tous les devices, sans faire de compromis.&lt;/p&gt;&lt;p&gt;Alors, la prochaine fois que tu penses développement mobile, pense Flutter. Parce que pourquoi s’enfermer dans des complications inutiles quand tu peux faire simple et efficace ? 😉&lt;/p&gt;</content:encoded></item><item><title>React Native - Le pont entre le web et le mobile ! 📱/</title><link>https://papydev.fr/blog/9/</link><guid isPermaLink="true">https://papydev.fr/blog/9/</guid><pubDate>Mon, 02 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Quand on parle de développement d&apos;applications mobiles, il y a toujours eu cette grande question : comment créer une application qui fonctionne bien à la fois sur iOS et Android sans devoir tout coder deux fois ? 🤔 C&apos;est là que React Native entre en scène. Né en 2015 des cerveaux créatifs de Facebook, React Native a été créé pour une raison simple : simplifier le développement mobile cross-plateform. &lt;/p&gt;&lt;p&gt;Avant React Native, les développeurs avaient deux options pas très sexy. Soit ils créaient deux applications natives distinctes (une en Swift/Objective-C pour iOS et une autre en Java/Kotlin pour Android), soit ils optaient pour des solutions hybrides qui donnaient souvent des résultats pas terribles en termes de performance et de feeling natif. 😬 Ces approches demandaient non seulement plus de temps et de ressources, mais elles entraînaient aussi des soucis de maintenance avec des bases de code différentes.&lt;/p&gt;&lt;p&gt;React Native a changé la donne en permettant aux développeurs de coder en JavaScript tout en utilisant des composants natifs de chaque plateforme. Grâce à cette approche, une grande partie du code peut être partagée entre iOS et Android, ce qui réduit le temps de développement et les coûts, tout en maintenant des performances proches du natif. 🔄&lt;/p&gt;&lt;p&gt;L&apos;un des principaux irritants que React Native résout, c’est la complexité du développement cross-plateform. Tu n&apos;as plus besoin d&apos;être un expert en Swift et Java en même temps. Si tu connais déjà React, tu peux facilement te lancer dans le développement mobile avec React Native. Et même si tu n&apos;as jamais touché à React, le fait de n&apos;avoir à apprendre qu&apos;un seul langage (JavaScript) est un sacré avantage. 📚&lt;/p&gt;&lt;p&gt;Et puis, il y a l’irritant des mises à jour et de la maintenance. Avec deux bases de code séparées, chaque mise à jour ou nouveau feature demandait deux fois plus de travail. Avec React Native, tu réduis cette charge. En plus, grâce à la large communauté et aux nombreux plugins disponibles, tu peux ajouter des fonctionnalités avancées à ton appli sans réinventer la roue. 🚀&lt;/p&gt;&lt;p&gt;Aujourd&apos;hui, des entreprises comme Instagram, Airbnb, et même Tesla utilisent React Native pour leurs applications mobiles, prouvant qu&apos;on peut avoir des applis performantes, belles et robustes sans sacrifier le temps de développement. 🌍&lt;/p&gt;</content:encoded></item><item><title>Objective-C - L’ancien pilier du développement iOS ! 🍏📱/</title><link>https://papydev.fr/blog/10/</link><guid isPermaLink="true">https://papydev.fr/blog/10/</guid><pubDate>Tue, 03 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Avant qu’on ne parle que de Swift dans le monde du développement Apple, il y avait Objective-C. Mais pourquoi ce langage a-t-il été créé, et quels problèmes a-t-il résolus pour les développeurs ? 🤔&lt;/p&gt;&lt;p&gt;Retour aux années 80. À l&apos;époque, le développement d&apos;applications était un monde dominé par le C, un langage super puissant mais pas très orienté objets, donc pas idéal pour construire des applications graphiques interactives. C’est là qu&apos;Objective-C est arrivé : un mélange entre la puissance de C et la flexibilité de la programmation orientée objets. 🚀&lt;/p&gt;&lt;p&gt;Quand Apple a décidé de construire son écosystème iOS et macOS, ils voulaient un langage qui puisse tirer parti des performances brutes de C tout en étant capable de gérer des interfaces utilisateur complexes. Objective-C était parfaitement adapté. Sa syntaxe, même si elle pouvait paraître un peu étrange avec tous ses crochets et ses conventions, permettait de créer des applications robustes, tout en restant relativement proche du matériel. 🔧&lt;/p&gt;&lt;p&gt;L’un des principaux irritants auxquels Objective-C répondait, c’était la rigidité des langages comme C. Grâce à l’introduction des objets, Objective-C a permis de mieux structurer le code, de le rendre plus réutilisable et plus facile à maintenir. C’était une bouffée d’air frais pour les développeurs qui passaient des jours à manipuler des structures de données complexes à la main. Avec Objective-C, tu pouvais modéliser le monde réel beaucoup plus facilement. 🌍&lt;/p&gt;&lt;p&gt;Objective-C a aussi simplifié le développement d&apos;interfaces utilisateur avec Cocoa et Cocoa Touch, les frameworks d’Apple pour macOS et iOS. Ces outils étaient construits autour des concepts d’Objective-C, et permettaient de développer des applis avec des interfaces réactives, tout en gardant une performance optimale. ⚡&lt;/p&gt;&lt;p&gt;Alors pourquoi, malgré tous ses atouts, a-t-on vu l’arrivée de Swift ? Tout simplement parce que Objective-C, malgré sa puissance, était devenu un peu verbeux et complexe pour les nouveaux développeurs. Swift, avec sa syntaxe moderne et plus lisible, a pris le relais, mais Objective-C reste incontournable, surtout pour la maintenance de millions de lignes de code legacy qui font encore tourner des applications partout dans le monde. 💻&lt;/p&gt;</content:encoded></item><item><title>Swift - Le vent de fraîcheur dans l’écosystème Apple ! 🍃🍏/</title><link>https://papydev.fr/blog/11/</link><guid isPermaLink="true">https://papydev.fr/blog/11/</guid><pubDate>Wed, 04 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Swift, c’est un peu la révolution tranquille dans le monde du développement iOS et macOS. Mais pourquoi Apple a-t-il senti le besoin de créer Swift, alors que Objective-C tenait la route depuis des décennies ? 🤔&lt;/p&gt;&lt;p&gt;En 2014, quand Apple a lancé Swift, leur objectif était clair : créer un langage moderne, rapide, et sûr, sans les lourdeurs d&apos;Objective-C. À l’époque, Objective-C commençait à montrer des signes de fatigue. Sa syntaxe un peu déroutante (les fameux crochets 😅) et sa gestion complexe de la mémoire n’étaient plus en phase avec les standards modernes de développement.&lt;/p&gt;&lt;p&gt;Swift a été conçu pour résoudre plusieurs irritants majeurs. Le premier ? La lisibilité et la simplicité. Comparé à Objective-C, Swift est beaucoup plus facile à lire et à écrire. Fini les lignes de code verbeuses et les pièges syntaxiques : avec Swift, tu peux écrire des programmes propres et compréhensibles sans avoir à sacrifier la performance. 💡&lt;/p&gt;&lt;p&gt;Un autre problème auquel Swift répond, c’est la gestion de la mémoire. Avec Objective-C, tu devais gérer la mémoire manuellement, ce qui pouvait vite devenir un cauchemar (bonjour les fuites de mémoire !). Swift introduit un système de gestion automatique de la mémoire (ARC) qui fait le travail pour toi. Tu te concentres sur ton code, et Swift s&apos;occupe du reste. 🌟&lt;/p&gt;&lt;p&gt;Swift a aussi apporté une meilleure sécurité. Objective-C, avec ses pointeurs et sa compatibilité C, pouvait laisser place à des erreurs difficiles à déboguer. Swift, lui, est beaucoup plus strict : il force les développeurs à gérer les erreurs dès le départ, ce qui évite de nombreux bugs en production. 🚫🐛&lt;/p&gt;&lt;p&gt;Et bien sûr, Swift est rapide. Conçu pour être performant, il compile ton code de manière ultra-optimisée, permettant d’obtenir des applications aussi réactives que si elles étaient écrites en C ou Objective-C. C&apos;est d’ailleurs pour ça qu&apos;Apple l’a adopté pour ses propres projets internes. 🚀&lt;/p&gt;&lt;p&gt;Aujourd’hui, Swift est devenu le langage de choix pour développer des applications sur les plateformes d&apos;Apple. Avec sa syntaxe claire, sa gestion simplifiée des erreurs, et ses performances optimales, il a conquis le cœur des développeurs iOS, macOS, et même serveur. 🌍&lt;br&gt;&lt;/p&gt;</content:encoded></item><item><title>Kotlin - Le nouveau chouchou du développement Android ! 🤖🔥/</title><link>https://papydev.fr/blog/12/</link><guid isPermaLink="true">https://papydev.fr/blog/12/</guid><pubDate>Thu, 05 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Si tu as bossé sur des projets Android ces dernières années, tu as sûrement entendu parler de Kotlin. Mais pourquoi ce langage a-t-il été créé et quels irritants est-il venu résoudre pour les développeurs Android ? 🤔&lt;/p&gt;&lt;p&gt;Pendant des années, Java a été le langage de référence pour le développement Android. Mais Java, même s’il est puissant, est devenu un peu… disons, daté. Syntaxe verbeuse, gestion des nulls compliquée (le fameux &quot;NullPointerException&quot; 😱), et surtout un manque de modernité pour les nouveaux standards du développement. C’est dans ce contexte que JetBrains (les créateurs de IntelliJ IDEA) ont lancé Kotlin en 2011. Leur objectif ? Offrir un langage moderne, concis et totalement compatible avec Java, mais sans ses lourdeurs. 🌟&lt;/p&gt;&lt;p&gt;L&apos;un des premiers irritants que Kotlin a corrigé, c’est la syntaxe lourde de Java. Avec Kotlin, ton code est plus simple et plus lisible. Fini les répétitions inutiles et les blocs de code à rallonge. Par exemple, ce qui te prenait 10 lignes en Java peut souvent se réduire à 3 ou 4 en Kotlin. 👌&lt;/p&gt;&lt;p&gt;Un autre gros problème résolu par Kotlin : la gestion des nulls. Si tu as déjà codé en Java, tu as probablement déjà rencontré le cauchemar des erreurs NullPointerException. Kotlin introduit un système de gestion des types nullable/non-nullable qui te protège de ces erreurs dès la phase de compilation. Résultat ? Moins de bugs en production, et ça, c&apos;est un vrai soulagement pour les développeurs. 😅&lt;br&gt;&lt;/p&gt;&lt;p&gt;Kotlin, c’est aussi la compatibilité totale avec Java. Si tu as déjà un projet en Java, pas besoin de tout réécrire : tu peux ajouter du Kotlin petit à petit. Les deux langages cohabitent parfaitement, ce qui rend la transition ultra facile. Pas de prise de tête avec des migrations interminables. 🛠️&lt;/p&gt;&lt;p&gt;Autre atout majeur de Kotlin : il a été conçu pour être multiplateforme. Avec Kotlin Multiplatform, tu peux partager une partie de ton code (comme la logique métier) entre Android et iOS, tout en utilisant du code natif pour chaque plateforme. Ça te permet de gagner du temps, tout en profitant des performances natives de chaque OS. 🌍&lt;/p&gt;&lt;p&gt;Aujourd’hui, Google a fait de Kotlin son langage de prédilection pour Android. Plus moderne, plus sûr, et plus fun à utiliser, il a conquis les développeurs du monde entier. 💥&lt;/p&gt;</content:encoded></item><item><title>Dart - Le complice idéal pour Flutter ! 🦄📱/</title><link>https://papydev.fr/blog/13/</link><guid isPermaLink="true">https://papydev.fr/blog/13/</guid><pubDate>Fri, 06 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Si tu t’intéresses au développement mobile avec #Flutter, tu as forcément croisé #Dart sur ton chemin. Mais pourquoi Google a-t-il créé Dart et quels irritants est-il venu résoudre pour les développeurs ? 🤔&lt;br&gt;&lt;/p&gt;&lt;p&gt;Avant Dart, les développeurs cherchaient une solution unique pour développer des applications performantes sur plusieurs plateformes, sans sacrifier la qualité ni devoir apprendre plusieurs langages. Des solutions comme JavaScript dominaient, mais elles n&apos;étaient pas parfaites, notamment en termes de performances et de structure pour des applications complexes. C’est là que Dart a vu le jour, en 2011, avec une mission claire : fournir un langage rapide, structuré, et moderne, optimisé pour les interfaces utilisateurs riches et conçu pour le cross-platform. 🚀&lt;/p&gt;&lt;p&gt;Un des principaux irritants auquel Dart répond, c’est la performance. Dart compile directement en code natif (via AOT - Ahead of Time) ou en JavaScript (si nécessaire pour le web), ce qui permet à tes applications d’être ultra rapides, que ce soit sur mobile ou sur le web. Pas de compromis sur la fluidité, et ça, c’est un vrai plus, surtout pour les développeurs de Flutter qui cherchent à construire des interfaces réactives. ⚡&lt;/p&gt;&lt;p&gt;Ensuite, il y a la simplicité et la lisibilité. Dart ressemble à des langages que tu connais déjà, comme JavaScript, Java ou C#. Sa syntaxe est claire, ce qui facilite l&apos;apprentissage, surtout si tu viens du monde web. Et comme Dart est pensé pour le développement d’UI, il t&apos;offre des fonctionnalités comme les async/await et un système de types puissant qui te permet de gérer efficacement les futures, les streamings de données, et les opérations asynchrones. 🌐&lt;/p&gt;&lt;p&gt;Dart résout également le problème de la maintenabilité dans les gros projets. Contrairement à JavaScript où la gestion des projets complexes devient rapidement un casse-tête, Dart t’impose une structure claire. Ça veut dire que ton code reste propre, bien organisé et facile à faire évoluer. Pas de projet spaghetti ! 🍝&lt;/p&gt;&lt;p&gt;Et bien sûr, Dart est le langage natif de Flutter. Grâce à cette association, tu peux développer des applications cross-platformavec une seule base de code, qui fonctionne aussi bien sur iOS, Android, que sur le web et même desktop ! Un vrai gain de temps pour les développeurs qui cherchent à toucher le maximum d’utilisateurs sans gérer plusieurs bases de code. 🌍&lt;/p&gt;</content:encoded></item><item><title>Cordova - Le pont entre le web et le mobile ! 📱🌍/</title><link>https://papydev.fr/blog/14/</link><guid isPermaLink="true">https://papydev.fr/blog/14/</guid><pubDate>Sat, 07 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Si tu as déjà voulu transformer tes compétences en développement web en une application mobile, tu as sûrement croisé Apache Cordova. Mais pourquoi Cordova a-t-il été créé et quels problèmes vient-il résoudre pour les développeurs ? 🤔&lt;/p&gt;&lt;p&gt;Avant l&apos;arrivée de Cordova (anciennement PhoneGap), développer une application mobile signifiait devoir maîtriser plusieurs langages natifs : Java pour Android et Objective-C (ou Swift) pour iOS. Pour les développeurs web, ça représentait un énorme défi. Il fallait tout réapprendre, recruter des spécialistes ou développer deux applis distinctes. C’était coûteux, lent et franchement démotivant. 😩&lt;/p&gt;&lt;p&gt;C’est là que Cordova est arrivé avec une solution brillante : pourquoi ne pas utiliser des technologies web (HTML, CSS, JavaScript) pour créer des applications mobiles ? Cordova te permet de créer une app mobile avec un code unique, en encapsulant ta web app dans un shell natif. Tu n&apos;as plus besoin d’écrire deux applications distinctes, tu crées tout en JavaScript et Cordova s’occupe de l’emballage pour iOS, Android, et même d&apos;autres plateformes. 🚀&lt;/p&gt;&lt;p&gt;L’un des principaux irritants auxquels Cordova répond, c’est donc la fragmentation des langages entre les plateformes. Grâce à Cordova, tu écris une fois, et tu déploies partout. Tu n’as pas à apprendre Swift ou Java, ni à maintenir deux bases de code différentes. Un gain de temps énorme pour les développeurs web qui veulent se lancer dans le mobile sans devoir repartir de zéro. 🌐&lt;/p&gt;&lt;p&gt;Cordova s&apos;est aussi attaqué au problème de l&apos;accès aux fonctionnalités natives. Avant, si tu voulais accéder à l’appareil photo, aux contacts, ou encore au GPS, il te fallait plonger dans le code natif. Avec Cordova, tu utilises des plugins qui te permettent d’accéder à toutes ces fonctionnalités via JavaScript. 📸🗺️&lt;/p&gt;&lt;p&gt;Cependant, comme toute solution hybride, Cordova n&apos;est pas sans limites. Pour les applications nécessitant de lourdes animations ou des performances ultra-optimisées, les frameworks natifs comme Swift ou Kotlin restent plus efficaces. Mais pour des applications simples ou des MVP, Cordova est une solution rapide et efficace pour transformer une application web en app mobile. ⚡&lt;/p&gt;&lt;p&gt;Aujourd’hui, des milliers d’applications fonctionnent grâce à Cordova, prouvant que ce framework reste une option solide pour les développeurs qui veulent rapide, simple et efficace. 💡&lt;/p&gt;</content:encoded></item><item><title>Expo - Le raccourci vers des applis mobiles avec React Native ! 🚀📱/</title><link>https://papydev.fr/blog/15/</link><guid isPermaLink="true">https://papydev.fr/blog/15/</guid><pubDate>Sun, 08 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Si tu as déjà mis les mains dans React Native, tu sais que la configuration et le déploiement peuvent parfois être… un peu pénibles. 😅 C’est là qu’Expo entre en scène, avec un objectif simple : rendre le développement mobile avec React Native plus rapide, plus facile, et plus accessible. Mais pourquoi Expo a-t-il été créé et quels irritants résout-il ? 🤔&lt;/p&gt;&lt;p&gt;Avant Expo, pour démarrer un projet en React Native, il fallait tout configurer à la main : gérer Xcode pour iOS, installer Android Studio pour Android, s’assurer que toutes les dépendances fonctionnent bien ensemble… Bref, un vrai marathon avant même d’écrire une seule ligne de code. 🏃‍♂️ &lt;/p&gt;&lt;p&gt;Expo, lancé en 2016, a été conçu pour éliminer ces étapes frustrantes. Il te permet de démarrer et de développer des applications mobiles sans avoir à installer ou configurer quoi que ce soit côté natif. En gros, tu te concentres sur le code JavaScript/React Native, et Expo s’occupe du reste. 🎯&lt;/p&gt;&lt;p&gt;L’un des irritants majeurs auxquels Expo répond, c’est le temps de démarrage Au lieu de perdre des heures à configurer ton environnement de développement, tu démarres instantanément avec Expo. Il te fournit un environnement prêt à l&apos;emploi, où tu peux créer, tester et déployer ton application avec des commandes simples. Plus besoin de te casser la tête avec des simulateurs ou des émulateurs compliqués. 🚀&lt;/p&gt;&lt;p&gt;Un autre problème auquel Expo s&apos;attaque, c&apos;est la gestion des fonctionnalités natives. Avec React Native, tu dois parfois plonger dans du code natif pour utiliser certaines fonctionnalités comme la caméra, la géolocalisation ou les notifications push. Expo simplifie tout ça avec des *mAPI prêtes à l&apos;emploi qui te permettent d&apos;accéder à ces fonctionnalités sans toucher au code natif. Parfait pour ceux qui veulent rester dans l’écosystème JavaScript tout en exploitant la puissance des fonctionnalités mobiles. 📸📍&lt;/p&gt;&lt;p&gt;Expo rend aussi le déploiement beaucoup plus simple. Avec Expo Go, tu peux tester ton application directement sur ton téléphone sans passer par un build complet. Et pour publier ton app, Expo propose des outils comme Expo Publish et Expo Build, qui te permettent de déployer ton app sur l&apos;App Store ou Google Play *len quelques clics, sans plonger dans les détails techniques du déploiement natif. 🌍&lt;/p&gt;&lt;p&gt;Certes, Expo a ses limites : si tu as besoin de fonctionnalités très spécifiques ou de customisation native, tu devras peut-être &quot;ejecter&quot; ton projet d’Expo. Mais pour 90% des applications, Expo te permet de faire tout ce dont tu as besoin, rapidement et efficacement.&lt;/p&gt;</content:encoded></item><item><title>Capacitor - Le pont entre le web et le natif, nouvelle génération ! ⚡📱/</title><link>https://papydev.fr/blog/16/</link><guid isPermaLink="true">https://papydev.fr/blog/16/</guid><pubDate>Mon, 09 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Si tu cherches une alternative moderne à Cordova pour développer des apps mobiles avec des technologies web, Capacitor est peut-être la solution que tu attends. Mais pourquoi Capacitor a-t-il été créé et quels irritants vient-il résoudre pour les développeurs ? 🤔&lt;/p&gt;&lt;p&gt;Capacitor a été lancé par Ionic en 2019 pour répondre aux limitations que les développeurs rencontraient avec Cordova, le pionnier des solutions hybrides. Bien que Cordova ait ouvert la voie en permettant de développer des applications mobiles avec du HTML, CSS et JavaScript, il commençait à montrer des signes d’essoufflement face aux besoins des développeurs modernes. Capacitor a donc été conçu pour prendre le relais et offrir une expérience plus moderne et flexible. 🚀&lt;/p&gt;&lt;p&gt;Le premier irritant auquel Capacitor répond, c’est la flexibilité limitée de Cordova pour accéder aux fonctionnalités natives. Capacitor te permet d’écrire tes plugins en JavaScript ou en code natif, tout en facilitant leur intégration. Besoin d’accéder à des fonctionnalités spécifiques à iOS ou Android ? Pas de souci. Capacitor est conçu pour te permettre de mixer du code natif et du web sans friction. Et si tu as déjà des plugins Cordova en place ? Aucun problème, Capacitor est 100% compatible. 💡&lt;/p&gt;&lt;p&gt;Un autre problème résolu par Capacitor, c’est la multiplateforme. Avec Capacitor, tu peux créer des apps non seulement pour iOS et Android, mais aussi pour le web en tant que Progressive Web App (PWA), sans devoir modifier ton code. Tu as donc un seul codebase qui te permet de viser plusieurs plateformes à la fois, tout en optimisant la performance et l’expérience utilisateur. 🌍&lt;/p&gt;&lt;p&gt;Capacitor simplifie aussi le processus de build et de mise à jour. Contrairement à Cordova, où tu pouvais te retrouver bloqué par les versions de plugins ou de dépendances, Capacitor te laisse gérer les aspects natifs comme si tu développais une app native classique. Tu utilises Xcode pour iOS, Android Studio pour Android, et ton IDE web pour le reste. Le tout avec une synchronisation fluide entre ton code web et les fonctionnalités natives. ⚙️&lt;/p&gt;&lt;p&gt;Et bien sûr, Capacitor a été pensé pour être futur-proof. Il bénéficie d’un développement actif, des mises à jour régulières et d’une intégration naturelle avec l’écosystème Ionic, mais tu peux l’utiliser avec n’importe quel framework comme React, Vue, Angular ou même du pur JavaScript. C’est ultra adaptable à tous types de projets ! 🎯&lt;/p&gt;</content:encoded></item><item><title>Node.js - Le game-changer du côté serveur ! 🚀/</title><link>https://papydev.fr/blog/17/</link><guid isPermaLink="true">https://papydev.fr/blog/17/</guid><pubDate>Tue, 10 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Qui aurait cru que JavaScript, ce petit langage de script qu’on utilisait pour animer des boutons et faire des alertes sur les pages web, deviendrait un mastodonte côté serveur ? Et pourtant, c’est exactement ce qui s’est passé avec Node.js. Mais pourquoi Node.js a-t-il été créé, et quels problèmes a-t-il résolus pour nous, pauvres développeurs ? 😅&lt;/p&gt;&lt;p&gt;Avant Node.js, JavaScript restait sagement confiné au navigateur. Le backend, c’était le territoire des langages comme PHP, Java, ou Python. Mais ces solutions avaient leurs limites, surtout quand il s’agissait de gérer de nombreuses connexions simultanées. Node.js est arrivé avec une promesse radicale : utiliser JavaScript pour le backend et profiter d&apos;un modèle *masynchrone non bloquant. Fini les serveurs qui deviennent lents comme des tortues quand trop de requêtes affluent ! 🐢&lt;/p&gt;&lt;p&gt;L&apos;irritant principal auquel Node.js répondait, c’était cette *mlatence causée par les opérations bloquantes sur les serveurs traditionnels. Node.js, avec son moteur V8 ultra-rapide et sa gestion asynchrone des I/O, permettait de traiter des milliers de connexions simultanées sans transpirer. C’était le rêve pour les applications en temps réel comme les chats, les jeux en ligne, et les services de streaming. 🌐&lt;/p&gt;&lt;p&gt;En plus de ça, Node.js a permis d’unifier le développement. Avant, tu devais jongler avec plusieurs langages pour le front et le back. Grâce à Node.js, tu peux maintenant utiliser JavaScript partout. Une seule équipe, un seul langage, et une cohérence de bout en bout. Ça change tout, non ? 🤩&lt;/p&gt;&lt;p&gt;Aujourd’hui, Node.js n’est pas juste une mode passagère. Avec son écosystème riche (merci npm !), sa communauté active, et des entreprises de toutes tailles qui l’adoptent pour sa rapidité et sa flexibilité, Node.js s&apos;est imposé comme un incontournable pour les développeurs full-stack. 📈&lt;br&gt;&lt;/p&gt;</content:encoded></item><item><title>php - L&apos;indispensable d&apos;hier, l&apos;incontournable d&apos;aujourd&apos;hui ?/</title><link>https://papydev.fr/blog/18/</link><guid isPermaLink="true">https://papydev.fr/blog/18/</guid><pubDate>Wed, 11 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Qui aurait cru que PHP, un langage qui date de 1994, serait encore si présent en 2024 ? 🤔 Eh oui, PHP est toujours là, à l&apos;époque où les frameworks JS et autres langages tendance essaient de voler la vedette. Mais pourquoi PHP a-t-il été créé à la base, et quels problèmes résolvait-il ?&lt;/p&gt;&lt;p&gt;À la naissance de PHP, le web était un peu comme le Far West : tout était à construire. Il n&apos;y avait pas vraiment de solution simple pour générer du contenu dynamique sur les pages web. Les développeurs devaient faire des pirouettes pour que ça fonctionne. Et c’est là que Rasmus Lerdorf a eu une idée de génie : créer un langage de script côté serveur qui faciliterait la création de pages web interactives. PHP a été conçu pour être simple, rapide à apprendre, et surtout, efficace pour gérer du contenu dynamique. 🎯&lt;/p&gt;&lt;p&gt;Les irritants auxquels répondait PHP ? La complexité et le manque d&apos;outils adaptés pour le développement web. Avant PHP, intégrer de l&apos;interactivité sur une page web était un vrai casse-tête. Avec PHP, c’était comme si on avait trouvé la potion magique pour injecter de la dynamique dans des pages HTML sans se casser la tête.&lt;/p&gt;&lt;p&gt;Un autre gros irritant résolu par PHP : la courbe d&apos;apprentissage abrupte des autres langages de programmation web de l’époque. PHP, avec sa syntaxe inspirée de C et sa documentation accessible, a permis à toute une génération de développeurs de se lancer dans le web sans avoir besoin d’un doctorat en informatique.&lt;/p&gt;&lt;p&gt;Et aujourd&apos;hui ? PHP a bien évolué. Avec des versions récentes comme PHP 8, on a maintenant des fonctionnalités modernes, des performances accrues, et une communauté toujours aussi active. Le langage a su se réinventer tout en restant fidèle à sa mission : rendre le développement web accessible et efficace.&lt;/p&gt;&lt;p&gt;Alors, pourquoi encore utiliser PHP aujourd&apos;hui ? Parce que parfois, la simplicité est le chemin le plus rapide vers l&apos;efficacité. 😉&lt;/p&gt;</content:encoded></item><item><title>Symfony -  Le framework PHP qui redéfinit les standards ! 🕸️🚀/</title><link>https://papydev.fr/blog/19/</link><guid isPermaLink="true">https://papydev.fr/blog/19/</guid><pubDate>Thu, 12 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Si tu fais du développement web en PHP, tu as sûrement déjà entendu parler de Symfony. Mais pourquoi Symfony a-t-il été créé et quels problèmes résolvait-il pour les développeurs PHP ? 🤔&lt;/p&gt;&lt;p&gt;À la fin des années 2000, le développement en PHP était devenu un vrai casse-tête pour les projets complexes. Les développeurs utilisaient des scripts spaghetti, écrivaient tout à la main sans vraie structure, et il n’y avait pas vraiment de standards en place. 😅 Le résultat ? Des applications difficiles à maintenir, pleines de bugs, et impossibles à faire évoluer sans tout casser.&lt;/p&gt;&lt;p&gt;Symfony est né pour résoudre ces irritants en apportant une structure solide et des bonnes pratiques au développement PHP. Créé par SensioLabs en 2005, Symfony s’est imposé avec une mission claire : rendre le code PHP plus propre, plus organisé, et plus facile à maintenir. Avec Symfony, finis les fichiers éparpillés sans logique : tu suis une architecture claire, avec un découpage en MVC (Modèle-Vue-Contrôleur), ce qui rend ton code plus lisible et modulable. 📦&lt;/p&gt;&lt;p&gt;L&apos;un des plus gros problèmes que Symfony a adressés, c’est l’absence de réutilisabilité et de standardisation. Avec Symfony, tu utilises des composants réutilisables et une injection de dépendances pour gérer tes services. Résultat ? Un code plus modulaire, qui peut être testé et réutilisé à volonté. Plus besoin de réinventer la roue à chaque projet ! 🔄&lt;br&gt;&lt;/p&gt;&lt;p&gt;Symfony a également simplifié la gestion des tâches répétitives grâce à sa ligne de commande (Symfony CLI) qui te permet de générer du code boilerplate en quelques secondes. Besoin de créer un nouveau contrôleur ou une nouvelle entité ? Quelques commandes et c’est fait ! Et avec son système de bundles, tu peux facilement ajouter de nouvelles fonctionnalités à ton application sans tout casser. 🚀&lt;/p&gt;&lt;p&gt;Un autre irritant majeur résolu par Symfony, c’est la sécurité. Avec des outils intégrés pour la gestion des utilisateurs, l’authentification, et la validation des données, Symfony te permet de créer des applications robustes et sécurisées sans te prendre la tête. 🔒 Et puis, il y a la documentation : super complète, claire, et accompagnée de tonnes d&apos;exemples. C’est comme avoir un mentor à portée de main. 📚&lt;br&gt;&lt;/p&gt;&lt;p&gt;Aujourd’hui, Symfony est utilisé par des entreprises comme BlaBlaCar, Spotify, et même la BBC pour construire des applications web performantes et scalables. Pourquoi ? Parce qu’il te donne la puissance et la flexibilité nécessaires pour créer des applications robustes, tout en restant facile à utiliser pour les débutants. 🌍&lt;/p&gt;</content:encoded></item><item><title>Java - Le vétéran qui refuse de vieillir ! ☕/</title><link>https://papydev.fr/blog/20/</link><guid isPermaLink="true">https://papydev.fr/blog/20/</guid><pubDate>Fri, 13 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Java, c’est un peu comme ce vieux jean que tu as depuis toujours : indémodable, toujours utile, et impossible de s’en séparer. Mais pourquoi Java a-t-il été créé, et quels problèmes visait-il à résoudre à l’époque ? 🤔&lt;/p&gt;&lt;p&gt;Retour dans les années 90. À cette époque, développer des applications multiplateformes relevait du parcours du combattant. Les développeurs devaient écrire du code spécifique pour chaque système d&apos;exploitation, ce qui entraînait une perte de temps colossale et des maux de tête sans fin. Java est né pour changer la donne. Son objectif ? Créer un langage portable qui fonctionnerait sur n&apos;importe quelle machine grâce à sa machine virtuelle, la fameuse JVM (Java Virtual Machine). &quot;Write Once, Run Anywhere&quot;, comme ils disaient. 🚀&lt;/p&gt;&lt;p&gt;Un des irritants majeurs auquel Java répondait, c’était l’incompatibilité entre les différentes plateformes. Avant Java, il fallait tout réécrire pour chaque système d&apos;exploitation. Avec Java, c’était comme si on avait enfin trouvé la clé pour déverrouiller toutes les portes. Les développeurs pouvaient écrire une fois leur code et le faire tourner partout, que ce soit sur Windows, Mac, ou même sur des serveurs Unix. 🔑&lt;/p&gt;&lt;p&gt;Java a aussi été conçu pour pallier aux problèmes de sécurité qui étaient monnaie courante à l’époque. Grâce à sa JVM et à son modèle de sécurité intégré, Java permettait de s&apos;assurer que les applications ne pouvaient pas faire n&apos;importe quoi avec ton système. Ajoute à cela une gestion de la mémoire automatisée avec le garbage collector, et tu avais un langage qui rendait le développement plus sûr et plus fiable. 🛡️&lt;/p&gt;&lt;p&gt;Aujourd’hui, Java continue d’évoluer avec des versions qui apportent de nouvelles fonctionnalités et améliorations, comme les lambdas ou le module system, et reste incontournable pour les applications backend, les systèmes financiers, et même le développement Android. 📈&lt;br&gt;&lt;/p&gt;</content:encoded></item><item><title>Spring Boot - Le turbo du développement backend en Java ! 🌱🚀/</title><link>https://papydev.fr/blog/21/</link><guid isPermaLink="true">https://papydev.fr/blog/21/</guid><pubDate>Sat, 14 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Si tu fais du développement backend en Java, tu as sûrement entendu parler de Spring Boot. Mais pourquoi Spring Boot a-t-il été créé et quels irritants a-t-il résolus pour les développeurs ? 🤔&lt;/p&gt;&lt;p&gt;Pour comprendre l&apos;impact de Spring Boot, il faut d&apos;abord remonter à son grand frère, le framework Spring. Spring est incroyablement puissant et flexible, mais il vient aussi avec son lot de complexité. Configurer une application Spring traditionnelle, c&apos;était comme essayer de monter un meuble Ikea sans notice : tu passais des heures à assembler des fichiers XML, à gérer les dépendances et à configurer ton serveur. 😵 C&apos;était surtout pas très fun pour les développeurs, et ça prenait un temps fou.&lt;/p&gt;&lt;p&gt;Spring Boot est arrivé en 2014 avec une mission claire : simplifier le développement d&apos;applications Spring. Finis les fichiers XML et la configuration interminable ! Avec Spring Boot, tu peux démarrer un projet avec une configuration minimale grâce à une approche dite &quot;opinionated&quot;, qui offre des paramètres par défaut intelligents. Tu veux lancer une nouvelle appli web en Java ? Quelques lignes de code suffisent, et hop, ton serveur est en place et ton application est prête à tourner ! 🚀&lt;/p&gt;&lt;p&gt;L’un des gros irritants que Spring Boot élimine, c’est le temps de démarrage des projets. Avant, il te fallait des jours, voire des semaines, pour configurer ton environnement et t’assurer que tout fonctionne correctement. Avec Spring Boot, tu peux démarrer rapidement avec un setup presque &quot;zéro config&quot; grâce aux &quot;starters&quot; qui te fournissent des dépendances déjà prêtes pour les projets courants comme les applications web, RESTful, et les services de données. 📦&lt;/p&gt;&lt;p&gt;Un autre problème auquel Spring Boot répond, c’est la complexité de déploiement. Avec Spring Boot, tu peux packager ton application comme un JAR exécutable avec un serveur intégré comme Tomcat ou Jetty. Ça veut dire quoi ? Que tu n’as plus besoin de t’embêter avec un serveur d’applications séparé, tout est inclus et prêt à partir ! 🎉 Ça rend le déploiement ultra simple et réduit énormément le temps de mise en production.&lt;/p&gt;&lt;p&gt;Et n’oublions pas la gestion des microservices. Avec Spring Boot, construire des applications basées sur des microservices devient un jeu d&apos;enfant grâce à son intégration facile avec Spring Cloud. Besoin d&apos;un système résilient et scalable ? Spring Boot est là pour toi, avec des fonctionnalités comme le service discovery, la gestion des configurations, et la tolérance aux pannes. 💥&lt;/p&gt;&lt;p&gt;Aujourd&apos;hui, Spring Boot est le choix préféré des développeurs Java pour construire des applications backend robustes, évolutives, et faciles à maintenir. Des entreprises comme Netflix, Amazon, et même la NASA l&apos;utilisent pour gérer des applications critiques. 🌐&lt;/p&gt;</content:encoded></item><item><title>Ruby - Le langage qui fait sourire les développeurs ! 😄/</title><link>https://papydev.fr/blog/22/</link><guid isPermaLink="true">https://papydev.fr/blog/22/</guid><pubDate>Sun, 15 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Ruby, c’est un peu le langage qui veut te rendre la vie plus douce, comme une bonne tasse de thé un jour de pluie. Mais pourquoi Ruby a-t-il été créé, et quels problèmes cherchait-il à résoudre ? 🤔&lt;/p&gt;&lt;p&gt;Au milieu des années 90, Yukihiro &quot;Matz&quot; Matsumoto a eu une vision : créer un langage de programmation à la fois puissant et agréable à utiliser. À l&apos;époque, beaucoup de langages étaient efficaces mais pas vraiment fun, un peu comme un outil qui fait le job mais te donne des ampoules aux mains. Matz voulait quelque chose de différent : un langage où l’expérience du développeur était aussi importante que la fonctionnalité du code. Ruby est donc né pour être intuitif, lisible et flexible, tout en permettant de faire des choses complexes sans se prendre la tête. 🧠✨&lt;/p&gt;&lt;p&gt;L&apos;un des irritants auxquels Ruby répondait, c’était la complexité syntaxique des langages comme C ou Java. Avec Ruby, fini les points-virgules à chaque ligne ou les accolades qui se multiplient ! La syntaxe de Ruby est naturelle et proche du langage humain, ce qui rend le code facile à lire et à écrire. C’est simple : quand tu écris du Ruby, tu as l’impression de raconter une histoire, pas de coder. 📖&lt;/p&gt;&lt;p&gt;Ruby a aussi apporté une communauté chaleureuse et accueillante. Dès le début, Matz a insisté sur l’importance de créer un langage pour les développeurs, pas pour les machines. Cela a donné naissance à une communauté qui partage ces valeurs, prête à aider et à rendre le développement agréable pour tous. 👥❤️&lt;/p&gt;&lt;p&gt;Aujourd’hui, Ruby est souvent associé à Ruby on Rails, le framework qui a révolutionné le développement web en introduisant des concepts comme le &quot;convention over configuration&quot; et le &quot;don’t repeat yourself&quot; (DRY). Avec Rails, Ruby a montré qu’on pouvait créer des applications web puissantes et évolutives en un temps record. 🚀&lt;/p&gt;</content:encoded></item><item><title>Cobol - Le dinosaure toujours en action !🦖/</title><link>https://papydev.fr/blog/23/</link><guid isPermaLink="true">https://papydev.fr/blog/23/</guid><pubDate>Mon, 16 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Eh oui, COBOL est toujours là, après plus de 60 ans d’existence ! Qui aurait cru que ce langage, né dans les années 60, serait encore utilisé aujourd&apos;hui ? Mais pourquoi COBOL a-t-il été créé, et quels problèmes venait-il résoudre à l’époque ? 🤔&lt;/p&gt;&lt;p&gt;À la fin des années 50, les entreprises avaient un problème de taille : elles utilisaient des dizaines de langages de programmation différents, chacun pour des tâches très spécifiques. Il fallait un langage qui soit standardisé et facile à lire par les non-programmeurs, notamment les comptables et les gestionnaires. COBOL (Common Business-Oriented Language) est né pour remplir cette mission. 📊&lt;/p&gt;&lt;p&gt;L&apos;irritant principal auquel COBOL répondait, c’était le manque de lisibilité et de standardisation dans le développement de logiciels d&apos;entreprise. À cette époque, les programmes étaient complexes et difficiles à maintenir. COBOL a été conçu avec une syntaxe très proche de l’anglais, permettant à tout le monde de comprendre le code. Finies les lignes cryptiques incompréhensibles : avec COBOL, tout est clair comme de l&apos;eau de roche. 💧&lt;/p&gt;&lt;p&gt;COBOL a aussi apporté de la *mfiabilité et de la stabilité. Les systèmes financiers et administratifs qui l&apos;utilisent doivent être sûrs, précis et capables de gérer d&apos;énormes volumes de transactions sans faillir. C’est pour ça que beaucoup de banques, d&apos;assurances, et d&apos;administrations l’utilisent encore aujourd’hui. Il peut sembler vieux, mais il fait le boulot comme un pro. 💼&lt;/p&gt;&lt;p&gt;Aujourd’hui, malgré son âge, COBOL reste en place dans beaucoup de systèmes critiques. Pourquoi ? Parce qu’il est fiable, robuste, et ces systèmes ont été si bien construits qu&apos;ils n&apos;ont pas besoin d&apos;être remplacés. Et avec des millions de lignes de code COBOL toujours en usage, il y a toujours une demande pour les développeurs qui le connaissent. 📈&lt;/p&gt;</content:encoded></item><item><title>Python - Le couteau suisse de la programmation !🐍/</title><link>https://papydev.fr/blog/24/</link><guid isPermaLink="true">https://papydev.fr/blog/24/</guid><pubDate>Tue, 17 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Python, c’est un peu comme cette paire de baskets que tu portes tous les jours : confortable, polyvalente, et indispensable. Mais pourquoi ce langage est-il devenu si populaire, et quels problèmes a-t-il résolus depuis sa création ? 🤔&lt;/p&gt;&lt;p&gt;Dans les années 90, quand Python est né, la plupart des langages de programmation étaient soit trop complexes pour les débutants, soit trop limités pour les pros. Python a été conçu pour être facile à lire et à écrire, avec une syntaxe qui ressemble presque à de l’anglais. L&apos;idée, c&apos;était de permettre aux développeurs de se concentrer sur la résolution de problèmes, plutôt que de se battre avec le langage lui-même. 💡&lt;/p&gt;&lt;p&gt;L&apos;un des principaux irritants auxquels Python répondait, c’était la barrière d&apos;entrée élevée pour beaucoup de langages à l&apos;époque. Avec Python, plus besoin d’avoir un doctorat en informatique pour commencer à coder. Sa simplicité a ouvert les portes de la programmation à des millions de personnes. Du coup, que tu sois data scientist, développeur web, ou passionné de machine learning, tu peux plonger directement dans ton projet sans prise de tête. 🌍&lt;/p&gt;&lt;p&gt;En plus, Python est arrivé avec une philosophie de code clair et concis. Le fameux &quot;Zen de Python&quot; prône la lisibilité et la simplicité, ce qui rend le code plus facile à maintenir et à partager. Et avec sa vaste bibliothèque standard et son écosystème riche, tu peux tout faire avec Python : des scripts simples aux applications web, en passant par l&apos;analyse de données et l’intelligence artificielle. 🤖&lt;br&gt;&lt;/p&gt;&lt;p&gt;Aujourd&apos;hui, Python est partout. Il est utilisé par les géants de la tech comme Google et Netflix, dans les laboratoires de recherche, dans les startups, et même dans les écoles. Et grâce à sa communauté dynamique, il continue d’évoluer avec des nouveautés qui le rendent encore plus puissant et versatile. 🔥&lt;/p&gt;</content:encoded></item><item><title>Basic - Le langage qui a initié des générations de développeurs ! 🚀/</title><link>https://papydev.fr/blog/25/</link><guid isPermaLink="true">https://papydev.fr/blog/25/</guid><pubDate>Wed, 18 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Parlons un peu de BASIC.&lt;br&gt;Oui, ce langage que tes profs (ou tes grands-parents) mentionnent parfois avec une larme à l’œil.&lt;/p&gt;&lt;p&gt;Flashback : on est dans les années 60. L’informatique, c’est réservé à une élite. Les scientifiques, les matheux, les mecs en blouse blanche qui codent sur des machines énormes, avec des langages cryptiques genre Fortran ou COBOL. Si t’es étudiant ou passionné sans accès à ces ressources… bah, t’oublies.&lt;/p&gt;&lt;p&gt;Deux profs de Dartmouth College, John Kemeny et Thomas Kurtz, en avaient marre de ce délire. Leur idée ? Créer un langage accessible. Pas besoin d’être un ingénieur pour s’y mettre. Juste une syntaxe simple, des commandes lisibles, et une courbe d’apprentissage humaine.&lt;/p&gt;&lt;p&gt;Et c’est comme ça qu’est né BASIC (Beginner’s All-purpose Symbolic Instruction Code).&lt;br&gt;Le pitch : démocratiser l’accès à la programmation. Et tu sais quoi ? Ça a marché.&lt;/p&gt;&lt;p&gt;Dans les années 70 et 80, quand les premiers ordinateurs personnels (comme le Commodore 64 ou les machines IBM) débarquent, BASIC est partout. Tu allumes ton ordi, et bam : une interface BASIC te dit “Prêt” (ou READY. pour les puristes).&lt;/p&gt;&lt;p&gt;Tu voulais apprendre à coder ? BASIC était le point d’entrée. Écrire des programmes, bricoler des jeux, bidouiller ton matos… Tout devenait possible, sans avoir à vendre un rein pour suivre un cursus d’ingénieur.&lt;/p&gt;&lt;p&gt;Alors, pourquoi BASIC a-t-il perdu de son éclat ?&lt;br&gt;Parce qu’avec le temps, il a montré ses limites. Trop basique pour les besoins complexes. Pas adapté aux systèmes modernes. Mais il reste une révolution silencieuse : sans lui, peut-être que la programmation serait restée un club fermé.&lt;/p&gt;&lt;p&gt;Fun fact : Si t’as codé en VBScript ou VBA dans les années 90/2000, t’as touché un descendant direct de BASIC. Comme quoi, les “langages simples” ont une sacrée longévité.&lt;/p&gt;</content:encoded></item><item><title>C - Le grand-père de tous les langages ! 🚀/</title><link>https://papydev.fr/blog/26/</link><guid isPermaLink="true">https://papydev.fr/blog/26/</guid><pubDate>Thu, 19 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;OK, parlons d’un OG du game : le C.&lt;br&gt;Pas de blabla, pas de fioritures. C’est le couteau suisse des langages.&lt;/p&gt;&lt;p&gt;On est dans les années 70, chez Bell Labs. Les ordinateurs, c’est un délire de câbles, de terminaux qui clignotent, et de langages qui ressemblent à de l’alien pour un humain normal. Un gars, Dennis Ritchie, décide qu’il est temps de changer ça.&lt;/p&gt;&lt;p&gt;Son objectif ? Créer un langage qui parle autant aux machines qu’aux humains.&lt;br&gt;Un truc à mi-chemin entre l’assembleur (le langage qui parle directement aux processeurs) et des syntaxes plus lisibles. Résultat : en 1972, C voit le jour.&lt;/p&gt;&lt;p&gt;Le timing était parfait. Unix, le système d’exploitation développé chez Bell Labs, avait besoin d’un langage pour être portable. Traduction : qu’il puisse tourner sur différentes machines sans tout réécrire. Avant ça, chaque machine avait son propre langage. Un casse-tête sans fin. Avec C, Unix est devenu universel. Et ce duo a conquis le monde.&lt;/p&gt;&lt;p&gt;Mais pourquoi le C a-t-il marqué autant ?&lt;br&gt;Parce qu’il a réglé des irritants critiques :&lt;br&gt; 1. Contrôle total : Tu veux gérer la mémoire ? Jouer avec les pointeurs ? Optimiser chaque ligne pour gratter en perfs ? C’est ton meilleur pote.&lt;br&gt; 2. Performance : Tu codes presque à la vitesse de l’assembleur, mais sans t’arracher les cheveux.&lt;br&gt; 3. Portabilité : Écris une fois, compile partout. Du PC au microcontrôleur, c’est du C sous le capot.&lt;/p&gt;&lt;p&gt;C’est simple, tous les langages modernes ont un peu (ou beaucoup) de C dans leur ADN. C++ ? C avec des stéroïdes. Java ? Inspiré du C. Même Python a été codé… en C.&lt;/p&gt;&lt;p&gt;Mais attention, le C n’est pas tendre. Il te file les clés, mais il te laisse aussi te planter. Une erreur de pointeur ? Un malloc mal géré ? Et boum, ton programme crashe ou, pire, ouvre une faille de sécurité. Responsabilité totale.&lt;/p&gt;&lt;p&gt;Le C, c’est un langage qui ne te tient pas la main, mais qui te rend plus fort.&lt;br&gt;Respect éternel pour Dennis Ritchie et sa team.&lt;/p&gt;</content:encoded></item><item><title>C++ - Le C, mais avec une cape de super-héros./</title><link>https://papydev.fr/blog/27/</link><guid isPermaLink="true">https://papydev.fr/blog/27/</guid><pubDate>Fri, 20 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Années 80. Le C domine le monde du dev. Rapide, portable, puissant… Mais voilà, les logiciels deviennent de plus en plus complexes, et coder tout ça en C, c’est un peu comme essayer de construire un gratte-ciel avec un marteau et des clous : faisable, mais épuisant.&lt;/p&gt;&lt;p&gt;C’est là qu’un mec, Bjarne Stroustrup, arrive avec une idée.&lt;br&gt;Il se dit : “Et si on gardait la puissance brute du C, mais qu’on y ajoutait un peu de structure, de modernité, et de confort ?”&lt;br&gt;Résultat ? En 1983, il crée C++, qu’il appelle au départ “C with Classes”.&lt;/p&gt;&lt;p&gt;L’innovation clé de C++ ? La programmation orientée objet.&lt;br&gt;Fini de tout balancer dans des fonctions et des pointeurs en vrac. Avec les objets, tu peux modéliser le monde réel : des classes, des héritages, des encapsulations. Tu construis ton code comme des Lego, bloc par bloc, réutilisable et plus facile à maintenir.&lt;/p&gt;&lt;p&gt;Mais pourquoi C++ a-t-il explosé ?&lt;br&gt;Parce qu’il combinait le meilleur des deux mondes :&lt;br&gt; • La performance brute du C. (T’as besoin d’aller vite ? C++ répond toujours présent.)&lt;br&gt; • La structure des objets pour organiser des projets complexes.&lt;/p&gt;&lt;p&gt;Et du coup, C++ a envahi la planète :&lt;br&gt; • Les jeux vidéo ? Presque tous les moteurs 3D (Unreal Engine, par exemple) sont en C++.&lt;br&gt; • Les OS ? Une partie de Windows et macOS tourne en C++.&lt;br&gt; • Les logiciels pro comme Photoshop, AutoCAD ou même certaines applis bancaires ? C++, évidemment.&lt;/p&gt;&lt;p&gt;Mais voilà, avec la puissance vient la complexité.&lt;br&gt;Gérer la mémoire à la main (encore), comprendre les templates (🤯), éviter de te perdre dans des héritages qui ressemblent à un arbre généalogique foireux… Le C++ est un outil de maître, mais il peut vite devenir ton pire cauchemar si t’as pas les bons réflexes.&lt;/p&gt;&lt;p&gt;En vrai, C++ est une sorte de paradoxe :&lt;br&gt;Il est à la fois intemporel et controversé. Une machine de guerre pour ceux qui le maîtrisent, mais souvent trop lourd pour des projets plus modernes.&lt;/p&gt;&lt;p&gt;Aujourd’hui, avec des langages comme Rust, Go ou Python qui grignotent son terrain, il reste une référence… mais son utilisation tend à se spécialiser.&lt;/p&gt;</content:encoded></item><item><title>C# - Le C++ qui a pris des vacances et revient zen./</title><link>https://papydev.fr/blog/28/</link><guid isPermaLink="true">https://papydev.fr/blog/28/</guid><pubDate>Sat, 21 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Années 2000. Microsoft veut marquer son territoire dans l’univers des langages.&lt;br&gt;Le C++ domine toujours, mais il commence à fatiguer les devs avec sa complexité. Pendant ce temps, Java fait le buzz avec sa promesse de simplicité et de portabilité. Alors Microsoft décide de répondre… avec C#.&lt;/p&gt;&lt;p&gt;L’idée ? Garder la puissance d’un langage compilé, mais avec une expérience dev beaucoup plus agréable.&lt;br&gt;C# (prononce-le “C sharp”, pas “C dièse”, stp) débarque en 2000, créé par Anders Hejlsberg. Oui, le même mec qui avait déjà révolutionné le dev avec Delphi.&lt;/p&gt;&lt;p&gt;Qu’est-ce qui rend C# unique ?&lt;br&gt;C’est un mix parfait entre le C++ et Java :&lt;br&gt; 1. Syntaxe familière : Si t’as touché au C ou au C++, tu te sens à la maison.&lt;br&gt; 2. Gestion automatique de la mémoire : Plus besoin de gérer les malloc et free à la main, merci le Garbage Collector.&lt;br&gt; 3. Orienté objet, mais pas que : Tu veux des interfaces, des événements, des delegates ? Tout est là, proprement.&lt;br&gt; 4. Sécurisé et moderne : Adieu les pointeurs galères et les segfaults à répétition (même si tu peux les retrouver en mode hardcore).&lt;/p&gt;&lt;p&gt;Mais pourquoi C# a-t-il cartonné ?&lt;br&gt;Parce qu’il était conçu pour l’écosystème Microsoft. Avec le framework .NET, C# est devenu la clé pour développer des applis Windows rapidement. Tu veux faire un logiciel pro ? Une appli web ? Une API ? Bam, .NET et C# sont là pour toi.&lt;/p&gt;&lt;p&gt;Et puis il y a eu Unity.&lt;br&gt;Quand ce moteur de jeu est devenu mainstream, il a mis C# sur la map des devs de jeux indés. Résultat ? Si t’as déjà bidouillé un jeu mobile ou une expérience 3D, y’a de grandes chances que C# ait été ton allié.&lt;/p&gt;&lt;p&gt;Les forces de C# aujourd’hui ?&lt;br&gt; • Une syntaxe qui évolue avec les besoins modernes. (Les records, pattern matching, LINQ, etc. ? Trop clean.)&lt;br&gt; • Un framework multiplateforme : .NET Core (devenu juste .NET maintenant) permet de coder pour Windows, macOS, Linux, et même le cloud.&lt;br&gt; • Une communauté massive, avec des outils comme Visual Studio qui rendent le dev smooth.&lt;/p&gt;&lt;p&gt;Mais bon, tout n’est pas rose non plus. C# reste lié à Microsoft, donc certains te diront que ça limite un peu sa portée (même si c’est de moins en moins vrai avec .NET open-source).&lt;/p&gt;&lt;p&gt;En résumé ?&lt;br&gt;C# a été conçu pour simplifier la vie des devs et moderniser ce que C++ faisait bien, sans les migraines. Aujourd’hui, c’est un langage polyvalent et robuste, qui reste un favori dans des domaines comme les applis pro, les jeux, et le dev web.&lt;/p&gt;</content:encoded></item><item><title>CSS - Le langage qui habille le web ! 👖/</title><link>https://papydev.fr/blog/29/</link><guid isPermaLink="true">https://papydev.fr/blog/29/</guid><pubDate>Sun, 22 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Un truc qui fait grimper les débutants au mur... et pourtant, c’est la base.&lt;/p&gt;&lt;p&gt;Mais pourquoi est-ce qu&apos;on a inventé ça, franchement ? Eh bien, dans les années 90, les sites web étaient moches. On avait du texte brut, des blocs qui se superposaient sans aucune logique. Les devs se battaient avec des tables HTML pour aligner deux pauvres images. Rien de sexy.&lt;/p&gt;&lt;p&gt;Puis, un jour, quelqu’un a eu une illumination : &quot;Et si on séparait le contenu de la présentation ?&quot; Parce qu&apos;avant CSS, tout était mélangé, dans un gros chaos visuel. Le HTML devait tout gérer, et ça devenait vite un enfer.&lt;/p&gt;&lt;p&gt;CSS, c’est un peu le super-héros du style. Il est là pour nous simplifier la vie (ou nous la pourrir, selon comment on s’y prend). Sa mission ? Dire à ton navigateur comment afficher ton site. Placement, couleurs, tailles... Tout ça devient un jeu d’enfant. En théorie.&lt;/p&gt;&lt;p&gt;Et pourquoi ça peut devenir irritant ? &lt;br&gt;Flexbox, tu connais ? Ah, le fameux &quot;align-items: center&quot; qui ne marche jamais comme tu veux. Ou les &quot;margin&quot; qui sautent sans raison. Et je te parle même pas des problèmes de compatibilité avec certains navigateurs (coucou Internet Explorer). &lt;/p&gt;&lt;p&gt;La vraie frustration avec CSS, c’est que tout semble simple sur le papier... jusqu’à ce que tu doives adapter ton design à un écran de 320px. Là, tu pleures. Les responsive designs sont cools, mais te forcent à jongler entre des centaines de règles différentes. Et quand t’as fini de tout aligner, tu testes sur un autre appareil, et tout se casse la figure.&lt;/p&gt;&lt;p&gt;Mais malgré tout, CSS reste indispensable. Il évolue constamment, avec des nouveautés comme Grid qui a révolutionné les mises en page. Alors oui, c’est chiant parfois, mais c’est le prix à payer pour un site qui déchire. Tu préfères vraiment revenir à l’époque des tableaux en HTML? Pas sûr.&lt;/p&gt;</content:encoded></item><item><title>SCSS - CSS, mais en mieux ! 👖🚀/</title><link>https://papydev.fr/blog/30/</link><guid isPermaLink="true">https://papydev.fr/blog/30/</guid><pubDate>Mon, 23 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;À la base, SCSS c’est un peu une réponse au chaos de CSS. Parce que, soyons honnêtes, dès que t’as un gros projet avec des tonnes de fichiers, de classes, de sélecteurs dans tous les sens... c’est vite le bordel. Impossible de t’y retrouver. Et si t’as déjà dû modifier un site en CSS où chaque élément a un style unique sans logique, tu sais de quoi je parle.&lt;/p&gt;&lt;p&gt;SCSS, c’est l’outil qui est venu pour organiser tout ça. L’idée, c’est de donner un peu plus de pouvoirs aux développeurs. Avec lui, tu peux créer des variables (pour tes couleurs, tes marges, tes typos...), faire des boucles, utiliser des mixin pour réutiliser des bouts de code... Bref, c’est comme si tu passais de la bicyclette au vélo électrique.&lt;/p&gt;&lt;p&gt;Le truc magique avec SCSS, c’est que tu peux imbriquer tes sélecteurs. Au lieu de devoir écrire 50 lignes juste pour styliser un bouton dans une div, tu peux tout mettre dans une petite structure bien propre. T’as une vue d’ensemble, tu t’y retrouves, et t’évites de péter un plomb.&lt;/p&gt;&lt;p&gt;Les irritants auxquels SCSS répond ? &lt;br&gt;Déjà, la duplication de code. Si tu fais des sites depuis un moment, tu sais que c’est souvent la même rengaine : tu réutilises les mêmes couleurs, les mêmes tailles de police... Avec SCSS, tu définis une variable genre `$primary-color: hashtag#ff6347;`, et bam, tu l’appelles partout. Un seul changement dans ta variable et toutes tes instances se mettent à jour. Tu gagnes du temps, et surtout, t’évites des erreurs.&lt;/p&gt;&lt;p&gt;Ensuite, les calculs. Parce qu’en CSS pur, si tu veux calculer une taille de colonne à partir de plusieurs valeurs, c’est galère. En SCSS, tu peux faire des maths direct dans ton code. Besoin d’une largeur de 25% plus 10px? Pas de souci, il te gère ça.&lt;/p&gt;&lt;p&gt;Les mixins aussi, c’est une tuerie. Imagine que tu dois ajouter plusieurs préfixes de navigateur pour une propriété (genre les fameux `-webkit-`, `-moz-`, etc.). Plutôt que de t’embêter à les écrire manuellement à chaque fois, tu crées un mixin et tu l’appelles où tu veux. Minimaliste, non ?&lt;/p&gt;&lt;p&gt;Alors, SCSS, c’est pas la solution miracle non plus. Faut quand même comprendre comment il fonctionne, et au début, tu peux te perdre avec les imbrications à rallonge. Mais une fois que t’as pris le coup de main, tu réalises que tu peux vraiment structurer ton code comme un pro et éviter les migraines CSS&lt;/p&gt;&lt;p&gt;En gros, SCSS, c’est le bon pote qui vient t’aider à dompter le chaos.&lt;/p&gt;</content:encoded></item><item><title>Bootstrap - Le kit de survie du développeur front-end ! 🚀/</title><link>https://papydev.fr/blog/31/</link><guid isPermaLink="true">https://papydev.fr/blog/31/</guid><pubDate>Tue, 24 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Bootstrap ça te parle forcément. Ce framework qui débarque en 2011 et qui a changé la vie de bien des devs. Mais pourquoi il a été créé au juste ? Qu’est-ce qu’il est venu résoudre ?&lt;/p&gt;&lt;p&gt;À la base, Bootstrap a été développé par des mecs de chez Twitter. Leur but ? Standardiser les interfaces web et rendre la création de sites responsive plus rapide. Parce qu’avant ça, faire un site qui s’adapte à tous les écrans (mobile, tablette, desktop) était un casse-tête. T’avais l’impression de réinventer la roue à chaque fois.&lt;/p&gt;&lt;p&gt;Avec Bootstrap, tu te retrouves avec une boîte à outils prête à l’emploi : des grilles, des boutons, des formulaires, des cartes, et j’en passe. Plus besoin de tout refaire à la main. T’appelles les classes, tu joues avec les colonnes, et ton site est quasiment prêt à tourner. &lt;/p&gt;&lt;p&gt;L’objectif était simple : permettre aux devs de gagner un temps fou et d&apos;avoir une base solide pour n’importe quel projet. Plus besoin de se battre avec le CSS pour centrer un bouton ou aligner trois blocs. Tu mets un peu de container, du row, du col-6, et c’est réglé. Un site propre et responsive en quelques lignes.&lt;/p&gt;&lt;p&gt;Les irritants auxquels Bootstrap répond?&lt;br&gt;Déjà, la compatibilité entre navigateurs. Avant, c’était la guerre entre Chrome, Firefox, Safari, et bien sûr, feu Internet Explorer. Un truc qui marchait nickel sur un navigateur plantait totalement sur un autre. Avec Bootstrap, t’as un framework qui gère tout ça pour toi. Tout est préconfiguré, optimisé pour fonctionner partout.&lt;/p&gt;&lt;p&gt;Ensuite, il y a le problème des mises en page complexes. Avant Bootstrap, si tu voulais une grille bien structurée, tu devais te débrouiller avec du CSS pur et du positionnement en float. C’était long, fastidieux, et souvent, ça foirait. Bootstrap arrive avec son système de grille flexible et responsive, et boum, tu divises ton site en colonnes super facilement. Plus besoin de te prendre la tête avec des pourcentages ou des calculs bizarres.&lt;/p&gt;&lt;p&gt;Enfin, Bootstrap t’apporte des composants tout faits: des modals, des carrousels, des alertes… Tu veux afficher une petite pop-up stylée ? Pas besoin d’écrire 50 lignes, tout est déjà prêt dans Bootstrap. Tu importes, tu customises un peu, et t’as un résultat pro en quelques minutes.&lt;/p&gt;&lt;p&gt;Mais bon, faut pas se mentir, Bootstrap a aussi ses irritants.&lt;br&gt;Premièrement, c’est du surplus de code. Quand tu utilises Bootstrap, tu charges beaucoup de classes et de styles dont tu n’as pas forcément besoin. Ça peut alourdir ton site, surtout si tu n&apos;optimises pas derrière. Et t’as le problème du look Bootstrap. Si tu customises pas un peu, tous les sites finissent par se ressembler. &lt;/p&gt;&lt;p&gt;Et Certains diront que ça bride la créativité, que ça te pousse à utiliser des layouts classiques sans sortir des sentiers battus. C’est vrai, mais faut voir Bootstrap comme un tremplin. Tu gagnes du temps sur les bases, et tu te concentres sur ce qui rend ton projet unique.&lt;/p&gt;</content:encoded></item><item><title>Tailwind CSS - Le CSS pour les flemmards (et les pros) ! 🚀/</title><link>https://papydev.fr/blog/32/</link><guid isPermaLink="true">https://papydev.fr/blog/32/</guid><pubDate>Wed, 25 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Allez, parlons de Tailwind CSS. Le framework qui a débarqué et a chamboulé la manière de penser le design web. Si t’as l’impression que tous les devs en parlent, c’est pas pour rien. Mais pourquoi Tailwind a-t-il été créé, et qu’est-ce qu’il résout ?&lt;/p&gt;&lt;p&gt;Tailwind est né d’une frustration : celle des frameworks comme Bootstrap, où tu te retrouves à écrire du HTML rempli de classes toutes faites qui finissent par standardiser tes designs. T&apos;as beau personnaliser, tout le monde utilise les mêmes boutons, les mêmes grilles. Tous les sites se ressemblent.&lt;/p&gt;&lt;p&gt;Avec Tailwind, l’idée est simple : utilise des classes utilitaires pour tout styliser dans ton HTML, sans jamais écrire une ligne de CSS custom. Dit comme ça, ça peut faire peur. Genre, du CSS inline? Vraiment ? Oui, vraiment. Mais au lieu de déclarer des classes globales, tu utilises des petites classes toutes prêtes pour chaque propriété. Tout est géré au niveau de chaque composant.&lt;/p&gt;&lt;p&gt;Pourquoi ça marche ? Parce que Tailwind te donne un contrôle total. Tu fais ce que tu veux, sans te limiter à des composants préfabriqués. Tu construis ton design sans écrire de CSS personnalisé. Et quand t’as des projets qui nécessitent du changement constant, ça devient une bénédiction. Tu modifies quelques classes, et ton design est mis à jour, sans te plonger dans des fichiers CSS interminables.&lt;/p&gt;&lt;p&gt;Les irritants auxquels Tailwind répond? &lt;br&gt;Le premier, c’est la personnalisation à outrance. Avec Tailwind, tu restes dans ton HTML, et t’as toutes tes classes sous les yeux. Tu veux ajuster une marge ? T’ajoutes une classe `mt-4` et voilà. Plus besoin d’aller farfouiller dans un fichier CSS de 2000 lignes.&lt;/p&gt;&lt;p&gt;Ensuite, la modularité. Avec les frameworks classiques, t’as tendance à définir des composants globaux que tu réutilises un peu partout. Mais, parfois, t’as besoin d’un ajustement spécifique pour un seul composant. Au lieu de tout casser, avec Tailwind tu ajustes directement là où t’en as besoin, sans impacter le reste du design.&lt;/p&gt;&lt;p&gt;Un autre avantage ? La réduction de la dette technique. Le CSS classique, c’est facile de se retrouver avec plein de classes inutilisées. Tailwind te permet d’optimiser tout ça avec un simple coup de PurgeCSS, qui vire toutes les classes inutiles dans ton projet final. Résultat : t’as un CSS ultra-léger.&lt;/p&gt;&lt;p&gt;Mais attention, le premier truc qui fait grincer des dents, c’est que ton HTML peut vite devenir un gros pavé de classes. Quand t’as un composant un peu complexe, t’as parfois 10, 20, voire 30 classes sur une seule balise. Ça peut vite être indigeste. Faut juste t’habituer à voir ton HTML comme une extension de ton CSS.&lt;/p&gt;&lt;p&gt;Si t’es un puriste qui aime séparer clairement structure et style, Tailwind peut te paraître contre-intuitif. Et puis, si t’as un grand projet sans architecture claire, tu peux vite te retrouver avec des composants difficilement maintenables.&lt;/p&gt;&lt;p&gt;Et toi, t’es prêt à plonger dans le monde du utility-first ou tu préfères rester fidèle aux bons vieux frameworks ?&lt;/p&gt;</content:encoded></item><item><title>Bulma - Le framework CSS qui a du style ! 🚀/</title><link>https://papydev.fr/blog/33/</link><guid isPermaLink="true">https://papydev.fr/blog/33/</guid><pubDate>Thu, 26 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Ah, Bulma. Le framework CSS qui a voulu se démarquer des géants comme Bootstrap, tout en restant léger et simple d’utilisation. Si t’as jamais bossé avec, voici pourquoi il a été créé et ce qu’il résout.&lt;/p&gt;&lt;p&gt;Bulma a été pensé pour être minimaliste et élégant. Contrairement à Bootstrap qui s’est alourdi avec le temps, Bulma mise sur la simplicité. Ici, pas de JavaScript, juste du CSS pur et moderne. Résultat ? Un framework plus léger, rapide à prendre en main, avec un système de classes intuitif.&lt;/p&gt;&lt;p&gt;Pourquoi ? Parce que les dev cherchaient une alternative flexible à Bootstrap, sans avoir à s’encombrer de composants complexes. Avec Bulma, tout est clair et lisible. Tu veux faire une mise en page ? Pas de problème, t’as des classes de grilles basées sur Flexbox qui rendent le tout super intuitif.&lt;/p&gt;&lt;p&gt;Besoin de deux colonnes côte à côte ? Facile. Trois colonnes ? Tout aussi simple. C’est un framework qui te permet de créer des layouts modernes sans jongler avec des hacks CSS ou des pourcentages galère à calculer.&lt;/p&gt;&lt;p&gt;Quels irritants résout-il ?&lt;br&gt;D’abord, le temps de mise en place. Bulma est ultra rapide à installer. Pas besoin de configurer quoi que ce soit, tu importes le fichier CSS et tu peux commencer à coder. Besoin d’un bouton stylé ? Utilise simplement la classe “button”. Une colonne ? “column”. Tout est pensé pour être simple et rapide à comprendre, même si tu débutes.&lt;/p&gt;&lt;p&gt;Ensuite, il y a le problème des frameworks surchargés de classes inutiles. Avec Bulma, tout est minimaliste. T’as pas un fichier CSS énorme avec des styles que tu n’utiliseras jamais. Si tu veux juste un système de grilles, quelques boutons, formulaires et cartes, c’est parfait. Pas de superflu, juste l’essentiel.&lt;/p&gt;&lt;p&gt;Un autre point cool : pas de JavaScript intégré. Contrairement à d’autres qui t’imposent leur propre JS, Bulma te laisse libre. Tu peux utiliser le framework que tu veux (ou ne pas en utiliser). Ça te permet de garder le contrôle total sur la performance de ton site.&lt;/p&gt;&lt;p&gt;Par contre, comme il est ultra minimaliste, tu risques de manquer de certains composants. Pas de modals ou de carrousels intégrés, par ex. Pour les interfaces très dynamiques, tu devras ajouter un peu de code JS ou passer par une autre bibliothèque. Donc, si tu cherches un truc vraiment complet, Bulma ne sera peut-être pas suffisant à lui seul.&lt;/p&gt;&lt;p&gt;Il y a la question du style par défaut. Bulma a un design très épuré et, si tu ne le customises pas, tes sites risquent de se ressembler. Si tu veux quelque chose d’unique, il te faudra personnaliser le CSS ou ajouter tes propres styles.&lt;/p&gt;&lt;p&gt;Malgré ces petits défauts, Bulma reste une excellente option pour les projets qui cherchent à aller à l’essentiel. Si tu veux un site rapide à développer, responsive et bien structuré, sans t’encombrer de composants inutiles, c’est un choix solide. Parfait pour des projets simples où tu veux rester agile et efficace.&lt;/p&gt;</content:encoded></item><item><title>Soap - Le protocole qui a révolutionné les échanges de données ! 🚀/</title><link>https://papydev.fr/blog/34/</link><guid isPermaLink="true">https://papydev.fr/blog/34/</guid><pubDate>Fri, 27 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;T’as déjà bossé avec SOAP ? Si t’as commencé l’API game après 2010, t’as probablement esquivé cette “merveille”. Mais dans les années 90, c’était la solution pour échanger des données entre machines. 🌐&lt;/p&gt;&lt;p&gt;À l’époque, t’as des boîtes qui se lancent dans le e-commerce, la gestion d’inventaires à distance, bref, ça sentait bon la digitalisation du business. Mais fallait un truc pour connecter toutes ces grosses machines ensemble. Et SOAP débarque avec une promesse simple : “Donne-moi tes données en XML, et je les enverrai à l’autre bout du monde”. 🏢➡️🌍&lt;/p&gt;&lt;p&gt;Alors pourquoi SOAP a fait son petit effet ?&lt;/p&gt;&lt;p&gt;Imagine que t’as une multinationale avec une tonne de systèmes hétérogènes (ERP, CRM, etc.). Tout ça devait échanger des infos, genre des commandes, des clients, des factures. SOAP te promettait de tout standardiser, avec un protocole béton, bien structuré, et sécurisé. Les entreprises, elles ont vu un truc blindé pour leurs besoins d’échange B2B, avec validation et tout le tralala. Tout était formalisé, chaque requête devait respecter des règles strictes. Un vrai garde du corps des API. 🔐&lt;/p&gt;&lt;p&gt;Sauf que… SOAP, c’était aussi un peu comme un éléphant dans un magasin de porcelaine. Imposant, lourd et compliqué à gérer. Chaque requête, chaque réponse, ça te pondait du XML à rallonge. Rien que lire une réponse SOAP, c’était parfois une mission ! Et puis, le réseau prenait cher avec des payloads bien volumineux. 🌪️&lt;/p&gt;&lt;p&gt;Alors pourquoi tout ça a fini par tomber dans l’oubli ? Parce que des types, en voyant ce bazar, se sont dit qu’on pouvait faire plus simple et léger. (Coucou REST 👋)&lt;/p&gt;&lt;p&gt;Est-ce que SOAP a résolu des problèmes à l’époque ? Clairement, oui. Mais aujourd’hui, dans un monde où on veut de la légèreté et de la rapidité, c’est un peu comme rouler en 4x4 pour aller chercher son pain. 🚗💨&lt;/p&gt;&lt;p&gt;👉 T’as déjà bossé avec SOAP ou tu fais partie de la team REST/GraphQL ? C’était l’enfer ou la révolution à l’époque ?&lt;/p&gt;</content:encoded></item><item><title>XML-RPC - Le protocole qui a ouvert la voie aux APIs modernes ! 🚀/</title><link>https://papydev.fr/blog/35/</link><guid isPermaLink="true">https://papydev.fr/blog/35/</guid><pubDate>Sat, 28 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;T’as déjà entendu parler de XML-RPC ? C’est un peu le grand frère de SOAP, mais sans tout le bling-bling. Si SOAP c’était le tank blindé des API, XML-RPC c’était plutôt la moto cross : simple, efficace, mais ça tremblait un peu dans les virages. 🏍️&lt;/p&gt;&lt;p&gt;Début des années 90, on avait un problème simple : comment faire discuter deux machines à distance ? 🖥️📡🖥️ Et c’est là qu’arrive XML-RPC. Le concept est basique : on envoie des instructions à une machine distante via HTTP, et on encode tout ça en XML. La machine à l’autre bout interprète la requête et te renvoie une réponse. Pas de prise de tête, juste un Remote Procedure Call, avec XML comme langue commune.&lt;/p&gt;&lt;p&gt;Mais alors, pourquoi on s’en souvient encore ?&lt;/p&gt;&lt;p&gt;À l’époque, t’avais pas 36 options pour faire communiquer des systèmes distants. XML-RPC te donnait un moyen léger de le faire, tout en gardant la simplicité des requêtes HTTP. En gros, tu faisais passer une fonction (et ses paramètres) à distance. C’était l’idéal pour des petits échanges, sans se taper la complexité de SOAP. 🚀&lt;/p&gt;&lt;p&gt;Bon, faut avouer, c’était pas non plus la panacée. Déjà, XML, c’est pas connu pour sa légèreté. Ça reste plus simple que SOAP, mais chaque message XML est quand même bien verbeux. Et puis, niveau sécurité, c’était pas fou. Quand t’envoies des appels distants en HTTP sans chiffrement, faut pas être surpris si quelqu’un écoute aux portes. 👂&lt;/p&gt;&lt;p&gt;XML-RPC c’était la solution qui marchait bien tant que tu ne lui demandais pas la lune. Un peu comme cette vieille 206 qui te dépanne pour les trajets maison-boulot, mais que tu hésites à prendre pour partir en vacances à l’autre bout du pays. 🚗💥&lt;/p&gt;&lt;p&gt;Mais voilà, c’est la fin des années 90, les systèmes deviennent de plus en plus gros, les données aussi. On commence à avoir besoin de plus de flexibilité, de sécurité, et… SOAP arrive pour ramasser la mise. XML-RPC devient un peu le geek du lycée qui se fait discret pendant que les gros bras (SOAP) prennent le relais. 🤓&lt;/p&gt;&lt;p&gt;Fun fact : Y a encore quelques dinosaures qui tournent avec XML-RPC aujourd’hui ! Si t’as un vieux projet legacy qui traîne, tu risques d’y tomber dessus. Dans ce cas, bon courage !&lt;/p&gt;&lt;p&gt;Et toi, t’as déjà croisé la route de XML-RPC ? Des souvenirs ou c’est juste un acronyme de plus à oublier ? 👀&lt;/p&gt;</content:encoded></item><item><title>REST - Le protocole qui a révolutionné les APIs ! 🚀/</title><link>https://papydev.fr/blog/36/</link><guid isPermaLink="true">https://papydev.fr/blog/36/</guid><pubDate>Sun, 29 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Si t’es dev depuis un moment, t’as forcément déjà bossé avec REST. Et si c’est pas le cas… ben, t’as quand même bossé avec REST, t’en as juste pas conscience. 😅&lt;/p&gt;&lt;p&gt;Début des années 2000, un gars du nom de Roy Fielding balance une idée qui va transformer le monde des API : pourquoi se prendre la tête avec des protocoles complexes (coucou SOAP et XML-RPC), alors qu’on a déjà tout ce qu’il faut avec HTTP ? 🌍&lt;/p&gt;&lt;p&gt;Le principe est simple, REST c’est pas une technologie à proprement parler, c’est un style d’architecture. L’idée ? Utiliser les méthodes HTTP qu’on connaît déjà : GET, POST, PUT, DELETE, et les associer à des ressources (des URLs). En gros, t’as des “endpoints” qui représentent des objets ou des actions, et tu interagis avec eux via des requêtes HTTP. Rien de plus simple. Tu veux récupérer un user ? Tu fais un GET sur /users/1. Modifier un produit ? Un PUT sur /products/42. 🎯&lt;/p&gt;&lt;p&gt;C’est la révolution pour une raison : c’est léger. Pas besoin de fichiers XML énormes, tu passes des JSON simples et efficaces. Et surtout, REST s’adapte à tout : que ce soit pour de la data brute, une interface mobile, ou même des services web. C’est devenu le couteau suisse des API. 🛠️&lt;/p&gt;&lt;p&gt;Les irritants qu’on avait avant ? SOAP te demandait de définir chaque échange dans des fichiers WSDL (aka des pavés XML incompréhensibles), XML-RPC t’envoyait balader si t’avais une structure trop complexe… REST arrive et balaie tout ça avec un seul mot : simplicité.&lt;/p&gt;&lt;p&gt;Et c’est là que ça devient cool. T’as plus besoin de connaître un protocole farfelu, t’utilises juste ce bon vieux HTTP. Chaque action a son verbe (GET pour lire, POST pour créer, etc.), et le reste c’est juste des URLs et des datas bien propres. 🌐&lt;/p&gt;&lt;p&gt;Mais attention, REST, c’est aussi un peu la porte ouverte à l’anarchie. Vu que c’est un style et pas une norme, t’as autant de façons d’implémenter une API REST qu’il y a de devs sur Stack Overflow. Chacun fait à sa sauce : /api/v1/products ou juste /products, POST avec ou sans ID ? Bref, faut poser des règles pour pas finir avec une API REST qui ressemble à un plat de spaghettis. 🍝&lt;/p&gt;&lt;p&gt;REST a surtout permis aux microservices de décoller. Chaque petit service peut exposer une API REST, c’est facile à tester, facile à maintenir, et ça scale sans souci. 🏗️&lt;/p&gt;&lt;p&gt;Alors oui, REST c’est loin d’être parfait. Ça peut vite devenir un bazar à documenter si t’as une API complexe, et y’a toujours des débats sur la gestion des erreurs, mais comparé à ce qu’on avait avant, c’est un souffle d’air frais.&lt;/p&gt;&lt;p&gt;T’as une API REST sous la main qui te fait kiffer ou c’est plus galère qu’autre chose ? Partage tes tips, que ça tourne bien chez tout le monde ! 🚀&lt;/p&gt;</content:encoded></item><item><title>GraphQL - Le protocole flexible d&apos;APIs ! 🚀/</title><link>https://papydev.fr/blog/37/</link><guid isPermaLink="true">https://papydev.fr/blog/37/</guid><pubDate>Mon, 30 Sep 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;On rentre dans un autre délire : GraphQL. Si t’as commencé à t’embrouiller avec REST, prépare-toi à un vrai mind-blow. 💥&lt;/p&gt;&lt;p&gt;On est en 2015, et Facebook en a ras-le-bol de REST. Trop de sous-chargement (tu fais un appel, mais il manque toujours un bout d’info), trop de surchargement (tu fais un GET, mais t’as une tonne de données dont t’as pas besoin). Bref, REST, c’est bien, mais pas toujours adapté aux besoins modernes des apps et des clients qui demandent plus de flexibilité.&lt;/p&gt;&lt;p&gt;GraphQL débarque avec une promesse simple : et si tu pouvais demander exactement ce dont tu as besoin, ni plus, ni moins ? 🎯&lt;/p&gt;&lt;p&gt;Contrairement à REST où t’as des endpoints fixes pour chaque ressource, avec GraphQL, t’as un seul endpoint pour tout. Oui, un seul. Mais la magie, c’est que tu définis exactement les données que tu veux récupérer. Tu veux juste un nom d’utilisateur et ses derniers posts ? Pas de problème, tu fais une requête GraphQL, et bim, t’as juste ce qu’il te faut. 🎩✨&lt;/p&gt;&lt;p&gt;Là où REST te balance un JSON massif, même si tu veux juste deux champs sur cent, GraphQL te permet d’être chirurgical. 🚀&lt;/p&gt;&lt;p&gt;Ce que ça change ?&lt;br&gt;Pour les devs front-end, c’est juste le bonheur. Imagine : plus besoin de faire plusieurs appels pour récupérer tes users, leurs posts, et leurs commentaires. Tu fais une requête unique, et tu définis exactement ce que tu veux. Résultat : moins d’appels au backend, moins de données inutiles qui transitent, et une app plus rapide. ⚡&lt;/p&gt;&lt;p&gt;Le revers de la médaille ?&lt;br&gt;Ben… ça demande un peu de rigueur côté backend. Parce que pour que tout ça fonctionne, t’es obligé de bien définir ton schéma. C’est la clé de voûte de GraphQL : ton schéma doit décrire toutes les entités, leurs relations, et les types de données qu’elles manipulent. C’est à la fois super flexible, mais ça demande une bonne vision de ton système, sinon tu risques de te perdre dans un océan de queries trop complexes. 🌊&lt;/p&gt;&lt;p&gt;Autre truc cool : les subscriptions. Avec GraphQL, tu peux aussi demander à être prévenu en temps réel quand des données changent (coucou les apps de chat, de news en temps réel, etc.).&lt;/p&gt;&lt;p&gt;Mais attention, tout n’est pas parfait non plus. GraphQL, ça peut devenir un cauchemar de performance si tu fais pas gaffe. T’as des clients qui peuvent demander des tonnes de données en une seule requête, et si t’as mal pensé ton backend, ça peut vite plomber tes serveurs. 🚨&lt;/p&gt;&lt;p&gt;Au final, GraphQL, c’est la flexibilité ultime pour le client. Ça te permet de tout personnaliser, d’optimiser tes requêtes, et de rendre tes apps front hyper réactives. Mais ça demande aussi de l’organisation et un bon taf sur le schéma côté back. Si t’as un gros projet avec plein d’entités reliées entre elles, c’est un game-changer. Mais pour un petit projet avec trois appels, REST fait encore bien le taf. 🤷‍♂️&lt;/p&gt;&lt;p&gt;Et toi, t’es plutôt team REST ou team GraphQL ? T’as déjà mis en place des schémas un peu trop complexes qui t’ont fait regretter ton choix ? Partages tes galères ! 😅&lt;/p&gt;</content:encoded></item><item><title>gRPC - Le protocole ultra-rapide pour les APIs ! 🚀/</title><link>https://papydev.fr/blog/38/</link><guid isPermaLink="true">https://papydev.fr/blog/38/</guid><pubDate>Tue, 01 Oct 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;gRPC, c’est la Rolls des API quand tu veux jouer dans la cour des grands. Si REST et GraphQL te parlent de flexibilité et de simplicité, gRPC, lui, te balance un truc à la Google : optimisé, rapide, et conçu pour les microservices et les gros systèmes qui n’ont pas de temps à perdre. 🚀
&lt;/p&gt;&lt;p&gt;Sorti en 2016, gRPC (pour gRPC Remote Procedure Call) est basé sur HTTP/2 et utilise des Protocol Buffers (aka protobuf) pour encoder et transmettre les données. En gros, là où REST t’envoie des JSON et où GraphQL te balance du texte à la carte, gRPC passe en mode binaire. Oui, tu lis bien : des requêtes en binaire, c’est pas fait pour être humain-friendly, mais c’est ultra rapide et optimisé. 🏎️💨&lt;/p&gt;&lt;p&gt;Alors pourquoi Google a pondu ce bijou ? Simple : dans l’univers des microservices, t’as besoin de faire des appels rapides, nombreux et souvent complexes. REST fait le job, mais avec ses multiples requêtes et son overhead HTTP classique, ça finit par peser. Avec gRPC, t’as des communications ultra-rapides, parfait pour les gros systèmes distribués où chaque milliseconde compte. ⏱️&lt;/p&gt;&lt;p&gt;Ce qui change avec gRPC :&lt;/p&gt;&lt;p&gt;1. Protocol Buffers : Au lieu d’envoyer des données textuelles, gRPC les compresse en messages binaires grâce à protobuf. Résultat ? Des messages plus petits, donc des temps de réponse plus courts.&lt;br&gt; 2. HTTP/2 : gRPC utilise HTTP/2 qui supporte la multiplexation (plusieurs requêtes en parallèle sur la même connexion) et une meilleure gestion des flux. Ça te permet des échanges plus fluides, avec moins de latence.&lt;br&gt; 3. Communication bi-directionnelle : Là où REST est souvent “requête-réponse”, gRPC permet des streams bidirectionnels. Les deux parties peuvent s’envoyer des messages en continu, parfait pour des use cases temps réel comme du streaming vidéo, des jeux en ligne, ou de la communication IoT. 🔄&lt;/p&gt;&lt;p&gt;Mais, comme toujours, y’a des contreparties. gRPC, c’est pas vraiment le truc à utiliser pour une simple API publique consommée par des développeurs extérieurs. Les messages binaires, c’est pas facile à lire ni à débugger, et t’es obligé d’utiliser protobuf pour tout encoder/décoder. Autant dire que c’est pas aussi developer-friendly que REST ou GraphQL. 🧐&lt;/p&gt;&lt;p&gt;En gros, gRPC, c’est une bête de course taillée pour les architectures à haute performance, mais qui demande une bonne maîtrise côté back. Pas question d’improviser ou d’y aller à la cool comme avec REST. Faut une vraie réflexion sur la structure des messages, sur la gestion des services, et sur la communication entre tes microservices.&lt;/p&gt;&lt;p&gt;Est-ce que ça remplace REST ? Pas forcément. gRPC, c’est un super outil, mais il n’est pas aussi simple et universel que REST. Pour un API publique, tu vas probablement rester sur du REST, mais pour un écosystème interne de microservices, gRPC, c’est ton meilleur pote. 💪&lt;/p&gt;&lt;p&gt;Alors, tu t’es déjà lancé dans un projet gRPC ?&lt;/p&gt;</content:encoded></item><item><title>OracleDB - 🚀 Oracle Database, un dinosaure toujours d’attaque ? 🦖/</title><link>https://papydev.fr/blog/39/</link><guid isPermaLink="true">https://papydev.fr/blog/39/</guid><pubDate>Wed, 02 Oct 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Alors, pourquoi Oracle Database existe-t-il ? Pourquoi en 2024 on utilise encore cette machine de guerre alors que le marché déborde de solutions open-source, cloud-native et ultra-scalables ? 🤔&lt;/p&gt;&lt;p&gt;On remonte aux années 70, époque où les entreprises commencent à capter qu’elles croulent sous une montagne de données. Fini les feuilles Excel et les classeurs papiers, il fallait structurer, sécuriser et optimiser l’accès à l’information.&lt;/p&gt;&lt;p&gt;Et là, Oracle débarque avec une base de données relationnelle révolutionnaire. Le but ? Gérer des volumes gigantesques de données avec une vitesse impressionnante, tout en garantissant l’intégrité (Merci la transaction ACID 💥). À l’époque, c’était LE truc pour les grandes entreprises. IBM commençait à dominer le marché mais Oracle a pris tout le monde à contre-pied en apportant de la flexibilité.&lt;/p&gt;&lt;p&gt;🎯 Mais quel problème ça résout exactement ?&lt;br&gt;Les bases de données avant ça, c’était une galère pour maintenir la cohérence des infos. Imagine : tu enregistres une commande client mais le serveur plante avant de la valider ? 🤯 Résultat, soit tu as trop d’infos soit pas assez. Un vrai casse-tête.&lt;br&gt;Oracle est arrivé avec ses transactions fiables et un modèle relationnel qui a changé la donne pour les entreprises cherchant stabilité et performance.&lt;/p&gt;&lt;p&gt;Et en pratique ?&lt;/p&gt;&lt;p&gt; 1. Big data avant l’heure : Gérer des milliers de tables, des millions de lignes sans péter les plombs.&lt;br&gt; 2. Sécurité de ouf : À une époque où la cybersécurité était encore balbutiante, Oracle propose des features béton pour les banques, assurances, et même le gouvernement.&lt;br&gt;3. Haute dispo : Impossible de se permettre des pannes quand tu gères des millions de transactions par jour. Les entreprises devaient rester online H24.&lt;/p&gt;&lt;p&gt;Mais attends, Oracle n’est pas sans irritants 😏&lt;/p&gt;&lt;p&gt;❌ Coût stratosphérique : C’est clairement une solution de luxe. Entre les licences et les coûts d’infrastructure, c’est réservé à ceux qui ont les poches profondes. Tu es une startup ? Passe ton chemin.&lt;/p&gt;&lt;p&gt;❌ Complexité à gogo : Monter une base Oracle, c’est pas pour les amateurs. Il faut une armée de DBA pour maintenir la bête en forme.&lt;/p&gt;&lt;p&gt;❌ Rigidité : Certes, Oracle est hyper puissant, mais qu’est-ce qu’il est lourd… La flexibilité c’est pas son fort, surtout comparé à des solutions modernes et cloud-first comme PostgreSQL ou MongoDB.&lt;/p&gt;&lt;p&gt;En gros, Oracle, c’est un peu le mammouth sacré des bases de données. Il est solide, fiable, incontournable dans certains cas (luxe, industrie lourde, finance) mais… un peu old-school sur les bords. Parfait pour les grands comptes, mais pas vraiment pour ceux qui cherchent de l’agilité et du scaling à la carte.&lt;/p&gt;</content:encoded></item><item><title>MySQL - 🔥 MySQL, la base de données qui a tout cassé ! 🔥/</title><link>https://papydev.fr/blog/40/</link><guid isPermaLink="true">https://papydev.fr/blog/40/</guid><pubDate>Thu, 03 Oct 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Ok, après Oracle, parlons un peu de MySQL, le petit rebelle qui a fait trembler les géants dans les années 90. Pourquoi MySQL existe-t-il et quels irritants il a su résoudre ? Spoiler : c’est LE coup de pied dans la fourmilière du monde des bases de données. 🐜💥&lt;/p&gt;&lt;p&gt;Dans les années 90, le problème était simple : Les bdd, c’était hors de prix. Entre Oracle, IBM DB2, et d’autres, les solutions coûtaient une blinde et étaient complexes à mettre en œuvre.&lt;br&gt;Les entreprises qui voulaient se lancer sans avoir un budget millionnaire se retrouvaient coincées. C’est là qu’arrive MySQL, avec une idée simple : fournir une bdd open-source, accessible à tous et facile à utiliser.&lt;/p&gt;&lt;p&gt;👉 Problèmes résolus par MySQL ?&lt;br&gt;1. Simplicité et rapidité de prise en main : Son design est léger, rapide à installer, et tu pouvais avoir une base fonctionnelle en quelques minutes.&lt;br&gt; 2. Open-source et gratuit : MySQL débarque avec un modèle open-source. Autant dire que ça a ouvert la porte à toutes les startups du monde.&lt;br&gt; 3. Performance pour le web : À ses débuts, MySQL n’avait pas la même puissance qu’un Oracle, mais pour les applications web, où tu n’as pas forcément besoin de gérer des millions de transactions par seconde, MySQL était parfait.&lt;/p&gt;&lt;p&gt;🔧 Les features clés qui ont séduit :&lt;br&gt;• Léger et rapide : Comparé aux mastodontes comme Oracle ou SQL Server, MySQL tournait avec très peu de ressources, parfait pour les petites configs.&lt;br&gt;• Flexible : Utilisable sur tous les systèmes d’exploitation, avec différents moteurs de stockage pour adapter la performance à tes besoins.&lt;br&gt;• Communauté massive : Grâce à son côté open-source, une armée de développeurs s’est mobilisée pour améliorer et étendre MySQL, ce qui a aidé à son adoption rapide.&lt;/p&gt;&lt;p&gt;Mais bon… MySQL, c’est aussi quelques galères :&lt;br&gt;❌ Le support des transactions (au début) : Avant l’arrivée du moteur InnoDB, MySQL supportait pas les transactions comme un Oracle ou un PostgreSQL. Si tu avais un crash en plein milieu d’une série d’insertions… Bah t’étais bon pour pleurer. 😭&lt;/p&gt;&lt;p&gt;❌ Pas hyper optimisé pour le Big Data : Si tu veux scaler massivement ou faire du data analytics à grande échelle, MySQL n’est pas forcément l’outil idéal. Il peut gérer de gros volumes, mais au-delà d’un certain seuil, il commence à montrer ses limites.&lt;/p&gt;&lt;p&gt;❌ Fonctionnalités limitées : MySQL est fait pour être simple, mais ça veut dire qu’il manque pas mal de fonctionnalités avancées que tu trouverais dans d’autres bases de données (sauvegardes transactionnelles ultra-poussées, clustering natif, etc.).&lt;/p&gt;&lt;p&gt;Avec le temps, MySQL a évolué, racheté par Sun Microsystems puis Oracle (oui, encore eux 😏), mais il reste la base de données open-source la plus utilisée dans le monde, surtout pour des projets web et des applications légères à moyennes.&lt;/p&gt;</content:encoded></item><item><title>PostgreSQL - 🚀 PostgreSQL, la Rolls des bases de données open-source ? 💡/</title><link>https://papydev.fr/blog/41/</link><guid isPermaLink="true">https://papydev.fr/blog/41/</guid><pubDate>Fri, 04 Oct 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Si MySQL est le rebelle, alors PostgreSQL, c’est l’érudit. C’est un peu le sage du village des bases de données, celui qui se prend moins les pieds dans le tapis et qui te sort des trucs ultra-techniques sans se fatiguer. Pourquoi PostgreSQL a été créé ? Et quels irritants il est venu résoudre ?&lt;/p&gt;&lt;p&gt;On est au milieu des années 80. À l’époque, la question n’était plus juste de stocker des données, mais de manipuler des structures complexes. Les bases de données relationnelles comme Oracle dominaient, mais elles avaient leurs limites.&lt;br&gt;PostgreSQL est né pour pousser plus loin le concept de relationnel en y ajoutant une dimension objet. C’est là son truc : mélanger les bases de données relationnelles classiques avec des éléments de POO. Une vraie révolution en son temps !&lt;/p&gt;&lt;p&gt;👉 Les problèmes qu’il résout :&lt;br&gt;1. Gestion des données complexes : Là où MySQL et autres bases relationnelles se cantonnaient aux tables classiques, PostgreSQL permet de manipuler des données plus riches. Des types de données personnalisés, des tableaux, des JSON, des géométries… bref, de la puissance en barre ! 💥&lt;br&gt;2. Standards rigoureux : PostgreSQL est connu pour son adhérence stricte aux standards SQL. Ça peut paraître un détail, mais quand tu bosses sur des projets sensibles ou des applications critiques, respecter les normes c’est tout simplement indispensable.&lt;br&gt;3. Perf et scalabilité : PostgreSQL a toujours été conçu pour scaler proprement. Il gère les gros volumes de données avec plus de finesse, surtout pour des requêtes complexes.&lt;/p&gt;&lt;p&gt;🎯 Et en pratique ?&lt;br&gt; • ACID et transactions solides : Depuis le début, PostgreSQL met l’accent sur la cohérence et l’intégrité des données. T’as des transactions complexes à gérer ? PostgreSQL le fait sans broncher.&lt;br&gt; • JSON et data non structurée : T’as besoin de stocker des données semi-structurées ou du pur JSON ? PostgreSQL gère ça comme un chef.&lt;br&gt; • Extensibilité : Tu peux ajouter des extensions à PostgreSQL pour presque tout : indexation géospatiale, moteur de recherche full-text, et j’en passe. C’est le couteau suisse des bases de données relationnelles.&lt;/p&gt;&lt;p&gt;💥 Tout n’est pas rose…&lt;br&gt;❌ Complexité : PostgreSQL peut paraître intimidant. Il est clairement plus complexe à configurer et optimiser, surtout quand tu veux exploiter sa puissance.&lt;/p&gt;&lt;p&gt;❌ Moins populaire chez les juniors : Il a un côté “geek”, plus complexe à apprendre et donc moins utilisé par défaut pour des petits projets. &lt;/p&gt;&lt;p&gt;❌ Perf brute : Pour les requêtes basiques et les petites bases, PostgreSQL peut sembler un peu plus lourd que MySQL.&lt;/p&gt;&lt;p&gt;PostgreSQL est clairement une référence, surtout pour des app qui nécessitent de la rigueur, de la scalabilité et des données non structurées. Google, Apple, Reddit… tous l’utilisent. Et il n’a cessé de grandir en popularité avec la montée des architectures cloud.&lt;/p&gt;</content:encoded></item><item><title>MongoDB - 🔥 MongoDB : la base de données qui a envoyé valser les tables ! 🚀/</title><link>https://papydev.fr/blog/42/</link><guid isPermaLink="true">https://papydev.fr/blog/42/</guid><pubDate>Sat, 05 Oct 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Bon, après avoir parlé de SQL et ses potes, passons à MongoDB. Lui, c’est le rebelle ultime. Le gars a regardé les bases relationnelles et a dit : “Pourquoi se limiter à des tables ? Faisons ce qu’on veut, quand on veut !”. 🧨&lt;/p&gt;&lt;p&gt;👉 Pourquoi MongoDB a été créé ?&lt;br&gt;MongoDB est né pour apporter de la flexibilité. Pas de schéma fixe, pas besoin de migrations à chaque nouveau champ. Tu veux stocker des documents façon JSON ? Aucun souci. Il te permet de stocker, manipuler et interroger tes données sous forme de documents. Parfait pour les applis modernes. 🚀&lt;/p&gt;&lt;p&gt;🎯 Les problèmes résolus :&lt;br&gt;1️⃣ Données flexibles et non structurées : Si tes données changent constamment ou ne rentrent pas dans des tableaux rigides, MongoDB est idéal. Pense aux apps de réseaux sociaux : profils utilisateurs tous différents, avec photos, préférences… Impossible de tout caser proprement dans des colonnes fixes. MongoDB gère ça sans prise de tête.&lt;/p&gt;&lt;p&gt;2️⃣ Scalabilité horizontale : Là où les bases SQL se scalent verticalement (plus de puissance, plus de RAM), MongoDB se scale horizontalement en répartissant les données sur plusieurs serveurs. Parfait pour le Big Data. 🌐&lt;/p&gt;&lt;p&gt;3️⃣ Performances en lecture/écriture : Mongo est ultra-rapide pour les opérations massives, grâce à son modèle non transactionnel et sa gestion de la réplication. Si tu veux afficher des milliards de posts en un clin d’œil, c’est le choix à envisager.&lt;/p&gt;&lt;p&gt;🔧 En pratique :&lt;br&gt; • Pas de schéma rigide : Pas besoin de définir des colonnes et des types avant d’insérer des données. Mongo te laisse stocker tout et n’importe quoi, ça s’adapte.&lt;br&gt; • Haute disponibilité intégrée : Réplication facile sur plusieurs serveurs pour assurer que ta base ne tombe pas. Ça respire la fiabilité. 💪&lt;br&gt; • Support JSON natif : Les données sont stockées sous forme de documents (en BSON, un cousin du JSON), super pratique pour les devs web et mobiles qui manipulent déjà du JSON tout le temps.&lt;/p&gt;&lt;p&gt;💥 Mais… MongoDB a ses limites :&lt;br&gt;❌ Pas d’ACID complet pour les transactions : Oublie les transactions complexes à la Oracle ou PostgreSQL. Si tu as besoin d’une rigueur absolue sur l’intégrité des données, Mongo n’est pas le bon choix.&lt;/p&gt;&lt;p&gt;❌ Plus de travail pour la cohérence : Comme les données sont distribuées sur plusieurs serveurs, il faut parfois gérer toi-même certains aspects de la cohérence des données. C’est le prix à payer pour la scalabilité.&lt;/p&gt;&lt;p&gt;❌ Pas toujours optimal pour les requêtes complexes : Si tu as des requêtes SQL très pointues ou qui nécessitent des jointures, Mongo peut vite devenir limité. Ce n’est pas conçu pour ça.&lt;/p&gt;&lt;p&gt;MongoDB, c’est la solution parfaite pour les projets modernes, où les données évoluent vite et où la scalabilité est essentielle. Mais si tu as besoin de transactions ultra-fiables ou de requêtes complexes, ça peut devenir une galère.&lt;/p&gt;</content:encoded></item><item><title>Firebase - 🔥 Firebase Realtime Database : la base de données qui synchronise tout en temps réel ! 🚀/</title><link>https://papydev.fr/blog/43/</link><guid isPermaLink="true">https://papydev.fr/blog/43/</guid><pubDate>Sun, 06 Oct 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Après avoir exploré MongoDB, passons à Firebase Realtime Database. Celui-là, c’est le magicien du temps réel. Il a regardé les autres bases et a dit : “Pourquoi attendre pour voir les données mises à jour ? Faisons-le instantanément !”. 🧙‍♂️&lt;/p&gt;&lt;p&gt;👉 Pourquoi ça a été créé ?&lt;/p&gt;&lt;p&gt;Dans un monde où les appli doivent être réactives et synchronisées en temps réel, il fallait une solution pour gérer les données qui changent constamment. Firebase Realtime Database est né pour combler ce besoin, offrant une base de données NoSQL hébergée dans le cloud, qui synchronise les données entre les clients en temps réel. 🌐&lt;/p&gt;&lt;p&gt;🎯 Les problèmes résolus :&lt;/p&gt;&lt;p&gt;1️⃣ Synchro en temps réel : Plus besoin de rafraîchir la page ou de faire des requêtes répétées pour obtenir les dernières données. Dès qu’une donnée change, tous les clients connectés reçoivent instantanément la mise à jour.💬&lt;/p&gt;&lt;p&gt;2️⃣ Gestion simple du backend : Pas besoin de mettre en place un serveur complexe. Firebase gère l’infrastructure pour toi. Tu te concentres sur le développement de ton application, et Firebase s’occupe du reste. 🎯&lt;/p&gt;&lt;p&gt;3️⃣ Évolutivité automatique : Que tu aies 10 ou 10 millions d’utilisateurs, Firebase s’adapte automatiquement à la charge sans que tu aies à lever le petit doigt. C’est l’avantage du cloud managé. ☁️&lt;/p&gt;&lt;p&gt;🔧 En pratique :&lt;/p&gt;&lt;p&gt; • Structure de données flexible : Stocke tes données sous forme de JSON. Pas de schéma rigide, tu peux organiser tes données comme tu le souhaites.&lt;br&gt; • Sécurité intégrée : Règles de sécurité personnalisables pour contrôler qui peut accéder ou modifier les données. Tu peux définir des permissions précises selon les utilisateurs. 🔒&lt;br&gt;• Support multiplateforme : Des SDK pour Android, iOS, Web, et même C++. Tes applications peuvent partager les mêmes données en temps réel, quel que soit le device. 📱💻&lt;/p&gt;&lt;p&gt;💥 Mais… Firebase Realtime Database a ses limites :&lt;/p&gt;&lt;p&gt;❌ Requêtes limitées : Les possibilités de requêtes sont basiques. Pas de jointures complexes ou de requêtes SQL avancées. Si tu as besoin de traiter des données complexes, ça peut être un frein.&lt;/p&gt;&lt;p&gt;❌ Évolutivité des données hiérarchiques : Avec une structure JSON imbriquée, les datasets très profonds peuvent devenir difficiles à gérer et à maintenir. Il faut penser soigneusement à la structure de tes données.&lt;/p&gt;&lt;p&gt;❌ Dépendance au cloud de Google : Tu es lié à l’écosystème de Google. Si tu as des contraintes de localisation des données ou des politiques strictes, cela peut poser problème.&lt;/p&gt;&lt;p&gt;Firebase Realtime Database est idéal pour les applications qui nécessitent une synchro instantanée et une mise en place rapide sans se soucier de l’infrastructure. C’est un excellent choix pour les prototypes, les MVP, ou les applications en temps réel comme les chats et les jeux.&lt;/p&gt;</content:encoded></item><item><title>Apache - la révolte des développeurs contre les limitations du web/</title><link>https://papydev.fr/blog/44/</link><guid isPermaLink="true">https://papydev.fr/blog/44/</guid><pubDate>Mon, 02 Dec 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Tu te souviens du web des années 90 ? Moi un peu, je vais te poser le décor : on est en 1995, les pages web sont lentes, moches, et surtout, le logiciel dominant pour héberger ces pages est un projet propriétaire : NCSA HTTPd. Et là, gros problème : le développement de NCSA est quasiment à l’arrêt.&lt;/p&gt;&lt;p&gt;Frustration totale pour les développeurs. Quand un logiciel ne répond plus aux besoins, tu fais quoi ? Tu attends patiemment une mise à jour ? Pas dans ce cas. Une petite équipe de pionniers décide de se retrousser les manches et de réparer eux-mêmes le moteur. Ils se mettent à corriger les bugs, à optimiser le code… Bref, à bricoler des patchs.&lt;/p&gt;&lt;p&gt;C’est comme ça qu’Apache est né : un simple logiciel “patché”. D’ailleurs, le nom “Apache” viendrait de là : “a patchy server” (un serveur plein de patchs). Mais ce n’était que le début de la révolution.&lt;/p&gt;&lt;p&gt;Quel était l’irritant à résoudre ?&lt;/p&gt;&lt;p&gt;Les développeurs voulaient un serveur fiable, rapide et extensible. Un outil qu’ils pourraient faire évoluer eux-mêmes, sans dépendre d’un éditeur fermé. Ils ont donc misé sur deux idées simples mais puissantes :&lt;br&gt; 1. Open-source : Tout le monde pouvait contribuer, améliorer, ou même utiliser le serveur gratuitement.&lt;br&gt; 2. Modularité : Apache pouvait être personnalisé grâce à des modules pour répondre à des besoins spécifiques (sécurité, gestion des logs, etc.).&lt;/p&gt;&lt;p&gt;Résultat : Apache est devenu LE choix par défaut pour héberger des sites web, propulsant des millions de pages dans le monde. À son apogée, il hébergeait près de 70% du web mondial.&lt;/p&gt;&lt;p&gt;Pourquoi ça marche encore aujourd’hui ?&lt;/p&gt;&lt;p&gt;Parce que c’était un outil fait par des développeurs, pour des développeurs. Il s’adaptait à leurs besoins réels, dans un écosystème qu’ils contrôlaient.&lt;/p&gt;&lt;p&gt;Moralité ? Quand le système te bride, n’attends pas qu’il change : prends les choses en main. Apache, c’est la preuve que les petites équipes motivées peuvent changer les règles du jeu.&lt;/p&gt;&lt;p&gt;Et toi, ça t’est déjà arrivé de créer un outil juste parce que les solutions existantes te faisaient perdre patience ? Raconte-moi ton expérience, ça m’intéresse !&lt;/p&gt;</content:encoded></item><item><title>IIS - l’arme secrète pour verrouiller l’écosystème Windows/</title><link>https://papydev.fr/blog/45/</link><guid isPermaLink="true">https://papydev.fr/blog/45/</guid><pubDate>Tue, 03 Dec 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;1995, c’est une année charnière pour le web : le nombre de sites explose, tout le monde veut être en ligne, mais le marché des serveurs est dominé par Unix et des solutions comme Apache qui commencent à faire parler d’elles.&lt;/p&gt;&lt;p&gt;Microsoft, qui domine déjà le monde des systèmes d’exploitation avec Windows, ne peut pas rester spectateur. Le problème, c’est que les serveurs web de l’époque ne s’intègrent pas facilement avec Windows. Résultat : les entreprises galèrent à connecter leurs applications au web.&lt;/p&gt;&lt;p&gt;Quel était l’irritant à résoudre ?&lt;/p&gt;&lt;p&gt;Microsoft veut une solution clé en main, adaptée à son écosystème, pour convaincre les entreprises de tout faire tourner sur Windows.&lt;br&gt;Objectif : offrir un serveur web qui fonctionne comme une extension naturelle du système d’exploitation, et surtout, faciliter la gestion des applications web dynamiques, qui commencent à émerger avec des technologies comme ASP (Active Server Pages).&lt;/p&gt;&lt;p&gt;C’est comme ça qu’est né Internet Information Services (IIS).&lt;/p&gt;&lt;p&gt;Pourquoi IIS a marqué les esprits ?&lt;/p&gt;&lt;p&gt;1. Simplicité pour les utilisateurs Windows&lt;br&gt;Si tu savais gérer un serveur Windows, tu pouvais gérer IIS. Pas besoin de plonger dans la ligne de commande Unix ou d’apprendre un nouveau système. Tout se faisait via une interface graphique familière.&lt;br&gt;2. Optimisation pour ASP et .NET&lt;br&gt;Avec IIS, Microsoft a créé une symbiose parfaite entre son serveur et ses technologies comme ASP, puis ASP.NET. Les développeurs avaient enfin une solution intégrée pour construire des applications dynamiques sans avoir à jongler entre différents outils.&lt;br&gt;3. Gestion centralisée&lt;br&gt;Microsoft a joué la carte du confort : IIS était facile à déployer, à administrer et à sécuriser, directement depuis Windows.&lt;/p&gt;&lt;p&gt;Le vrai enjeu derrière IIS ?&lt;/p&gt;&lt;p&gt;Créer un écosystème verrouillé. En proposant IIS gratuitement avec Windows Server, Microsoft s’assurait que les entreprises adopteraient ses outils pour tout : OS, serveur web, développement applicatif.&lt;br&gt;L’objectif n’était pas seulement de concurrencer Apache ou Nginx, mais de garder les développeurs captifs dans un environnement 100% Microsoft.&lt;/p&gt;&lt;p&gt;Et aujourd’hui ?&lt;/p&gt;&lt;p&gt;IIS a perdu en popularité face à des alternatives open-source comme Nginx, mais reste un choix privilégié dans les environnements d’entreprise, surtout pour les solutions basées sur .NET.&lt;/p&gt;&lt;p&gt;Moralité ? Si tu contrôles les bases (comme un OS), tu peux bâtir tout un empire dessus. IIS, c’était la pièce manquante du puzzle pour Microsoft, et ils l’ont utilisée pour conquérir le web d’entreprise.&lt;/p&gt;&lt;p&gt;Et toi, tu es plutôt team “open-source” comme Apache, ou tu aimes le confort d’un écosystème bien intégré comme IIS ? Je veux ton avis !&lt;/p&gt;</content:encoded></item><item><title>Tomcat - le chat sauvage qui a boosté Java sur le web/</title><link>https://papydev.fr/blog/46/</link><guid isPermaLink="true">https://papydev.fr/blog/46/</guid><pubDate>Wed, 04 Dec 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Fin des années 90, Internet explose, et avec lui, les sites web deviennent de plus en plus complexes. On ne veut plus seulement afficher des pages statiques, mais bien des applications dynamiques, capables de gérer des interactions, des bases de données, et des utilisateurs connectés.&lt;/p&gt;&lt;p&gt;Le problème ? Les technologies existantes pour construire des applications web sont soit trop limitées, soit trop propriétaires. Java, qui commence à s’imposer comme un langage universel grâce à sa portabilité (“Write Once, Run Anywhere”), a un potentiel énorme… mais aucune solution vraiment optimisée pour le web.&lt;/p&gt;&lt;p&gt;Quel était l’irritant à résoudre ?&lt;/p&gt;&lt;p&gt;Les développeurs avaient besoin d’un serveur capable de :&lt;br&gt; • Exécuter du code Java côté serveur (avec des servlets et des JSP – JavaServer Pages).&lt;br&gt; • Simplifier la création d’applications web complexes.&lt;br&gt; • Offrir une alternative open-source aux solutions coûteuses des géants comme IBM (WebSphere) ou BEA Systems (WebLogic).&lt;/p&gt;&lt;p&gt;C’est là qu’Apache entre en scène avec Tomcat, en 1999.&lt;/p&gt;&lt;p&gt;Pourquoi Tomcat a fait un carton ?&lt;/p&gt;&lt;p&gt; 1. Une solution open-source pour Java&lt;br&gt;Tomcat était gratuit et open-source, à une époque où les solutions Java côté serveur étaient surtout payantes et hors de portée des petites équipes.&lt;br&gt; 2. Support natif des standards Java EE (aujourd’hui Jakarta EE)&lt;br&gt;Tomcat permettait de faire tourner des servlets Java et des JSP, ce qui a standardisé la façon de développer des applications web dynamiques en Java. Plus besoin de bricoler des solutions maison.&lt;br&gt;3. Léger et simple à utiliser&lt;br&gt;Contrairement à des mastodontes comme WebSphere ou WebLogic, Tomcat était léger, rapide à déployer, et parfait pour les petites applications web. Il a souvent servi de tremplin avant de passer à des solutions plus robustes.&lt;/p&gt;&lt;p&gt;Le rôle stratégique de Sun Microsystems&lt;/p&gt;&lt;p&gt;Petite anecdote : Tomcat a été développé en collaboration avec Sun Microsystems (les créateurs de Java). Pourquoi ? Parce que Sun voulait s’assurer que Java devienne LA norme sur le web. En soutenant un projet open-source comme Tomcat, ils ont donné un énorme coup de pouce à l’écosystème Java.&lt;/p&gt;&lt;p&gt;Et aujourd’hui ?&lt;/p&gt;&lt;p&gt;Tomcat reste une référence pour les applications Java légères et modulaires. Même si des solutions comme WildFly ou Spring Boot l’ont un peu éclipsé, il est encore largement utilisé, notamment dans les projets où simplicité et rapidité de mise en œuvre sont des priorités.&lt;/p&gt;&lt;p&gt;Moralité ? Quand tu veux imposer une technologie, donne aux développeurs les outils qu’ils demandent, pas des usines à gaz. Tomcat, c’était la preuve qu’un projet open-source bien pensé peut renverser des solutions coûteuses et compliquées.&lt;/p&gt;&lt;p&gt;Et toi, tu l’as déjà utilisé, ce “chat sauvage” ? Une petite anecdote sur un projet Java où Tomcat a sauvé la mise ? Je suis curieux d’entendre ton histoire !&lt;/p&gt;</content:encoded></item><item><title>Jboss - la revanche des entreprises sur les serveurs hors de prix/</title><link>https://papydev.fr/blog/47/</link><guid isPermaLink="true">https://papydev.fr/blog/47/</guid><pubDate>Thu, 05 Dec 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Début des années 2000. Les entreprises veulent des applications web robustes, capables de gérer des systèmes complexes : gestion d’inventaire, ERP, CRM, tout le bazar. Le problème ? Si tu voulais un serveur Java complet pour ce genre d’applications, tu devais sortir le portefeuille. IBM WebSphere et BEA WebLogic dominaient le marché avec leurs solutions ultra-puissantes… mais aussi ultra-chères.&lt;/p&gt;&lt;p&gt;Les petites et moyennes entreprises ? Laissées sur le carreau. Trop cher, trop compliqué, et souvent surdimensionné.&lt;/p&gt;&lt;p&gt;C’est là qu’arrive un gars nommé Marc Fleury, avec une idée simple mais ambitieuse : pourquoi les serveurs d’applications Java devraient-ils coûter une fortune ? En 1999, il lance JBoss, un serveur open-source qui promet de démocratiser Java pour les applications d’entreprise.&lt;/p&gt;&lt;p&gt;Quel était l’irritant à résoudre ?&lt;/p&gt;&lt;p&gt;Les entreprises avaient besoin de :&lt;br&gt;1. Une solution Java gratuite et open-source pour éviter les coûts astronomiques des serveurs propriétaires.&lt;br&gt; 2. Un serveur capable de gérer les spécifications Java EE (aujourd’hui Jakarta EE), avec toutes ses fonctionnalités avancées : transactions, sécurité, messagerie, persistance, etc.&lt;br&gt;3. Une alternative qui ne sacrifie pas la qualité, même sans payer.&lt;/p&gt;&lt;p&gt;JBoss a coché toutes ces cases.&lt;/p&gt;&lt;p&gt;Pourquoi JBoss a secoué le marché ?&lt;/p&gt;&lt;p&gt;1. Open-source, mais pro&lt;br&gt;JBoss n’était pas un projet amateur. Dès le départ, il visait les grandes entreprises avec un modèle de support payant. L’idée ? Tu peux utiliser le serveur gratuitement, mais si tu veux une assistance pro ou des fonctionnalités premium, tu passes à la caisse.&lt;br&gt; 2. Un vrai support de Java EE&lt;br&gt;JBoss était l’un des premiers serveurs open-source à être certifié Java EE, ce qui en faisait une alternative sérieuse aux solutions propriétaires. Les entreprises pouvaient enfin développer des applications Java complexes sans se ruiner.&lt;br&gt;3. Communauté et innovation&lt;br&gt;Avec une énorme communauté de développeurs, JBoss évoluait rapidement. Chaque version apportait des améliorations, souvent inspirées des besoins réels des utilisateurs.&lt;/p&gt;&lt;p&gt;En 2006, Red Hat (le géant de l’open-source) rachète le projet pour environ 350 millions de dollars. Leur objectif : intégrer JBoss à leur écosystème Linux pour offrir une solution complète, du système d’exploitation au serveur d’applications.&lt;/p&gt;&lt;p&gt;Et aujourd’hui ?&lt;/p&gt;&lt;p&gt;JBoss a été rebaptisé WildFly en 2013, mais il reste une référence pour les environnements Java d’entreprise. Avec son modèle open-source et ses performances solides, il est encore largement utilisé, notamment dans les secteurs où Java règne en maître.&lt;/p&gt;&lt;p&gt;Moralité ? Quand les géants verrouillent le marché, il y a toujours une place pour un outsider prêt à bousculer les codes.&lt;/p&gt;&lt;p&gt;Et toi, t’as déjà travaillé avec JBoss ou WildFly ? C’est le serveur qui t’a sorti d’un enfer bureaucratique, ou plutôt celui qui t’a fait hurler un dimanche soir ? Partage ton expérience, ça m’intéresse !&lt;/p&gt;</content:encoded></item><item><title>Nginx - le serveur conçu pour gérer le chaos du web moderne/</title><link>https://papydev.fr/blog/48/</link><guid isPermaLink="true">https://papydev.fr/blog/48/</guid><pubDate>Fri, 06 Dec 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;On est en 2004. Le web a bien grandi depuis les années 90 : plus de sites, plus de trafic, plus de complexité. Les serveurs classiques comme Apache commencent à montrer leurs limites face à l’explosion du web.&lt;/p&gt;&lt;p&gt;Imagine un site à succès, genre un forum ou un e-commerce. Chaque clic, chaque requête, chaque image charge le serveur un peu plus. Résultat ? Les temps de réponse explosent, et pire encore, le serveur peut tomber sous la charge.&lt;/p&gt;&lt;p&gt;C’est dans ce contexte que débarque Nginx (prononcé “Engine-X”), créé par Igor Sysoev, un ingénieur russe. Son objectif ? Résoudre un problème bien précis : la gestion massive de connexions simultanées. Parce que, franchement, quoi de plus frustrant qu’un site qui rame ou plante quand il commence à avoir du succès ?&lt;/p&gt;&lt;p&gt;Quel était l’irritant à résoudre ?&lt;/p&gt;&lt;p&gt;1. Les serveurs comme Apache utilisaient un modèle de traitement basé sur des processus ou des threads, ce qui consommait énormément de mémoire et devenait vite inefficace sous forte charge.&lt;br&gt;2. Les sites web modernes avaient besoin de servir des fichiers statiques (images, vidéos, scripts) rapidement et efficacement.&lt;br&gt;&lt;/p&gt;&lt;p&gt;3. Les entreprises voulaient des outils capables de gérer à la fois des serveurs web et des reverse proxies (pour répartir la charge entre plusieurs backends).&lt;/p&gt;&lt;p&gt;Pourquoi Nginx a changé la donne ?&lt;/p&gt;&lt;p&gt;1. Une architecture asynchrone&lt;br&gt;Contrairement à Apache, Nginx utilise un modèle d’événements asynchrones. En gros, il peut gérer des milliers de connexions simultanément sans exploser la mémoire. Idéal pour les sites à fort trafic.&lt;br&gt; 2. Léger et rapide&lt;br&gt;Nginx est conçu pour exceller dans ce qu’il fait de mieux : servir des fichiers statiques en un éclair et agir comme un reverse proxy ultra-performant.&lt;br&gt;3. Modularité et simplicité&lt;br&gt;Plutôt que de tout configurer avec des tonnes de modules comme Apache, Nginx est optimisé dès le départ pour les cas d’utilisation modernes. Proxy, load balancing, cache : tout est intégré proprement.&lt;br&gt;4. Un outil taillé pour le futur&lt;br&gt;À l’époque, les entreprises commencent à adopter des architectures distribuées. Nginx, avec son rôle de proxy inverse et de load balancer, devient vite l’allié incontournable pour gérer des infrastructures complexes.&lt;/p&gt;&lt;p&gt;Et aujourd’hui ?&lt;/p&gt;&lt;p&gt;Nginx n’a pas juste survécu : il a redéfini les standards du serveur web. Il est souvent utilisé avec des technologies modernes comme Kubernetes, Docker, et les stacks cloud natives.&lt;/p&gt;&lt;p&gt;Moralité ? Parfois, pour résoudre un problème, il faut arrêter de bricoler et repartir de zéro. Nginx, c’est l’histoire d’un outil minimaliste, mais taillé sur mesure pour le web d’aujourd’hui.&lt;/p&gt;&lt;p&gt;Et toi, tu l’as déjà utilisé comme reverse proxy ou pour booster les perfs d’un projet ? Tu es team Apache ou tu as déjà basculé dans le monde de Nginx ? Partage ton expérience, je suis curieux !&lt;/p&gt;</content:encoded></item><item><title>Fonctionnaire - le métier qui fait tourner la machine administrative/</title><link>https://papydev.fr/blog/49/</link><guid isPermaLink="true">https://papydev.fr/blog/49/</guid><pubDate>Mon, 09 Dec 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Tu savais que le premier “statut” légal pour travailler dans l’informatique était… fonctionnaire ?&lt;/p&gt;

&lt;p&gt;Bon, pas dans le sens “dev fullstack” comme aujourd’hui, mais ça remonte aux années 1950-60, quand les premiers ordinateurs ont commencé à débarquer dans les administrations publiques.&lt;/p&gt;

&lt;p&gt;À l’époque, l’informatique, c’était du matériel énorme, des bandes magnétiques et des programmes écrits directement en assembleur. Les gouvernements avaient un besoin urgent de “geeks” capables de dompter ces machines, mais voilà : la tech était un truc de niche. Les entreprises privées n’étaient pas encore prêtes à investir lourdement, alors c’est l’État qui s’est chargé de poser les bases.&lt;/p&gt;

&lt;p&gt;Le statut de fonctionnaire s’est imposé naturellement. Pourquoi ? Parce que ça résolvait un gros irritant de l’époque : la fuite des talents vers des secteurs mieux payés et moins risqués.&lt;br&gt;Avec la sécurité de l’emploi, les fonctionnaires IT étaient assurés de bosser sur le long terme sans avoir à se soucier de l’instabilité du marché. Et en prime, les projets étaient souvent monumentaux : informatisation des impôts, mise en place des systèmes de sécurité nationale, ou encore réseaux de communication pour l’administration.&lt;/p&gt;

&lt;p&gt;Mais il faut bien le dire : ce statut a aussi créé une certaine rigidité.&lt;br&gt;Les projets pouvaient traîner pendant des années, les évolutions de carrière étaient lentes, et les outils technologiques n’étaient pas toujours à la pointe.&lt;/p&gt;

&lt;p&gt;Aujourd’hui, le rôle des fonctionnaires IT reste crucial, notamment dans des domaines comme la cybersécurité ou la gestion des données sensibles. Mais le mythe du “fonctionnaire planqué” a clairement du plomb dans l’aile : les défis sont réels, et les opportunités de faire bouger les choses existent vraiment.&lt;/p&gt;

&lt;p&gt;Alors, fonctionnaire dans la tech, vision d’avenir ou relique du passé ?&lt;/p&gt;</content:encoded></item><item><title>CDI - le contrat qui a façonné le monde du travail/</title><link>https://papydev.fr/blog/50/</link><guid isPermaLink="true">https://papydev.fr/blog/50/</guid><pubDate>Tue, 10 Dec 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Le CDI, c’est un peu le pilier du travail moderne. Mais sais-tu pourquoi il existe, et comment il s’est imposé, même dans l’IT ?&lt;/p&gt;

&lt;p&gt;Retour à la fin du XIXe siècle. Avec l’industrialisation, les ouvriers enchaînaient les jobs précaires, payés à la tâche, sans aucune garantie d’emploi. Pas de salaire fixe, pas d’assurance en cas de maladie, pas de congés. Bref, c’était une galère permanente.&lt;/p&gt;

&lt;p&gt;Pour remédier à cette insécurité, des lois sont progressivement apparues pour encadrer les contrats de travail. En France, c’est en 1890 qu’on pose les bases du contrat “permanent”. Le CDI moderne, lui, devient vraiment la norme avec le Code du Travail de 1910, conçu pour protéger les salariés contre les licenciements abusifs.&lt;/p&gt;

&lt;p&gt;Dans l’IT, le CDI commence à s’imposer dans les années 1980-90, quand les entreprises se rendent compte que l’informatique n’est plus juste une “aide” mais un pilier stratégique.&lt;br&gt;Pour attirer les rares profils qualifiés (et éviter qu’ils se barrent chez le concurrent), elles misent sur ce fameux contrat indéterminé : sécurité de l’emploi, salaire fixe, avantages sociaux.&lt;/p&gt;

&lt;p&gt;Le CDI a été conçu pour résoudre un irritant universel : l’instabilité.&lt;br&gt;Quand tu signes un CDI, tu sais que tes fins de mois sont assurées, que tu peux poser tes congés sans trembler, et que tu as des droits en cas de coup dur (maladie, chômage). C’est un deal gagnant-gagnant : les employeurs fidélisent leurs talents, les employés gagnent en sérénité.&lt;/p&gt;

&lt;p&gt;Mais voilà, le CDI dans l’IT, c’est pas toujours le graal.&lt;br&gt;Dans un secteur en mouvement perpétuel, beaucoup trouvent le modèle trop rigide : des horaires fixes, des process parfois lourds, et un sentiment d’être un “rouage” parmi d’autres.&lt;br&gt;Résultat, certains devs se tournent vers le freelancing pour plus de liberté, ou vers des startups pour l’agilité.&lt;/p&gt;&lt;p&gt;Le CDI reste pourtant un choix incontournable pour ceux qui cherchent stabilité et structure.&lt;br&gt;Et toi, tu trouves que le CDI, c’est un filet de sécurité ou une cage dorée ?&lt;/p&gt;</content:encoded></item><item><title>Associé Startup - la quête du rêve entrepreneurial/</title><link>https://papydev.fr/blog/51/</link><guid isPermaLink="true">https://papydev.fr/blog/51/</guid><pubDate>Wed, 11 Dec 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Les années 90-2000, c’est l’époque où la Silicon Valley devient le nouvel eldorado. Un garage, un PC, un rêve… et bam, c’est parti pour créer “le prochain grand truc”. Mais attention : à ce moment-là, les startups, c’est souvent des budgets serrés et zéro certitude. Pas de quoi offrir des CDI en or.&lt;/p&gt;

&lt;p&gt;Pourtant, attirer des talents, c’est vital. Et là, une idée simple mais puissante naît : associer les premiers employés au projet.&lt;br&gt;Plutôt que de promettre un gros salaire qu’ils n’ont pas, les fondateurs offrent des parts de la boîte, un siège à la table des décisions et, surtout, une chance de partager le jackpot si l’entreprise décolle.&lt;/p&gt;

&lt;p&gt;Ce statut d’associé répond à un gros irritant de l’époque : comment recruter et fidéliser des talents quand on n’a pas d’argent.&lt;br&gt;En devenant associé, le salarié ne devient pas juste un exécutant : il porte le projet avec ses tripes, prend des risques, mais espère aussi une énorme récompense. L’idée, c’est de transformer le “coup de poker” en motivation collective.&lt;/p&gt;

&lt;p&gt;Dans le monde de l’IT, ce modèle explose avec des entreprises comme Google, Facebook ou encore Amazon, qui transforment leurs premiers collaborateurs en millionnaires. Mais attention : la médaille a son revers.&lt;br&gt;Être associé, c’est aussi accepter de bosser jour et nuit, souvent sans garantie de succès. C’est risquer de perdre son investissement (de temps ou d’argent) si la boîte se plante. Et parfois, c’est découvrir qu’une part dans une entreprise… ne vaut pas grand-chose tant qu’elle n’est pas vendue.&lt;/p&gt;

&lt;p&gt;Aujourd’hui, le statut d’associé reste un rêve pour beaucoup. Il combine deux choses puissantes : l’envie de créer quelque chose de grand et la possibilité de partager un succès collectif. Mais il faut être lucide : tout le monde ne finira pas comme Steve Wozniak.&lt;/p&gt;

&lt;p&gt;Et toi, tu tenterais l’aventure, ou tu trouves ça trop risqué ?&lt;/p&gt;</content:encoded></item><item><title>Freelance - la révolution de l’indépendance/</title><link>https://papydev.fr/blog/52/</link><guid isPermaLink="true">https://papydev.fr/blog/52/</guid><pubDate>Thu, 12 Dec 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Années 2000. Internet explose, les entreprises se digitalisent à toute vitesse, et la demande pour les talents IT devient complètement dingue. Les développeurs, designers, et autres experts en tech se rendent compte d’une chose : ils n’ont plus besoin d’être salariés pour trouver des missions.&lt;/p&gt;

&lt;p&gt;Mais voilà, jusqu’en 2009, devenir indépendant en France, c’est un vrai parcours du combattant.&lt;br&gt;Monter une entreprise implique des démarches complexes, un comptable obligatoire, et des charges élevées, même si tu ne gagnes pas grand-chose.&lt;br&gt;Résultat, beaucoup se freinent ou passent sous les radars avec des activités “au black”.&lt;/p&gt;

&lt;p&gt;C’est là qu’intervient un coup de génie : la création du statut d’auto-entrepreneur (rebaptisé micro-entrepreneur en 2016).&lt;br&gt;En un clic (ou presque), tu déclares ton activité, tu ne paies des cotisations que si tu gagnes de l’argent, et tu peux te lancer rapidement.&lt;br&gt;Pour l’IT, c’est une révolution : la liberté devient accessible.&lt;/p&gt;

&lt;p&gt;Le freelance, c’est une réponse à un gros irritant du CDI : la perte d’autonomie.&lt;br&gt;Les devs veulent choisir leurs missions, leurs clients, leurs horaires.&lt;br&gt;Ils veulent casser la routine, bosser sur des projets variés, et, soyons honnêtes, gagner plus d’argent.&lt;br&gt;Et le marché leur donne raison : les entreprises cherchent de plus en plus des compétences pointues sur des durées limitées.&lt;br&gt;Le freelance, c’est du gagnant-gagnant.&lt;/p&gt;

&lt;p&gt;Mais tout n’est pas rose. Être freelance, c’est aussi accepter l’incertitude.&lt;br&gt;Pas de salaire garanti, des périodes de creux, et surtout, une montagne de responsabilités : trouver des clients, négocier les contrats, gérer la facturation…&lt;br&gt;Et ça, c’est sans parler des galères administratives (merci l’URSSAF).&lt;/p&gt;

&lt;p&gt;Aujourd’hui, le freelancing dans l’IT n’a jamais été aussi populaire.&lt;br&gt;Avec les plateformes comme Malt, Upwork ou LinkedIn, les devs peuvent facilement trouver des missions et construire leur carrière à leur rythme.&lt;br&gt;Mais la vraie question, c’est : est-ce que cette liberté vaut le stress qui vient avec ?&lt;/p&gt;

&lt;p&gt;Toi, tu te verrais bosser en freelance, ou tu préfères garder le confort du salariat ?&lt;/p&gt;</content:encoded></item><item><title>Portage salarial - la liberté sans (trop de) risques/</title><link>https://papydev.fr/blog/53/</link><guid isPermaLink="true">https://papydev.fr/blog/53/</guid><pubDate>Fri, 13 Dec 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Années 1980, en pleine révolution du travail. Les entreprises commencent à externaliser certains services, et les indépendants se multiplient. Mais voilà, à cette époque, être freelance, c’est souvent synonyme de précarité : pas de chômage, pas de couverture santé digne de ce nom, et des démarches administratives qui découragent même les plus motivés.&lt;/p&gt;

&lt;p&gt;C’est là qu’apparaît une solution hybride en France : le portage salarial.&lt;br&gt;
L’idée est simple : tu bosses comme un indépendant, mais avec les avantages d’un salarié. Une société de portage gère toute la paperasse pour toi (factures, cotisations, déclarations) et te transforme tes honoraires en salaire. Résultat : tu es couvert en cas de pépin, tu cotises pour la retraite, et tu peux te concentrer sur tes missions.&lt;/p&gt;

&lt;p&gt;À la base, le portage salarial est conçu pour résoudre un irritant précis : la peur du grand saut.&lt;br&gt;
Tu veux être indépendant, mais tu flippes de te retrouver sans filet de sécurité ? Le portage te propose un compromis. C’est un statut parfait pour tester l’indépendance sans devoir monter une structure et sans perdre les protections sociales du salariat.&lt;/p&gt;

&lt;p&gt;Dans l’IT, il devient populaire dans les années 2010, quand les freelances explosent mais que certains hésitent encore à se lancer à 100%.&lt;br&gt;
Pour les clients, c’est aussi pratique : pas de contrat long et lourd à gérer, tout est pris en charge par la société de portage.&lt;/p&gt;

&lt;p&gt;Mais évidemment, rien n’est parfait.&lt;br&gt;
Le portage, c’est un coût : la société prélève généralement entre 5 et 15% de tes revenus pour ses services. Et même si tu as une sécurité sociale, tu restes soumis aux aléas du freelancing : périodes creuses, chasse aux missions, ou négociations de tarifs.&lt;/p&gt;

&lt;p&gt;Aujourd’hui, le portage salarial est une vraie alternative dans l’IT, surtout pour ceux qui cherchent à tester leur activité sans se jeter dans le vide.&lt;br&gt;
Tu vois ça comme une solution de confort ou une étape vers une indépendance totale ?&lt;/p&gt;</content:encoded></item><item><title>Sprint Planning - Éviter le chaos dès le départ/</title><link>https://papydev.fr/blog/54/</link><guid isPermaLink="true">https://papydev.fr/blog/54/</guid><pubDate>Mon, 16 Dec 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Tu connais ce moment où tout le monde bosse sur des trucs différents, sans direction claire, et à la fin… rien ne s’emboîte ?&lt;br&gt;
C’est exactement pour ça qu’on a inventé le Sprint Planning.&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;Problème :&lt;/strong&gt; Pas de priorités, des attentes floues, et surtout… des deadlines qui explosent.&lt;/p&gt;

&lt;p&gt;💡 &lt;strong&gt;Solution :&lt;/strong&gt; La planification du sprint clarifie :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Quoi faire ?&lt;/strong&gt; (on priorise avec le Product Owner)&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Comment le faire ?&lt;/strong&gt; (l’équipe découpe les tâches, les estime, et se met d’accord).&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Pourquoi ?&lt;/strong&gt; (on se soude autour d’un objectif de sprint).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚙️ &lt;strong&gt;Bénéfices :&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Alignement total de l’équipe.&lt;/li&gt;
    &lt;li&gt;Une charge de travail réaliste (théoriquement).&lt;/li&gt;
    &lt;li&gt;Moins de surprises en cours de route.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚠️ &lt;strong&gt;Inconvénients :&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Si mal préparée, ça devient une réunion interminable.&lt;/li&gt;
    &lt;li&gt;Besoin que le backlog soit bien trié, sinon c’est la cata.&lt;/li&gt;
    &lt;li&gt;Pas toujours simple d’estimer les efforts (surtout pour les juniors).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bref, si ton équipe galère à se mettre d’accord ou court après des deadlines impossibles, un bon Sprint Planning peut changer la donne.&lt;/p&gt;

&lt;p&gt;Et toi, combien de fois as-tu regretté de ne pas avoir bien planifié un sprint ?&lt;/p&gt;</content:encoded></item><item><title>Daily Standup - Le GPS de l’équipe/</title><link>https://papydev.fr/blog/55/</link><guid isPermaLink="true">https://papydev.fr/blog/55/</guid><pubDate>Tue, 17 Dec 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Tu t’es déjà retrouvé avec un dev qui bosse sur une branche depuis deux jours… pour un truc qu’on avait décidé de laisser tomber ?&lt;br&gt;
C’est pour ça qu’on fait des Daily Stand-Ups.&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;Problème :&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Un manque de communication.&lt;/li&gt;
    &lt;li&gt;Des blocages qui traînent parce que personne ne sait qu’ils existent.&lt;/li&gt;
    &lt;li&gt;L’impression de naviguer sans boussole.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡 &lt;strong&gt;Solution :&lt;/strong&gt;&lt;br&gt;
15 minutes pour :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Synchroniser l’équipe.&lt;/li&gt;
    &lt;li&gt;Lever les blocages (même un simple “ça marche pas”).&lt;/li&gt;
    &lt;li&gt;Réaligner si besoin (“Ah non, ça c’était pas prioritaire !”).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚙️ &lt;strong&gt;Bénéfices :&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Tout le monde sait ce que font les autres.&lt;/li&gt;
    &lt;li&gt;Détection rapide des problèmes.&lt;/li&gt;
    &lt;li&gt;Plus de collaboration (on se sent moins seul face à son bug).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚠️ &lt;strong&gt;Inconvénients :&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Ça peut devenir une routine monotone si personne ne prépare.&lt;/li&gt;
    &lt;li&gt;Si ça dure trop longtemps, l’équipe décroche.&lt;/li&gt;
    &lt;li&gt;Les introvertis peuvent avoir du mal à s’exprimer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;C’est comme un check-up quotidien : rapide, efficace, et souvent salvateur.&lt;/p&gt;

&lt;p&gt;Alors, tes Stand-Ups durent 15 minutes… ou une éternité ?&lt;/p&gt;</content:encoded></item><item><title>Sprint Review - Valider qu’on avance dans la bonne direction/</title><link>https://papydev.fr/blog/56/</link><guid isPermaLink="true">https://papydev.fr/blog/56/</guid><pubDate>Wed, 18 Dec 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;T’as déjà eu un client qui dit, après un mois de taf : “Ah non, c’est pas ce que je voulais…” ?&lt;br&gt;
La Sprint Review, c’est là pour éviter ce genre de drame.&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;Problème :&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Travailler sur des trucs inutiles.&lt;/li&gt;
    &lt;li&gt;Manque de feedback pendant le sprint.&lt;/li&gt;
    &lt;li&gt;Une équipe qui avance à l’aveugle.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡 &lt;strong&gt;Solution :&lt;/strong&gt;&lt;br&gt;
On montre ce qu’on a livré, on écoute les retours, et on ajuste la trajectoire pour le sprint suivant.&lt;br&gt;
C’est pas seulement une démo, c’est une discussion avec les parties prenantes pour s’assurer qu’on reste aligné.&lt;/p&gt;

&lt;p&gt;⚙️ &lt;strong&gt;Bénéfices :&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Validation en continu.&lt;/li&gt;
    &lt;li&gt;Motivation pour l’équipe (“Regarde, ça c’est grâce à nous !”).&lt;/li&gt;
    &lt;li&gt;Ajustements rapides si les besoins évoluent.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚠️ &lt;strong&gt;Inconvénients :&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Peut devenir une critique publique si mal géré.&lt;/li&gt;
    &lt;li&gt;Si peu de livrables, ça peut être frustrant.&lt;/li&gt;
    &lt;li&gt;Tout le monde doit y participer, sinon ça perd de son intérêt.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;C’est comme un checkpoint dans un jeu vidéo : tu vérifies que t’es sur la bonne route avant de continuer.&lt;/p&gt;

&lt;p&gt;Et toi, c’est quoi le pire feedback que t’as reçu pendant une Sprint Review ?&lt;/p&gt;</content:encoded></item><item><title>Retrospective - L’art de ne pas refaire les mêmes erreurs/</title><link>https://papydev.fr/blog/57/</link><guid isPermaLink="true">https://papydev.fr/blog/57/</guid><pubDate>Thu, 19 Dec 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;“On fait toujours pareil, et ça foire toujours pareil.”&lt;br&gt;
Si cette phrase te parle, c’est que vous manquez d’une rétrospective.&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;Problème :&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Des erreurs qui se répètent (et tout le monde râle).&lt;/li&gt;
    &lt;li&gt;Les bonnes pratiques ne sont jamais documentées.&lt;/li&gt;
    &lt;li&gt;L’équipe avance, mais sans jamais vraiment s’améliorer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡 &lt;strong&gt;Solution :&lt;/strong&gt;&lt;br&gt;
À la fin du sprint, on prend du recul :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Qu’est-ce qui a bien marché ?&lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Qu’est-ce qu’on doit améliorer ?&lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Quelle action concrète on met en place ?&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚙️ &lt;strong&gt;Bénéfices :&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Une progression continue.&lt;/li&gt;
    &lt;li&gt;Une équipe plus soudée (ça libère la parole).&lt;/li&gt;
    &lt;li&gt;On transforme les problèmes en opportunités.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚠️ &lt;strong&gt;Inconvénients :&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Si mal animée, ça tourne à la séance de critique gratuite.&lt;/li&gt;
    &lt;li&gt;Besoin d’un bon Scrum Master pour cadrer les échanges.&lt;/li&gt;
    &lt;li&gt;Les actions proposées sont souvent oubliées (hello les Post-it abandonnés).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;C’est comme faire une sauvegarde et optimiser ses réglages avant d’affronter le boss suivant.&lt;/p&gt;

&lt;p&gt;Toi aussi, t’as parfois l’impression qu’on parle beaucoup mais qu’on change rien ?&lt;/p&gt;</content:encoded></item><item><title>Refinement - L’affûtage du backlog/</title><link>https://papydev.fr/blog/58/</link><guid isPermaLink="true">https://papydev.fr/blog/58/</guid><pubDate>Fri, 20 Dec 2024 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Un backlog bordélique, c’est un sprint foutu.&lt;br&gt;
Tu sais, ces tâches floues qu’on commence… et qu’on abandonne en plein milieu.&lt;br&gt;
Le Refinement, c’est l’antidote à ça.&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;Problème :&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Des user stories mal écrites.&lt;/li&gt;
    &lt;li&gt;Une estimation impossible parce qu’on sait même pas de quoi il s’agit.&lt;/li&gt;
    &lt;li&gt;Un sprint qui commence déjà dans le flou.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;💡 &lt;strong&gt;Solution :&lt;/strong&gt;&lt;br&gt;
En continu (ou via une réunion dédiée), on :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Clarifie les stories.&lt;/li&gt;
    &lt;li&gt;Évalue la complexité et priorise.&lt;/li&gt;
    &lt;li&gt;Découpe si c’est trop gros.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚙️ &lt;strong&gt;Bénéfices :&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Un backlog toujours prêt pour le sprint suivant.&lt;/li&gt;
    &lt;li&gt;Des estimations plus fiables.&lt;/li&gt;
    &lt;li&gt;Moins de perte de temps en sprint.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;⚠️ &lt;strong&gt;Inconvénients :&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Peut être chronophage si mal organisé.&lt;/li&gt;
    &lt;li&gt;Besoin d’un Product Owner dispo et impliqué.&lt;/li&gt;
    &lt;li&gt;Certains devs trouvent ça ennuyeux (“On code quand ?”).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;C’est comme affûter une lame avant d’aller au combat : ça prend un peu de temps, mais c’est indispensable pour éviter les galères.&lt;/p&gt;

&lt;p&gt;Alors, ton backlog est bien affûté… ou c’est une jungle ?&lt;/p&gt;</content:encoded></item><item><title>Assembly - Le langage qui parle directement à la machine/</title><link>https://papydev.fr/blog/59/</link><guid isPermaLink="true">https://papydev.fr/blog/59/</guid><pubDate>Mon, 06 Jan 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Tu as déjà entendu parler d’Assembly ?&lt;br&gt;
Le langage qui a tout commencé.&lt;/p&gt;

&lt;p&gt;C’est ce petit langage mystérieux qui a mis les bases de tout ce qu’on fait aujourd’hui.&lt;/p&gt;

&lt;p&gt;Pour comprendre son importance, il faut remonter aux années 1940.&lt;br&gt;
À cette époque, les ordinateurs étaient des monstres mécaniques.&lt;br&gt;
Et pour les programmer ? Pas de Python, pas de JavaScript.&lt;br&gt;
Juste… des 0 et des 1.&lt;/p&gt;

&lt;p&gt;On appelait ça le langage machine.&lt;br&gt;
Mais franchement, qui pouvait se souvenir de tout ce bazar binaire ?&lt;/p&gt;

&lt;p&gt;C’est là qu’Assembly a changé la donne.&lt;br&gt;
Un langage pas encore “facile”, mais bien plus lisible.&lt;br&gt;
Au lieu d’écrire “01010101”, tu écrivais des mots-clés comme &lt;code&gt;MOV&lt;/code&gt;, &lt;code&gt;ADD&lt;/code&gt; ou &lt;code&gt;JMP&lt;/code&gt;.&lt;br&gt;
Tu disais à la machine quoi faire, avec des instructions simples et directes.&lt;/p&gt;

&lt;p&gt;Chaque ligne d’Assembly correspondait directement à une commande en langage machine.&lt;br&gt;
C’était comme un traducteur entre l’humain et la machine.&lt;br&gt;
Un miracle à l’époque.&lt;/p&gt;

&lt;p&gt;Mais attention : Assembly restait exigeant.&lt;br&gt;
Une erreur, et tout ton programme plantait.&lt;br&gt;
La moindre ligne demandait précision et patience.&lt;/p&gt;

&lt;p&gt;C’est aussi un langage qui colle aux entrailles des processeurs.&lt;br&gt;
Les instructions d’Assembly étaient liées aux architectures matérielles.&lt;br&gt;
Changer de machine ? Tu devais tout réécrire.&lt;/p&gt;

&lt;p&gt;Alors pourquoi Assembly a marqué l’histoire ?&lt;br&gt;
Parce qu’il a ouvert la voie.&lt;br&gt;
Pour la première fois, on pouvait parler aux ordinateurs avec un semblant de logique.&lt;br&gt;
C’était brut, c’était beau, c’était le début.&lt;/p&gt;

&lt;p&gt;Aujourd’hui, on l’utilise encore.&lt;br&gt;
Pour l’optimisation. Les microcontrôleurs. Ou juste pour le plaisir geek.&lt;br&gt;
C’est comme visiter un musée vivant de l’informatique.&lt;/p&gt;

&lt;p&gt;Et toi, t’as déjà croisé Assembly dans ta carrière ou tes études ?&lt;br&gt;
Raconte-moi. Ça m’intéresse toujours de savoir comment on découvre ces vieilles merveilles.&lt;/p&gt;</content:encoded></item><item><title>Shortcode - l’aube des langages de programmation/</title><link>https://papydev.fr/blog/60/</link><guid isPermaLink="true">https://papydev.fr/blog/60/</guid><pubDate>Tue, 07 Jan 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Imagine… Nous sommes en 1949.&lt;/p&gt;

&lt;p&gt;Les ordinateurs commencent à peine à murmurer sous les doigts des pionniers.&lt;br&gt;
Mais ils restent obstinés : tout se fait encore en langage machine ou en Assembly.&lt;br&gt;
Et franchement, c’est épuisant.&lt;/p&gt;

&lt;p&gt;C’est alors qu’un homme a une idée révolutionnaire.&lt;br&gt;
John Mauchly, un des créateurs de l’ENIAC, propose une simplification.&lt;br&gt;
Pourquoi ne pas inventer un moyen d’écrire des programmes… un peu plus facilement ?&lt;/p&gt;

&lt;p&gt;C’est ainsi que &lt;strong&gt;Short Code&lt;/strong&gt; voit le jour.&lt;br&gt;
Pas un vrai langage de programmation, pas encore.&lt;br&gt;
Mais plutôt un “intermédiaire”.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comment ça fonctionnait ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Short Code utilisait des instructions abrégées et des symboles mathématiques.&lt;br&gt;
Un exemple ?&lt;br&gt;
Pour calculer une simple addition, au lieu d’écrire en binaire ou en Assembly, tu écrivais quelque chose comme :&lt;/p&gt;

&lt;p&gt;&lt;code&gt;A + B&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Ça te paraît banal aujourd’hui, non ?&lt;br&gt;
Mais à l’époque, c’était un saut de géant.&lt;/p&gt;

&lt;p&gt;Le programme écrit en Short Code n’était pas exécuté directement par l’ordinateur.&lt;br&gt;
Il passait d’abord par un interprète qui le traduisait en langage machine.&lt;br&gt;
Le concept était génial, mais il y avait un prix à payer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Le problème ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Short Code était &lt;strong&gt;lent&lt;/strong&gt;.&lt;br&gt;
L’interprétation prenait du temps, beaucoup trop de temps.&lt;br&gt;
Les ordinateurs, déjà pas très rapides, devenaient encore plus lents.&lt;/p&gt;

&lt;p&gt;Mais les bases étaient posées :&lt;br&gt;
L’idée que les humains pouvaient écrire des programmes avec des symboles simples.&lt;br&gt;
Et que la machine se chargerait de faire le lien avec ses propres entrailles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pourquoi c’est important ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Parce que Short Code a planté une graine.&lt;br&gt;
Il a inspiré les esprits brillants de l’époque à aller plus loin.&lt;br&gt;
Automatiser davantage. Créer des langages encore plus simples et efficaces.&lt;/p&gt;

&lt;p&gt;C’était le tout début de ce qu’on appelle aujourd’hui les &lt;strong&gt;langages de haut niveau&lt;/strong&gt;.&lt;br&gt;
Et sans Short Code, peut-être que cette idée aurait mis des années à émerger.&lt;/p&gt;

&lt;p&gt;Alors, la prochaine fois que tu tapes une ligne de code élégante en Python ou en JS, pense à ça.&lt;br&gt;
Au tout début, quelqu’un s’est battu pour écrire un simple &lt;code&gt;A + B&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Et toi, tu connaissais Short Code avant aujourd’hui ?&lt;/p&gt;</content:encoded></item><item><title>Autocode - Le premier vrai langage compilé/</title><link>https://papydev.fr/blog/61/</link><guid isPermaLink="true">https://papydev.fr/blog/61/</guid><pubDate>Wed, 08 Jan 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;1952.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Les ordinateurs continuent leur lente évolution.&lt;br&gt;
Mais programmer reste un casse-tête.&lt;br&gt;
Même avec Assembly ou Short Code, on est encore loin d’un vrai confort pour les développeurs.&lt;/p&gt;

&lt;p&gt;Et puis, un homme arrive avec une idée lumineuse.&lt;br&gt;
&lt;strong&gt;Alick Glennie&lt;/strong&gt;, un étudiant de l’Université de Manchester.&lt;br&gt;
Son objectif ? Simplifier la vie des programmeurs.&lt;/p&gt;

&lt;p&gt;Il crée alors quelque chose d’inédit : &lt;strong&gt;Autocode&lt;/strong&gt;.&lt;br&gt;
Un des premiers langages de programmation à utiliser un &lt;strong&gt;compilateur&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Qu’est-ce qu’Autocode ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Autocode, c’était presque magique.&lt;br&gt;
Tu écrivais ton programme en un langage simplifié, proche des mathématiques ou de l’anglais.&lt;br&gt;
Et le compilateur faisait le reste.&lt;/p&gt;

&lt;p&gt;Il traduisait automatiquement ce code en langage machine.&lt;br&gt;
Pas besoin d’interprétation ligne par ligne comme avec Short Code.&lt;br&gt;
Ici, tout était préparé à l’avance pour être exécuté directement par la machine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Résultat ?&lt;/strong&gt;&lt;br&gt;
Les programmes devenaient plus rapides à exécuter.&lt;br&gt;
Et les développeurs gagnaient un temps fou.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comment ça fonctionnait ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Prenons un exemple simple : une addition.&lt;br&gt;
En Autocode, tu pouvais écrire quelque chose comme :&lt;/p&gt;

&lt;p&gt;&lt;code&gt;LET A = B + C&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Le compilateur transformait ça en instructions machine, prêtes à être exécutées.&lt;br&gt;
Une révolution à l’époque.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pourquoi c’est important ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Parce qu’Autocode a marqué le début d’une ère :&lt;br&gt;
Celle des &lt;strong&gt;langages compilés&lt;/strong&gt;, qui dominent encore aujourd’hui.&lt;br&gt;
C’est grâce à lui que des langages comme Fortran, C, ou même Java ont pu exister.&lt;/p&gt;

&lt;p&gt;Il a aussi montré une chose essentielle :&lt;br&gt;
Les programmeurs n’avaient plus besoin d’être des experts en matériel.&lt;br&gt;
Ils pouvaient se concentrer sur leurs idées, sur la logique.&lt;br&gt;
Et laisser la machine gérer les détails.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Une curiosité ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Le premier Autocode fonctionnait sur le &lt;strong&gt;Manchester Mark I&lt;/strong&gt;, un des premiers ordinateurs de l’histoire.&lt;br&gt;
Et il était… très limité.&lt;br&gt;
Mais c’était suffisant pour prouver que l’idée fonctionnait.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Et aujourd’hui ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Autocode n’est plus utilisé, bien sûr.&lt;br&gt;
Mais son héritage est partout.&lt;br&gt;
Chaque fois que tu cliques sur “compiler” dans ton IDE, tu utilises une idée née dans les années 50.&lt;/p&gt;

&lt;p&gt;Alors, tu t’imagines coder sur un Mark I avec Autocode ?&lt;/p&gt;</content:encoded></item><item><title>Fortran - Le langage qui a changé le monde/</title><link>https://papydev.fr/blog/62/</link><guid isPermaLink="true">https://papydev.fr/blog/62/</guid><pubDate>Thu, 09 Jan 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;1957.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Une nouvelle page de l’histoire s’écrit.&lt;br&gt;
Les ordinateurs se démocratisent doucement, mais ils restent des outils pour une élite technique.&lt;br&gt;
Programmer, c’est toujours un combat, une gymnastique mentale qui décourage les moins motivés.&lt;/p&gt;

&lt;p&gt;C’est alors qu’un certain &lt;strong&gt;John Backus&lt;/strong&gt;, chez IBM, décide de tout changer.&lt;br&gt;
Son rêve ?&lt;br&gt;
Créer un langage de programmation universel.&lt;br&gt;
Accessible, performant, et capable de résoudre les vrais problèmes scientifiques.&lt;/p&gt;

&lt;p&gt;Il l’appelle &lt;strong&gt;Fortran&lt;/strong&gt;.&lt;br&gt;
FORmula TRANslation, pour mettre les mathématiques au cœur du développement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pourquoi Fortran était révolutionnaire ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Avant Fortran, chaque programme était écrit sur mesure, pour une seule machine.&lt;br&gt;
Changer d’ordinateur ? Il fallait tout réécrire.&lt;/p&gt;

&lt;p&gt;Fortran, lui, était &lt;strong&gt;portable&lt;/strong&gt;.&lt;br&gt;
Il utilisait un compilateur capable de traduire le même code pour différents types d’ordinateurs.&lt;br&gt;
Pour la première fois, on pouvait écrire une fois, et exécuter presque partout.&lt;/p&gt;

&lt;p&gt;Et ce n’est pas tout :&lt;br&gt;
Fortran introduisait des concepts qui allaient devenir des standards :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Les boucles&lt;/strong&gt; (&lt;code&gt;DO&lt;/code&gt; loops).&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Les conditions&lt;/strong&gt; (&lt;code&gt;IF&lt;/code&gt;).&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Les fonctions&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Un langage pour les scientifiques&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Fortran parlait la langue des mathématiciens, des physiciens, des ingénieurs.&lt;br&gt;
Avec lui, ils pouvaient enfin modéliser des systèmes complexes, résoudre des équations, analyser des données.&lt;/p&gt;

&lt;p&gt;Et il était rapide.&lt;br&gt;
Le compilateur Fortran était conçu pour produire du code optimisé, rivalisant avec ce que les programmeurs écrivaient en Assembly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Les premiers succès&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Dès sa sortie, Fortran devient un outil incontournable dans les laboratoires et les universités.&lt;br&gt;
Il est utilisé pour tout :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Calculer des trajectoires de fusées.&lt;/li&gt;
    &lt;li&gt;Simuler des phénomènes physiques.&lt;/li&gt;
    &lt;li&gt;Résoudre des problèmes statistiques.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En fait, &lt;strong&gt;Fortran a même contribué aux premiers pas de l’homme sur la Lune&lt;/strong&gt;.&lt;br&gt;
Pas mal, non ?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Et aujourd’hui ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tu serais surpris, mais Fortran existe toujours.&lt;br&gt;
Certes, il a évolué, avec des versions modernes comme &lt;strong&gt;Fortran 90&lt;/strong&gt; ou &lt;strong&gt;Fortran 2008&lt;/strong&gt;.&lt;br&gt;
Mais il reste incontournable dans des domaines comme :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Le calcul haute performance.&lt;/li&gt;
    &lt;li&gt;Les simulations climatiques.&lt;/li&gt;
    &lt;li&gt;L’analyse de données en physique et chimie.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pourquoi ?&lt;/strong&gt; Parce qu’il est rapide, et qu’aucun langage moderne n’a réussi à le détrôner sur certains terrains.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;L’héritage de Fortran&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Fortran a montré que la programmation pouvait être plus qu’un simple assemblage de commandes.&lt;br&gt;
C’était un outil pour résoudre des problèmes complexes, pour repousser les limites de la science.&lt;/p&gt;

&lt;p&gt;Et au passage, il a pavé la voie pour tous les langages qui ont suivi : &lt;strong&gt;COBOL&lt;/strong&gt;, &lt;strong&gt;C&lt;/strong&gt;, et même les géants modernes comme &lt;strong&gt;Python&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Et toi, tu savais que Fortran est encore utilisé aujourd’hui ?&lt;br&gt;
Tu penses qu’un langage peut durer 100 ans ?&lt;/p&gt;</content:encoded></item><item><title>Lisp - Le langage qui rêvait de penser/</title><link>https://papydev.fr/blog/63/</link><guid isPermaLink="true">https://papydev.fr/blog/63/</guid><pubDate>Fri, 10 Jan 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;1958.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Le monde informatique entre dans une nouvelle ère.&lt;br&gt;
Après les calculs mathématiques et les applications scientifiques, une question fascinante émerge :&lt;br&gt;
Peut-on créer des machines capables de penser ?&lt;/p&gt;

&lt;p&gt;C’est là qu’intervient &lt;strong&gt;Lisp&lt;/strong&gt;, un langage né au cœur du rêve de l’Intelligence Artificielle.&lt;br&gt;
Son créateur, &lt;strong&gt;John McCarthy&lt;/strong&gt;, voulait un outil différent.&lt;br&gt;
Pas juste pour calculer.&lt;br&gt;
Mais pour raisonner, manipuler des idées, et même simuler la logique humaine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Une logique unique&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Lisp n’est pas comme les autres langages de son époque.&lt;br&gt;
Il est bâti autour d’un concept révolutionnaire : &lt;strong&gt;les listes&lt;/strong&gt;.&lt;br&gt;
Tout dans Lisp est une liste.&lt;br&gt;
Les données, les programmes, même le code lui-même.&lt;/p&gt;

&lt;p&gt;Un exemple ?&lt;br&gt;
Pour additionner deux nombres en Lisp, tu écris :&lt;/p&gt;

&lt;p&gt;&lt;code&gt;(+ 2 3)&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Simple, mais incroyablement puissant.&lt;/p&gt;

&lt;p&gt;Pourquoi ? Parce que dans Lisp, &lt;strong&gt;tu peux manipuler le code… comme des données&lt;/strong&gt;.&lt;br&gt;
Tu peux créer, modifier et exécuter des programmes dynamiquement.&lt;br&gt;
C’était une idée inédite en 1958.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Le langage de l’IA&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Lisp devient rapidement le langage préféré des chercheurs en Intelligence Artificielle.&lt;br&gt;
Pourquoi ? Parce qu’il excelle dans :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;La manipulation de structures complexes.&lt;/li&gt;
    &lt;li&gt;L’écriture de programmes qui “apprennent” ou “raisonnent”.&lt;/li&gt;
    &lt;li&gt;La gestion de la récursivité, essentielle pour simuler certains processus cognitifs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Des systèmes experts aux chatbots primitifs, les premiers outils d’IA étaient presque tous écrits en Lisp.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Une longévité exceptionnelle&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Si je te dis que Lisp est toujours utilisé, tu me crois ?&lt;br&gt;
Et pourtant, c’est vrai.&lt;/p&gt;

&lt;p&gt;Des variantes modernes comme &lt;strong&gt;Common Lisp&lt;/strong&gt; ou &lt;strong&gt;Scheme&lt;/strong&gt; continuent d’être enseignées et utilisées.&lt;br&gt;
Pourquoi ? Parce que Lisp reste un des langages les plus flexibles et expressifs jamais créés.&lt;/p&gt;

&lt;p&gt;Et puis, son influence est partout :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Les parenthèses et structures de &lt;strong&gt;Python&lt;/strong&gt;.&lt;/li&gt;
    &lt;li&gt;Les fonctions anonymes de &lt;strong&gt;JavaScript&lt;/strong&gt; (oui, les fameuses lambdas).&lt;/li&gt;
    &lt;li&gt;Les outils de métaprogrammation modernes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Une philosophie différente&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Avec Lisp, programmer devient presque… &lt;strong&gt;philosophique&lt;/strong&gt;.&lt;br&gt;
Tu ne “commande” pas la machine, tu &lt;strong&gt;collabores&lt;/strong&gt; avec elle.&lt;br&gt;
Tu construis des idées et des abstractions, comme un sculpteur qui modèle son œuvre.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lisp et toi&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Alors, que reste-t-il de Lisp aujourd’hui ?&lt;br&gt;
Beaucoup.&lt;br&gt;
Chaque fois que tu écris une fonction récursive, que tu manipules des listes, ou que tu utilises des idées d’intelligence artificielle, tu fais vivre un peu de l’héritage de Lisp.&lt;/p&gt;

&lt;p&gt;Et puis, il y a une leçon fondamentale à retenir :&lt;br&gt;
&lt;strong&gt;La simplicité apparente peut cacher une puissance infinie.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;Et maintenant ?&lt;/strong&gt;&lt;br&gt;
L’histoire ne s’arrête pas là.&lt;br&gt;
De Lisp sont nées des idées qui ont transformé l’IT pour toujours.&lt;/p&gt;</content:encoded></item><item><title>Perceptron - la naissance d’un rêve /</title><link>https://papydev.fr/blog/64/</link><guid isPermaLink="true">https://papydev.fr/blog/64/</guid><pubDate>Mon, 13 Jan 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Imagine un gars en 1958, &lt;strong&gt;Frank Rosenblatt&lt;/strong&gt;, qui regarde un ordinateur gros comme une machine à laver et se dit : “Et si on lui donnait un cerveau, ou du moins, un neurone ?”.&lt;br&gt;
Pas de cloud, pas de GPU, juste des idées et une machine à carte perforée.&lt;/p&gt;

&lt;p&gt;C’est là qu’est né le &lt;strong&gt;perceptron&lt;/strong&gt;, le tout premier neurone artificiel.&lt;br&gt;
En gros, c’est un modèle mathématique qui essayait de reproduire comment un vrai neurone humain traite l’information :&lt;br&gt;
Tu lui donnes des entrées (comme des 0 et des 1), il les combine, et il te donne un résultat (genre “oui” ou “non”).&lt;/p&gt;

&lt;p&gt;À l’époque, c’était révolutionnaire.&lt;br&gt;
Rosenblatt pensait qu’en empilant des perceptrons, on arriverait à créer une machine capable de penser.&lt;br&gt;
Oui, le gars rêvait déjà d’IA quand le monde découvrait à peine les téléviseurs en couleur.&lt;/p&gt;

&lt;p&gt;Mais voilà, le perceptron avait un gros problème : &lt;strong&gt;il ne pouvait pas résoudre des tâches complexes&lt;/strong&gt;.&lt;br&gt;
En 1969, deux autres chercheurs (&lt;strong&gt;Marvin Minsky&lt;/strong&gt; et &lt;strong&gt;Seymour Papert&lt;/strong&gt;) sont venus casser l’ambiance en montrant mathématiquement ses limites.&lt;br&gt;
Résultat : pendant 20 ans, l’IA a été mise au placard.&lt;br&gt;
Les budgets de recherche se sont effondrés, les gens n’y croyaient plus.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pourquoi c’est important aujourd’hui ?&lt;/strong&gt;&lt;br&gt;
Parce que sans le perceptron, il n’y aurait pas de neurones artificiels, donc pas de deep learning.&lt;br&gt;
Il a posé la première pierre.&lt;br&gt;
Et surtout, il nous rappelle que même si une idée semble limitée ou “cassée”, elle peut devenir le fondement d’une révolution.&lt;/p&gt;

&lt;p&gt;Le perceptron, c’est l’ancêtre de tous les modèles d’IA.&lt;br&gt;
Un petit neurone qui a allumé une étincelle, et cette étincelle brûle encore aujourd’hui dans des modèles comme GPT.&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;T’avais déjà entendu parler du perceptron ?&lt;/strong&gt;&lt;br&gt;
Ça te paraît simple ou tordu comme concept ?&lt;/p&gt;</content:encoded></item><item><title>Backpropagation - L’algorithme qui a sauvé l’IA/</title><link>https://papydev.fr/blog/65/</link><guid isPermaLink="true">https://papydev.fr/blog/65/</guid><pubDate>Tue, 14 Jan 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;1986.&lt;/strong&gt; L’IA était dans un sale état.&lt;br&gt;
Après les critiques sur le perceptron, plus personne ne voulait y toucher.&lt;br&gt;
On avait des idées, mais impossible de les faire marcher pour des problèmes complexes.&lt;br&gt;
Et c’est là qu’un certain &lt;strong&gt;Geoffrey Hinton&lt;/strong&gt; et ses potes viennent poser une question simple : &lt;br&gt;
“Et si on apprenait de nos erreurs ?”.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;La réponse, c’est la backpropagation&lt;/strong&gt; (ou rétropropagation).&lt;br&gt;
Un algorithme tout bête : tu fais une prédiction, tu compares avec la réalité, tu mesures l’erreur,&lt;br&gt;
et tu “recules” dans ton réseau de neurones pour ajuster chaque poids.&lt;br&gt;
En gros, le réseau &lt;strong&gt;apprend en boucle&lt;/strong&gt;, en se corrigeant à chaque étape.&lt;/p&gt;

&lt;p&gt;Imagine un enfant qui essaye d’attraper une balle pour la première fois.&lt;br&gt;
Il rate, mais il ajuste ses mouvements à chaque tentative.&lt;br&gt;
C’est exactement ça que fait la backpropagation avec les neurones artificiels.&lt;/p&gt;

&lt;p&gt;Avant ça, entraîner un réseau, c’était comme essayer de résoudre un &lt;strong&gt;Rubik’s cube… les yeux bandés&lt;/strong&gt;.&lt;br&gt;
La backprop a permis de transformer des concepts flous en modèles capables d’apprendre des données réelles.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mais au début, personne n’y croyait.&lt;/strong&gt;&lt;br&gt;
Pourquoi ? Parce qu’il fallait une tonne de données, une puissance de calcul qu’on n’avait pas,&lt;br&gt;
et des réseaux profonds (les fameux “deep” neuraux) qu’on ne savait pas encore construire.&lt;br&gt;
Il a fallu attendre les années 2000, avec l’explosion des GPU, pour que la backprop devienne vraiment &lt;strong&gt;le cœur du deep learning&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pourquoi c’est important aujourd’hui ?&lt;/strong&gt;&lt;br&gt;
Parce que la backprop, c’est littéralement ce qui fait que ton modèle d’IA peut devenir &lt;strong&gt;meilleur&lt;/strong&gt;.&lt;br&gt;
Sans elle, on ne parlerait pas de modèles capables de traduire des langues, générer des images ou répondre à tes questions en quelques secondes.&lt;/p&gt;

&lt;p&gt;C’est un peu comme &lt;strong&gt;redécouvrir la roue après des siècles de galère&lt;/strong&gt;.&lt;br&gt;
Tout ce qu’on utilise aujourd’hui, de GPT à DALL·E, repose sur ce mécanisme d’ajustement.&lt;br&gt;
Une idée qui, en 1986, a ramené l’IA d’entre les morts.&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;T’en penses quoi ?&lt;/strong&gt;&lt;br&gt;
Ce mécanisme d’apprentissage par essai-erreur, ça te paraît aussi intuitif que ça ?&lt;/p&gt;</content:encoded></item><item><title>SVM Les machines à vecteurs de support - Quand l’IA a cessé de deviner/</title><link>https://papydev.fr/blog/66/</link><guid isPermaLink="true">https://papydev.fr/blog/66/</guid><pubDate>Wed, 15 Jan 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Les années 90.&lt;/strong&gt; Le deep learning ? Personne n’y croit encore.&lt;br&gt;
Les réseaux de neurones sont jugés trop lents, trop gourmands, trop “théoriques”.&lt;br&gt;
Pendant ce temps, il y a une autre équipe qui change les règles du jeu : &lt;strong&gt;les machines à vecteurs de support&lt;/strong&gt;, ou &lt;strong&gt;SVM&lt;/strong&gt; pour les intimes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mais c’est quoi une SVM ?&lt;/strong&gt;&lt;br&gt;
En gros, imagine que tu veux séparer des points sur un graphique (&lt;strong&gt;rouges à gauche, bleus à droite&lt;/strong&gt;).&lt;br&gt;
Une SVM va chercher &lt;strong&gt;LA ligne parfaite&lt;/strong&gt; (ou le plan, dans des dimensions supérieures) qui fait cette séparation,&lt;br&gt;
avec le &lt;strong&gt;maximum de marge possible&lt;/strong&gt; entre les deux groupes.&lt;br&gt;
Pas de place pour l’approximation.&lt;/p&gt;

&lt;p&gt;Ce n’est plus juste une machine qui devine : &lt;strong&gt;c’est une machine qui trouve des solutions propres, mathématiques, élégantes&lt;/strong&gt;.&lt;br&gt;
Pas étonnant que les SVM aient été &lt;strong&gt;LA star des années 90 et 2000&lt;/strong&gt;.&lt;br&gt;
Elles ont servi partout :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Reconnaissance d’images.&lt;/li&gt;
    &lt;li&gt;Classification de texte.&lt;/li&gt;
    &lt;li&gt;Bio-informatique.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si t’avais une problématique où il fallait différencier &lt;strong&gt;A de B&lt;/strong&gt;, c’était &lt;strong&gt;l’arme fatale&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mais pourquoi c’est important ?&lt;/strong&gt;&lt;br&gt;
Parce que les SVM ont été &lt;strong&gt;les premières vraies preuves que les machines pouvaient généraliser&lt;/strong&gt;.&lt;br&gt;
Avant ça, on bricolait des modèles qui “marchaient” sur les données d’entraînement mais galéraient en dehors.&lt;br&gt;
Les SVM ont montré qu’on pouvait bosser proprement, avec une rigueur presque scientifique.&lt;/p&gt;

&lt;p&gt;Et elles ont tenu la baraque jusqu’à ce que &lt;strong&gt;les réseaux de neurones reprennent le flambeau&lt;/strong&gt;,&lt;br&gt;
grâce à la puissance de calcul qu’on n’avait pas dans les années 90.&lt;br&gt;
Mais encore aujourd’hui, les SVM sont utilisées dans certains cas où le deep learning est &lt;strong&gt;overkill&lt;/strong&gt; ou trop gourmand.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Moralité ?&lt;/strong&gt;&lt;br&gt;
Même si ce n’est plus la techno à la mode, &lt;strong&gt;les SVM ont pavé la route&lt;/strong&gt; pour tout ce qu’on fait en apprentissage supervisé.&lt;br&gt;
Elles sont un peu comme ces vieux héros qu’on respecte toujours, même si leur époque est passée.&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;Alors, team SVM ou team deep learning ?&lt;/strong&gt;&lt;br&gt;
Ça te parle cette histoire de “séparer les points” ou t’es plus dans l’intuitif ?&lt;/p&gt;</content:encoded></item><item><title>CNN Les réseaux de neurones convolutifs - L’IA qui a ouvert les yeux/</title><link>https://papydev.fr/blog/67/</link><guid isPermaLink="true">https://papydev.fr/blog/67/</guid><pubDate>Thu, 16 Jan 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;À la fin des années 80&lt;/strong&gt;, les machines n’étaient pas franchement douées pour voir.&lt;br&gt;
Reconnaître une image ? Une catastrophe.&lt;br&gt;
Tu pouvais montrer un chat, une chaise, ou une voiture : pour un ordinateur, tout ressemblait à un tas de pixels.&lt;/p&gt;

&lt;p&gt;Et là, arrive &lt;strong&gt;Yann LeCun&lt;/strong&gt;, un Français qui bosse chez Bell Labs.&lt;br&gt;
Il invente les &lt;strong&gt;réseaux de neurones convolutifs (CNN)&lt;/strong&gt;, une architecture taillée sur mesure pour les images.&lt;br&gt;
L’idée de base ? &lt;strong&gt;Reproduire le fonctionnement de l’œil humain&lt;/strong&gt;.&lt;br&gt;
Nos yeux ne traitent pas une image pixel par pixel : ils captent des motifs (bords, formes, textures) et recomposent l’ensemble.&lt;/p&gt;

&lt;p&gt;Un CNN, c’est exactement ça : il détecte d’abord des éléments simples dans une image (&lt;strong&gt;comme un bord ou une courbe&lt;/strong&gt;),&lt;br&gt;
puis il les combine pour repérer des formes plus complexes (&lt;strong&gt;une oreille, une roue, un visage&lt;/strong&gt;).&lt;br&gt;
C’est comme un puzzle inversé où la machine assemble les pièces pour comprendre ce qu’elle voit.&lt;/p&gt;

&lt;p&gt;À l’époque, LeCun utilise ça pour reconnaître des &lt;strong&gt;chiffres manuscrits&lt;/strong&gt; (les fameux chèques bancaires).&lt;br&gt;
Ça marche bien, mais ça reste un truc de niche.&lt;br&gt;
Pendant les années 2000, les CNN restent un peu dans l’ombre, parce que…&lt;br&gt;
bah, on n’a pas encore les machines assez puissantes pour vraiment les exploiter.&lt;/p&gt;

&lt;p&gt;Puis &lt;strong&gt;2012 arrive&lt;/strong&gt;. &lt;strong&gt;AlexNet&lt;/strong&gt; débarque.&lt;br&gt;
C’est un CNN géant, entraîné avec une base de données massive (&lt;strong&gt;ImageNet&lt;/strong&gt;) et boosté par des &lt;strong&gt;GPU&lt;/strong&gt;.&lt;br&gt;
Résultat ? Une &lt;strong&gt;victoire écrasante&lt;/strong&gt; dans une compétition de reconnaissance d’images,&lt;br&gt;
et un &lt;strong&gt;nouveau chapitre pour l’IA&lt;/strong&gt;.&lt;br&gt;
D’un coup, les machines savent repérer des chiens, des chats, des voitures, et même &lt;strong&gt;les races de chiens&lt;/strong&gt; (oui, sérieux).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pourquoi c’est important ?&lt;/strong&gt;&lt;br&gt;
Parce que sans les CNN, l’IA ne saurait toujours pas reconnaître tes photos de vacances.&lt;br&gt;
Les CNN sont au cœur de toutes les applications de vision par ordinateur aujourd’hui :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Reconnaissance faciale.&lt;/li&gt;
    &lt;li&gt;Analyses médicales.&lt;/li&gt;
    &lt;li&gt;Voitures autonomes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;C’est aussi grâce aux CNN qu’on a prouvé que &lt;strong&gt;les réseaux de neurones profonds pouvaient réellement marcher&lt;/strong&gt; dans des contextes concrets.&lt;br&gt;
Ça a ouvert la voie au deep learning tel qu’on le connaît aujourd’hui.&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;T’es déjà tombé sur des usages impressionnants des CNN ?&lt;/strong&gt;&lt;br&gt;
Ou t’as envie qu’on te détaille ce qui se passe sous le capot ?&lt;/p&gt;</content:encoded></item><item><title>Transformer - L’IA qui a changé la donne/</title><link>https://papydev.fr/blog/68/</link><guid isPermaLink="true">https://papydev.fr/blog/68/</guid><pubDate>Fri, 17 Jan 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;2017.&lt;/strong&gt; Ça fait déjà quelques années que l’IA commence à briller.&lt;br&gt;
Les CNN déchirent en vision par ordinateur, les modèles comme &lt;strong&gt;Word2Vec&lt;/strong&gt; transforment le traitement du langage…&lt;br&gt;
Mais il y a un problème : comprendre une phrase ou générer du texte, c’est encore un casse-tête.&lt;br&gt;
Les machines galèrent à prendre en compte le contexte.&lt;/p&gt;

&lt;p&gt;Et là, &lt;strong&gt;boom&lt;/strong&gt;. Google balance un papier intitulé &lt;strong&gt;“Attention is All You Need”&lt;/strong&gt;.&lt;br&gt;
Une phrase simple, mais qui cache une révolution : &lt;strong&gt;les transformers&lt;/strong&gt;.&lt;br&gt;
Ces modèles ont complètement redéfini l’IA en quelques années, surtout dans tout ce qui touche au langage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Alors, c’est quoi un transformer ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Imagine un modèle qui ne lit pas une phrase mot par mot comme un robot,&lt;br&gt;
mais qui regarde &lt;strong&gt;tout en même temps&lt;/strong&gt;.&lt;br&gt;
Grâce à un &lt;strong&gt;mécanisme d’attention&lt;/strong&gt;, le modèle peut identifier les mots importants dans une phrase&lt;br&gt;
et comprendre comment ils interagissent entre eux.&lt;/p&gt;

&lt;p&gt;Tu veux un exemple ?&lt;br&gt;
Dans la phrase : &lt;strong&gt;“Le chat saute sur la table parce qu’il est curieux”&lt;/strong&gt;,&lt;br&gt;
le modèle sait que &lt;strong&gt;“il” parle du chat&lt;/strong&gt;, et pas de la table.&lt;/p&gt;

&lt;p&gt;Avant ça, on utilisait des &lt;strong&gt;RNN&lt;/strong&gt; ou des &lt;strong&gt;LSTM&lt;/strong&gt; pour traiter du texte,&lt;br&gt;
mais c’était lent, limité, et franchement, pas super performant.&lt;br&gt;
Les transformers, eux, sont &lt;strong&gt;rapides, efficaces et scalables&lt;/strong&gt;.&lt;br&gt;
C’est grâce à eux qu’on peut entraîner des modèles avec des milliards de paramètres (coucou GPT 👋).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pourquoi c’est important ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Parce que c’est &lt;strong&gt;le point de bascule&lt;/strong&gt;.&lt;br&gt;
Les transformers ont rendu possible tout ce qu’on connaît aujourd’hui dans l’IA générative :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;GPT&lt;/strong&gt; (pour écrire).&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;DALL·E&lt;/strong&gt; (pour générer des images).&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;AlphaFold&lt;/strong&gt; (qui prédit des structures de protéines).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Depuis &lt;strong&gt;2017&lt;/strong&gt;, tout le monde est passé aux transformers.&lt;br&gt;
Ils sont la &lt;strong&gt;fondation&lt;/strong&gt; des outils modernes qu’on utilise dans le langage, l’image, l’audio… bref, partout.&lt;br&gt;
Et on n’a pas encore exploré toutes leurs possibilités.&lt;/p&gt;

&lt;p&gt;C’est un peu comme l’invention de l’imprimerie :&lt;br&gt;
une innovation qui ne touche pas juste un domaine, mais &lt;strong&gt;transforme tout&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;Alors, toi aussi, tu trouves que “l’attention est tout ce dont on a besoin” ?&lt;/strong&gt;&lt;br&gt;
Ou ça te paraît un peu trop magique pour être vrai ?&lt;/p&gt;</content:encoded></item><item><title>Archie - Le tout premier moteur de recherche/</title><link>https://papydev.fr/blog/69/</link><guid isPermaLink="true">https://papydev.fr/blog/69/</guid><pubDate>Sun, 26 Jan 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;En 1990&lt;/strong&gt;, avant même qu’on parle de web comme on le connaît aujourd’hui, un étudiant du nom d’&lt;strong&gt;Alan Emtage&lt;/strong&gt; a créé &lt;strong&gt;Archie&lt;/strong&gt;.&lt;br&gt;
Ce n’était pas encore un “Google”, mais une petite révolution dans le monde d’Internet naissant.&lt;/p&gt;

&lt;p&gt;À l’époque, trouver un fichier sur Internet était une &lt;strong&gt;galère monumentale&lt;/strong&gt;.&lt;br&gt;
Tu devais te connecter manuellement à des &lt;strong&gt;serveurs FTP&lt;/strong&gt;, fouiller dans des répertoires (souvent mal organisés),&lt;br&gt;
et deviner où se trouvait ce que tu cherchais.&lt;br&gt;
Imagine une énorme bibliothèque où tous les livres sont empilés sans aucun classement… &lt;br&gt;
voilà à quoi Internet ressemblait.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Archie&lt;/strong&gt; a résolu ce problème avec une idée &lt;strong&gt;simple mais brillante&lt;/strong&gt; :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Indexer &lt;strong&gt;automatiquement&lt;/strong&gt; les fichiers disponibles sur les serveurs FTP.&lt;/li&gt;
    &lt;li&gt;Permettre aux utilisateurs de les rechercher &lt;strong&gt;par mots-clés&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Plus besoin de naviguer à l’aveugle, tu pouvais enfin trouver directement ce que tu voulais.&lt;/p&gt;

&lt;p&gt;Certes, Archie ne gérait pas encore les &lt;strong&gt;pages web&lt;/strong&gt; (ça n’existait même pas !),&lt;br&gt;
mais il a posé les bases du concept d’un &lt;strong&gt;moteur de recherche&lt;/strong&gt; :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Répertorier.&lt;/li&gt;
    &lt;li&gt;Organiser.&lt;/li&gt;
    &lt;li&gt;Rendre accessible l’information dispersée sur le réseau.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;C’était le début d’une ère où &lt;strong&gt;chercher devenait plus facile&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;Et toi, tu imagines bosser aujourd’hui sans un moteur de recherche ?&lt;/strong&gt;&lt;/p&gt;</content:encoded></item><item><title>Altavista - Le moteur qui a ouvert l’ère du web moderne/</title><link>https://papydev.fr/blog/70/</link><guid isPermaLink="true">https://papydev.fr/blog/70/</guid><pubDate>Mon, 27 Jan 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Si &lt;strong&gt;Archie&lt;/strong&gt; a été le premier pas, &lt;strong&gt;AltaVista&lt;/strong&gt; a été une vraie révolution.&lt;/p&gt;

&lt;p&gt;En &lt;strong&gt;1995&lt;/strong&gt;, le web était encore jeune et en pleine explosion, mais il avait un gros problème :&lt;br&gt;
&lt;strong&gt;trouver un site ou une information était un cauchemar&lt;/strong&gt;.&lt;br&gt;
Les annuaires comme Yahoo! fonctionnaient &lt;strong&gt;à la main&lt;/strong&gt; (oui, des gens cataloguaient les sites un par un),&lt;br&gt;
et les recherches étaient limitées aux &lt;strong&gt;titres ou descriptions&lt;/strong&gt;, pas au contenu réel des pages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AltaVista a débarqué et a changé tout ça.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;C’était le &lt;strong&gt;premier moteur de recherche&lt;/strong&gt; à indexer entièrement &lt;strong&gt;le contenu des pages web&lt;/strong&gt;.&lt;br&gt;
Texte, balises, liens – tout était pris en compte.&lt;br&gt;
En plus, il proposait une &lt;strong&gt;recherche rapide&lt;/strong&gt;, et ses résultats étaient bien mieux classés que tout ce qui existait.&lt;br&gt;
Bref, c’était un énorme pas en avant en termes de pertinence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mais ce n’est pas tout :&lt;/strong&gt;&lt;br&gt;
AltaVista a aussi introduit des fonctionnalités qu’on considère comme normales aujourd’hui, comme :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;La &lt;strong&gt;recherche avancée&lt;/strong&gt;.&lt;/li&gt;
    &lt;li&gt;Les expressions booléennes (&lt;code&gt;AND&lt;/code&gt;, &lt;code&gt;OR&lt;/code&gt;, &lt;code&gt;NOT&lt;/code&gt;).&lt;/li&gt;
    &lt;li&gt;La &lt;strong&gt;traduction automatique&lt;/strong&gt; avec Babelfish.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En quelques années, &lt;strong&gt;AltaVista est devenu un incontournable&lt;/strong&gt; du web des années 90.&lt;br&gt;
Il a résolu un &lt;strong&gt;irritant majeur&lt;/strong&gt; : naviguer sur Internet n’était plus un jeu de piste sans fin.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Alors, pourquoi AltaVista n’est-il plus là aujourd’hui ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Simple : il a été &lt;strong&gt;dépassé par Google&lt;/strong&gt; et son algorithme révolutionnaire.&lt;br&gt;
Mais sans AltaVista, on n’en serait sûrement pas là.&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;Tu te souviens d’avoir utilisé AltaVista à l’époque, ou tu es arrivé directement dans l’ère Google ?&lt;/strong&gt;&lt;/p&gt;</content:encoded></item><item><title>Google - La révolution de la pertinence et de l’accès à l’information/</title><link>https://papydev.fr/blog/71/</link><guid isPermaLink="true">https://papydev.fr/blog/71/</guid><pubDate>Tue, 28 Jan 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;En 1998&lt;/strong&gt;, Internet était déjà une jungle.&lt;br&gt;
Le web explosait, mais les moteurs de recherche avaient du mal à suivre.&lt;br&gt;
AltaVista, Yahoo!, Lycos… Ils faisaient leur boulot, mais la recherche devenait vite frustrante.&lt;br&gt;
Tu tapais un mot-clé, et tu te retrouvais &lt;strong&gt;noyé sous des résultats pas forcément pertinents&lt;/strong&gt;.&lt;br&gt;
C’était un peu comme chercher une aiguille dans une botte de foin… sauf que la botte était mal rangée.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Et puis Google est arrivé.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;La vraie révolution ?&lt;/strong&gt; &lt;strong&gt;PageRank&lt;/strong&gt;, l’algorithme conçu par &lt;strong&gt;Larry Page&lt;/strong&gt; et &lt;strong&gt;Sergey Brin&lt;/strong&gt;.&lt;br&gt;
Au lieu de simplement chercher les mots-clés dans les pages, Google &lt;strong&gt;analysait les liens&lt;/strong&gt; entre les sites pour évaluer leur pertinence.&lt;br&gt;
En gros, si un site était beaucoup cité par d’autres sites de qualité,&lt;br&gt;
c’était un signe qu’il méritait d’être en haut des résultats.&lt;/p&gt;

&lt;p&gt;Résultat : une &lt;strong&gt;recherche beaucoup plus précise&lt;/strong&gt; et des résultats adaptés à ce que tu cherchais vraiment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mais ce n’était pas juste ça :&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Une interface minimaliste.&lt;/strong&gt; Contrairement à ses concurrents bourrés de pubs et de distractions, Google allait droit au but. &lt;strong&gt;Une barre de recherche.&lt;/strong&gt; C’est tout.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Une vitesse imbattable.&lt;/strong&gt; Les résultats s’affichaient en un éclair.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;La publicité ciblée.&lt;/strong&gt; Avec &lt;strong&gt;Google Ads&lt;/strong&gt;, ils ont transformé la recherche en un &lt;strong&gt;modèle économique ultra rentable&lt;/strong&gt;, tout en gardant les résultats naturels en haut de l’écran.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Google n’a pas juste amélioré la recherche :&lt;br&gt;
il a &lt;strong&gt;réinventé notre accès à l’information&lt;/strong&gt;.&lt;br&gt;
Aujourd’hui, on &lt;strong&gt;“googlise” tout&lt;/strong&gt;, et on n’imagine même pas ce que c’était avant.&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;Mais dis-moi : tu te souviens de la première fois où tu as utilisé Google ?&lt;/strong&gt;&lt;br&gt;
Qu’est-ce qui t’a marqué ?&lt;/p&gt;</content:encoded></item><item><title>DuckDuckGo - La révolution de la vie privée/</title><link>https://papydev.fr/blog/72/</link><guid isPermaLink="true">https://papydev.fr/blog/72/</guid><pubDate>Wed, 29 Jan 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;En 2008&lt;/strong&gt;, alors que Google dominait déjà largement le marché des moteurs de recherche,&lt;br&gt;
un petit nouveau est apparu avec une promesse très différente : &lt;strong&gt;faire des recherches sans traquer les utilisateurs&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;À l’époque (et encore plus aujourd’hui), les moteurs comme Google ou Bing collectaient des &lt;strong&gt;tonnes de données personnelles&lt;/strong&gt; :&lt;br&gt;
ton historique, tes clics, ta localisation… tout ça pour te proposer des résultats personnalisés,&lt;br&gt;
mais aussi pour nourrir leurs modèles publicitaires.&lt;br&gt;
Le problème ? De plus en plus de gens commençaient à se &lt;strong&gt;méfier de cette surveillance constante&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C’est là que DuckDuckGo a fait son entrée&lt;/strong&gt;, en résolvant un irritant majeur :&lt;br&gt;
&lt;strong&gt;rechercher sur le web sans sacrifier sa vie privée&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;DuckDuckGo ne collecte aucune donnée personnelle.&lt;/strong&gt; Pas de cookies, pas de profil utilisateur, rien.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Il ne te “poursuit” pas&lt;/strong&gt; avec des pubs basées sur ce que tu viens de chercher.&lt;/li&gt;
    &lt;li&gt;Et il offre une &lt;strong&gt;navigation neutre&lt;/strong&gt;, où les résultats ne sont pas biaisés par un historique ou des préférences enregistrées.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Certains pensaient qu’un moteur de recherche respectueux de la vie privée n’intéresserait qu’un public de niche,&lt;br&gt;
mais &lt;strong&gt;DuckDuckGo a prouvé le contraire&lt;/strong&gt;.&lt;br&gt;
En 2023, il compte des &lt;strong&gt;centaines de millions de recherches quotidiennes&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Alors, certes, il n’a pas encore les moyens de rivaliser avec Google sur &lt;strong&gt;la qualité de l’algorithme&lt;/strong&gt; ou &lt;strong&gt;la richesse des résultats&lt;/strong&gt;,&lt;br&gt;
mais DuckDuckGo a réussi à montrer qu’il y avait &lt;strong&gt;une alternative&lt;/strong&gt;.&lt;br&gt;
Et surtout, il a &lt;strong&gt;poussé les géants&lt;/strong&gt; comme Google à commencer à intégrer des fonctionnalités centrées sur la vie privée.&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;Tu utilises DuckDuckGo ?&lt;/strong&gt; Ou tu es encore attaché à Google malgré tout ?&lt;/p&gt;</content:encoded></item><item><title>Perplexity - La recherche augmentée par l’intelligence artificielle/</title><link>https://papydev.fr/blog/73/</link><guid isPermaLink="true">https://papydev.fr/blog/73/</guid><pubDate>Thu, 30 Jan 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Si Google et ses concurrents dominent encore, une &lt;strong&gt;nouvelle révolution&lt;/strong&gt; est en marche :&lt;br&gt;
l’intégration de l’&lt;strong&gt;intelligence artificielle&lt;/strong&gt; dans les moteurs de recherche.&lt;br&gt;
Et parmi les pionniers, &lt;strong&gt;Perplexity AI&lt;/strong&gt; a marqué un tournant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Perplexity n’est pas un moteur de recherche classique.&lt;/strong&gt;&lt;br&gt;
Là où les moteurs traditionnels te renvoient une &lt;strong&gt;liste de liens&lt;/strong&gt;,&lt;br&gt;
Perplexity te fournit directement des &lt;strong&gt;réponses contextualisées&lt;/strong&gt;, synthétiques et souvent enrichies d’une analyse.&lt;br&gt;
Imagine : plus besoin de cliquer sur 10 sites pour rassembler des infos, &lt;strong&gt;l’IA le fait pour toi&lt;/strong&gt;, tout en te citant ses sources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ce que Perplexity a résolu :&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
    &lt;li&gt;&lt;strong&gt;Gagner du temps.&lt;/strong&gt;&lt;br&gt;
        Tu poses une question complexe, et au lieu de parcourir des pages web,&lt;br&gt;
        Perplexity te donne une réponse &lt;strong&gt;claire et concise&lt;/strong&gt; en quelques secondes.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Synthétiser l’information.&lt;/strong&gt;&lt;br&gt;
        Face à la &lt;strong&gt;surcharge d’informations&lt;/strong&gt; sur le web, Perplexity agit comme un &lt;strong&gt;filtre intelligent&lt;/strong&gt;.&lt;br&gt;
        Elle résume les infos pertinentes tout en te permettant de creuser les sources si besoin.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Contextualiser les recherches.&lt;/strong&gt;&lt;br&gt;
        Perplexity ne se contente pas de te balancer des résultats bruts :&lt;br&gt;
        elle &lt;strong&gt;comprend le contexte&lt;/strong&gt; de ta question pour y répondre de manière précise,&lt;br&gt;
        même sur des sujets complexes ou techniques.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Limiter les biais.&lt;/strong&gt;&lt;br&gt;
        Contrairement aux moteurs traditionnels, où les résultats sont influencés par des &lt;strong&gt;algorithmes publicitaires&lt;/strong&gt; ou de popularité,&lt;br&gt;
        Perplexity se concentre sur &lt;strong&gt;la qualité de l’information&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Une nouvelle manière de rechercher&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Avec l’essor de l’IA, Perplexity montre ce que pourrait être &lt;strong&gt;l’avenir de la recherche web&lt;/strong&gt; :&lt;br&gt;
plus d’&lt;strong&gt;interactions naturelles&lt;/strong&gt;, des &lt;strong&gt;réponses instantanées&lt;/strong&gt; et une &lt;strong&gt;navigation simplifiée&lt;/strong&gt;.&lt;br&gt;
Certes, on est encore loin de détrôner Google, mais ces nouveaux outils &lt;strong&gt;redéfinissent la manière dont on accède et consomme l’information&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;Tu as déjà testé un moteur de recherche boosté par l’IA ?&lt;/strong&gt;&lt;br&gt;
Tu penses que ça peut remplacer Google à terme ?&lt;/p&gt;</content:encoded></item><item><title>Programmation Structurée  - La fin du chaos avec des goto partout/</title><link>https://papydev.fr/blog/74/</link><guid isPermaLink="true">https://papydev.fr/blog/74/</guid><pubDate>Mon, 03 Feb 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Tu te souviens de ces histoires de devs qui foutaient des &lt;code&gt;goto&lt;/code&gt; à tout va dans leurs programmes ?&lt;br&gt;
Non ? Tant mieux. Parce que franchement, c’était un carnage.&lt;/p&gt;

&lt;p&gt;Dans les &lt;strong&gt;années 60&lt;/strong&gt;, le code ressemblait à un &lt;strong&gt;plat de spaghettis&lt;/strong&gt; :&lt;br&gt;
des sauts dans tous les sens, aucun ordre, et bon courage pour &lt;strong&gt;déboguer&lt;/strong&gt; ou &lt;strong&gt;faire évoluer&lt;/strong&gt; un truc là-dedans.&lt;br&gt;
T’avais une modif à faire ? Bah… bonne chance pour pas tout casser.&lt;/p&gt;

&lt;p&gt;Puis arrive &lt;strong&gt;ALGOL&lt;/strong&gt; (&lt;em&gt;ALGOrithmic Language&lt;/em&gt;), en &lt;strong&gt;1960&lt;/strong&gt;. Et là, &lt;strong&gt;révolution&lt;/strong&gt; :&lt;br&gt;
on introduit la &lt;strong&gt;programmation structurée&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fini les &lt;code&gt;goto&lt;/code&gt; sauvages&lt;/strong&gt;, place à des structures de contrôle claires :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;des boucles (&lt;code&gt;for&lt;/code&gt;, &lt;code&gt;while&lt;/code&gt;),&lt;/li&gt;
    &lt;li&gt;des conditions (&lt;code&gt;if&lt;/code&gt;, &lt;code&gt;else&lt;/code&gt;),&lt;/li&gt;
    &lt;li&gt;et surtout, la &lt;strong&gt;décomposition en fonctions&lt;/strong&gt; pour éviter de répéter le même code partout.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ça a changé la vie. Le code est devenu &lt;strong&gt;plus lisible&lt;/strong&gt;, &lt;strong&gt;plus logique&lt;/strong&gt;, et surtout &lt;strong&gt;maintenable&lt;/strong&gt;.&lt;br&gt;
On pouvait bosser en équipe sans avoir peur de tomber sur un bloc de &lt;strong&gt;500 lignes imbriquées&lt;/strong&gt; sans queue ni tête.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aujourd’hui ?&lt;/strong&gt; On ne se pose même plus la question.&lt;br&gt;
Ces structures sont la &lt;strong&gt;base&lt;/strong&gt; dans presque tous les langages modernes,&lt;br&gt;
de &lt;strong&gt;Python&lt;/strong&gt; à &lt;strong&gt;JavaScript&lt;/strong&gt;, en passant par &lt;strong&gt;C&lt;/strong&gt; et &lt;strong&gt;Java&lt;/strong&gt;.&lt;br&gt;
C’est tellement intégré qu’on n’y pense même plus.&lt;br&gt;
Mais imagine un monde où t’aurais encore à &lt;strong&gt;sauter de ligne en ligne avec des &lt;code&gt;goto&lt;/code&gt;&lt;/strong&gt; ?&lt;br&gt;
Ouais, moi non plus.&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;T’as déjà croisé des morceaux de code qui te donnaient des sueurs froides ?&lt;/strong&gt;&lt;br&gt;
Partage ton pire cauchemar en commentaire !&lt;/p&gt;</content:encoded></item><item><title>POO - Structurer le chaos avec des objets/</title><link>https://papydev.fr/blog/75/</link><guid isPermaLink="true">https://papydev.fr/blog/75/</guid><pubDate>Tue, 04 Feb 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Après la &lt;strong&gt;programmation structurée&lt;/strong&gt;, on pensait être peinards.&lt;br&gt;
Le code était plus propre, plus lisible… mais &lt;strong&gt;pas encore assez souple&lt;/strong&gt; pour gérer des systèmes complexes.&lt;br&gt;
T’imagines gérer un &lt;strong&gt;ERP&lt;/strong&gt; ou une &lt;strong&gt;appli mobile&lt;/strong&gt; avec juste des fonctions et des boucles ?&lt;br&gt;
Bon courage.&lt;/p&gt;

&lt;p&gt;C’est là qu’en &lt;strong&gt;1967&lt;/strong&gt;, &lt;strong&gt;Simula 67&lt;/strong&gt; débarque.&lt;br&gt;
C’est le &lt;strong&gt;premier langage&lt;/strong&gt; à introduire la &lt;strong&gt;programmation orientée objet&lt;/strong&gt;.&lt;br&gt;
Oui, avant &lt;strong&gt;Java&lt;/strong&gt;, avant &lt;strong&gt;C++&lt;/strong&gt;, c’est &lt;strong&gt;Simula&lt;/strong&gt; qui a planté la graine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;L’idée ?&lt;/strong&gt; Modéliser le monde réel avec des objets.&lt;br&gt;
On crée des &lt;strong&gt;classes&lt;/strong&gt; qui encapsulent des données (&lt;strong&gt;attributs&lt;/strong&gt;) et des comportements (&lt;strong&gt;méthodes&lt;/strong&gt;).&lt;/p&gt;

&lt;p&gt;Besoin d’un truc plus précis ?&lt;br&gt;
Tu fais de &lt;strong&gt;l’héritage&lt;/strong&gt;.&lt;br&gt;
Besoin de changer le comportement ?&lt;br&gt;
Tu utilises le &lt;strong&gt;polymorphisme&lt;/strong&gt;.&lt;br&gt;
Simple, élégant, puissant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ça a résolu un gros irritant :&lt;/strong&gt; le code devenait trop &lt;strong&gt;compliqué à maintenir&lt;/strong&gt; à mesure que les projets grossissaient.&lt;br&gt;
Avec la POO, tu pouvais enfin structurer ton code de façon &lt;strong&gt;modulaire et réutilisable&lt;/strong&gt;.&lt;br&gt;
Un changement dans une classe ? &lt;strong&gt;Pas besoin de toucher à tout le programme.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aujourd’hui, la POO est partout.&lt;/strong&gt;&lt;br&gt;
Java, C++, Python, C#… même des langages qui n’étaient pas orientés objet à la base (comme &lt;strong&gt;PHP&lt;/strong&gt;) s’y sont mis.&lt;br&gt;
On l’utilise pour tout :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Des &lt;strong&gt;applications web&lt;/strong&gt;.&lt;/li&gt;
    &lt;li&gt;Des &lt;strong&gt;jeux vidéo&lt;/strong&gt;.&lt;/li&gt;
    &lt;li&gt;Le &lt;strong&gt;mobile&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Mais bon, la POO, c’est pas la solution magique non plus.&lt;br&gt;
Avec le temps, on a vu apparaître des critiques :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Trop de complexité&lt;/strong&gt;.&lt;/li&gt;
    &lt;li&gt;Des objets pour des objets.&lt;/li&gt;
    &lt;li&gt;Des &lt;strong&gt;frameworks lourds&lt;/strong&gt; à gérer.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Résultat ?&lt;/strong&gt; De plus en plus de devs &lt;strong&gt;mélangent POO et d’autres paradigmes&lt;/strong&gt;&lt;br&gt;
comme la &lt;strong&gt;programmation fonctionnelle&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;Et toi, t’es plutôt team POO&lt;/strong&gt; ou t’as fait ton &lt;strong&gt;burn-out&lt;/strong&gt; avec des classes qui héritent d’autres classes qui héritent encore d’autres classes ?&lt;br&gt;
Partage ton expérience !&lt;/p&gt;</content:encoded></item><item><title>Lambda et fonctionnelle - Moins de lignes, plus de fun/</title><link>https://papydev.fr/blog/76/</link><guid isPermaLink="true">https://papydev.fr/blog/76/</guid><pubDate>Wed, 05 Feb 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Après la &lt;strong&gt;POO&lt;/strong&gt;, on se disait : “C’est bon, on a tout ce qu’il faut pour coder propre.”&lt;br&gt;
Mais en vrai ? &lt;strong&gt;Pas tout à fait.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;À force de manipuler des objets et d’empiler des classes, on s’est retrouvés avec des tonnes de &lt;strong&gt;boilerplate&lt;/strong&gt;&lt;br&gt;
pour des trucs qui auraient pu être simples.&lt;br&gt;
Genre, t’écris &lt;strong&gt;trois pages de code&lt;/strong&gt; juste pour trier une liste ? Sérieux ?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C’est là que la programmation fonctionnelle a commencé à revenir sur le devant de la scène.&lt;/strong&gt;&lt;br&gt;
Ouais, &lt;strong&gt;revenir&lt;/strong&gt;, parce qu’elle existait déjà dans les années 50 avec &lt;strong&gt;Lisp&lt;/strong&gt;.&lt;br&gt;
Mais c’est vraiment avec des langages comme &lt;strong&gt;Haskell&lt;/strong&gt; et plus tard &lt;strong&gt;Scala&lt;/strong&gt; que ça a pris son envol.&lt;br&gt;
Puis les autres ont suivi : &lt;strong&gt;JavaScript, Python, Java 8…&lt;/strong&gt;&lt;br&gt;
tout le monde a ajouté des &lt;strong&gt;lambdas&lt;/strong&gt; et des fonctions comme &lt;code&gt;map()&lt;/code&gt;, &lt;code&gt;filter()&lt;/code&gt;, &lt;code&gt;reduce()&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Les fonctions lambda ?&lt;/strong&gt;&lt;br&gt;
Ce sont des &lt;strong&gt;fonctions anonymes&lt;/strong&gt;, super concises, que tu peux balancer direct en paramètre d’une autre fonction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Résultat ?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Moins de code&lt;/strong&gt; (adieu les fonctions inutiles déclarées à rallonge).&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Plus de lisibilité&lt;/strong&gt; (oui, c’est plus clean une ligne de &lt;code&gt;map()&lt;/code&gt; qu’une boucle &lt;code&gt;for&lt;/code&gt; de 10 lignes).&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Une approche déclarative&lt;/strong&gt; : tu dis &lt;strong&gt;ce que&lt;/strong&gt; tu veux faire, pas &lt;strong&gt;comment&lt;/strong&gt; le faire.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Aujourd’hui, c’est devenu un réflexe.&lt;/strong&gt;&lt;br&gt;
T’écris en &lt;strong&gt;JavaScript&lt;/strong&gt; ? Impossible de ne pas utiliser des lambdas.&lt;br&gt;
Même en &lt;strong&gt;Python&lt;/strong&gt; ou en &lt;strong&gt;Java&lt;/strong&gt;, c’est devenu &lt;strong&gt;indispensable&lt;/strong&gt; pour manipuler des collections, des flux de données, ou pour du traitement parallèle.&lt;/p&gt;

&lt;p&gt;Et au-delà des lambdas, la programmation fonctionnelle a amené des concepts comme :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Les &lt;strong&gt;fonctions pures&lt;/strong&gt;.&lt;/li&gt;
    &lt;li&gt;L’&lt;strong&gt;immutabilité&lt;/strong&gt; (bye bye les effets de bord).&lt;/li&gt;
    &lt;li&gt;Les &lt;strong&gt;higher-order functions&lt;/strong&gt; qui rendent ton code plus prévisible et plus facile à tester.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Mais attention&lt;/strong&gt;, trop de fonctionnel peut vite rendre ton code illisible si c’est mal utilisé.&lt;br&gt;
Un &lt;code&gt;reduce()&lt;/code&gt; mal branlé et ton collègue passe la journée à comprendre ce que t’as fait.&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;T’en penses quoi, toi ?&lt;/strong&gt;&lt;br&gt;
Les lambdas, c’est la &lt;strong&gt;liberté&lt;/strong&gt; ou c’est juste un moyen de rendre le code &lt;strong&gt;incompréhensible&lt;/strong&gt; ?&lt;br&gt;
Balance ton avis !&lt;/p&gt;</content:encoded></item><item><title>Typage Statique et Dynamique -  La guerre des types est déclarée/</title><link>https://papydev.fr/blog/77/</link><guid isPermaLink="true">https://papydev.fr/blog/77/</guid><pubDate>Thu, 06 Feb 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Après avoir dompté le chaos avec la &lt;strong&gt;POO&lt;/strong&gt; et allégé nos lignes avec les &lt;strong&gt;lambdas&lt;/strong&gt;,&lt;br&gt;
un autre débat éternel est resté sur la table : &lt;strong&gt;faut-il typer ou pas ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tout commence dans les années 70&lt;/strong&gt; avec des langages comme &lt;strong&gt;C&lt;/strong&gt; et &lt;strong&gt;Pascal&lt;/strong&gt; qui imposent un &lt;strong&gt;typage statique&lt;/strong&gt;.&lt;br&gt;
T’es obligé de définir le type de chaque variable (&lt;code&gt;int&lt;/code&gt;, &lt;code&gt;float&lt;/code&gt;, &lt;code&gt;char&lt;/code&gt;…), sinon ton code &lt;strong&gt;ne compile même pas&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Avantage ?&lt;/strong&gt; Le compilateur &lt;strong&gt;te gueule dessus&lt;/strong&gt; avant même que tu puisses lancer ton programme.&lt;br&gt;
Résultat : &lt;strong&gt;moins d’erreurs&lt;/strong&gt; à l’exécution et un code &lt;strong&gt;plus prévisible&lt;/strong&gt;.&lt;br&gt;
Parfait pour les systèmes critiques où la moindre erreur peut coûter cher.&lt;/p&gt;

&lt;p&gt;Mais voilà, ça peut vite devenir &lt;strong&gt;lourd&lt;/strong&gt;.&lt;br&gt;
T’as envie de tester un truc vite fait ?&lt;br&gt;
Faut déjà &lt;strong&gt;déclarer trois types&lt;/strong&gt; avant d’écrire ta première ligne de logique.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C’est là que débarquent des langages comme Python, JavaScript ou Ruby&lt;/strong&gt; avec un &lt;strong&gt;typage dynamique&lt;/strong&gt;.&lt;br&gt;
Ici, pas besoin de te prendre la tête :&lt;br&gt;
tu déclares ta variable et le langage &lt;strong&gt;devine le type tout seul&lt;/strong&gt;.&lt;br&gt;
Rapide, flexible, parfait pour les &lt;strong&gt;protos&lt;/strong&gt; et le &lt;strong&gt;scripting&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Mais cette flexibilité a un prix :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;T’oublies que &lt;code&gt;user&lt;/code&gt; peut être &lt;code&gt;null&lt;/code&gt; et &lt;strong&gt;BAM&lt;/strong&gt;, t’as un &lt;strong&gt;TypeError en prod&lt;/strong&gt;.&lt;/li&gt;
    &lt;li&gt;Tu fais des modifs rapides sans tests, et tu te retrouves avec des &lt;strong&gt;bugs planqués&lt;/strong&gt; dans des coins improbables.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Du coup, on a cherché à mixer les deux mondes.&lt;/strong&gt;&lt;br&gt;
TypeScript (pour JavaScript) ou MyPy (pour Python) sont arrivés pour ajouter du &lt;strong&gt;typage statique optionnel&lt;/strong&gt;.&lt;br&gt;
Tu peux continuer à coder à la cool, mais avec la possibilité de typer quand ça devient critique. &lt;strong&gt;Le meilleur des deux mondes.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aujourd’hui ?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Les &lt;strong&gt;projets rapides et flexibles&lt;/strong&gt; aiment encore le &lt;strong&gt;typage dynamique&lt;/strong&gt;.&lt;/li&gt;
    &lt;li&gt;Les &lt;strong&gt;gros projets d’équipe&lt;/strong&gt; (surtout en prod) préfèrent un &lt;strong&gt;typage statique&lt;/strong&gt; pour éviter les surprises.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;➡️ &lt;strong&gt;Et toi, t’es plutôt team “ça compile pas, ça plante pas”&lt;/strong&gt; ou &lt;strong&gt;“on verra bien à l’exécution”&lt;/strong&gt; ?&lt;br&gt;
Partage ton camp en commentaire, que la &lt;strong&gt;guerre des types&lt;/strong&gt; commence !&lt;/p&gt;</content:encoded></item><item><title>Programmation Reactive - Dompter l’asynchrone et les flux de données/</title><link>https://papydev.fr/blog/78/</link><guid isPermaLink="true">https://papydev.fr/blog/78/</guid><pubDate>Fri, 07 Feb 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Après avoir structuré, orienté, typé et fonctionnalisé notre code, un autre défi est arrivé avec l’explosion des &lt;strong&gt;applications temps réel&lt;/strong&gt; et des &lt;strong&gt;interfaces utilisateur dynamiques&lt;/strong&gt; :&lt;br&gt;
&lt;strong&gt;comment gérer l’asynchrone proprement ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Parce que bon, les &lt;strong&gt;callbacks imbriqués&lt;/strong&gt; à n’en plus finir (&lt;em&gt;callback hell&lt;/em&gt;, ça te parle ?), c’était juste &lt;strong&gt;pas possible&lt;/strong&gt;.&lt;br&gt;
Quand t’avais des requêtes API qui dépendent les unes des autres, des événements utilisateur qui s’enchaînent&lt;br&gt;
ou des flux de données en continu, ça devenait vite &lt;strong&gt;ingérable&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;La programmation réactive a été la réponse à ce bazar.&lt;/strong&gt;&lt;br&gt;
Ça a commencé avec &lt;strong&gt;ReactiveX (Reactive Extensions)&lt;/strong&gt;, une bibliothèque née chez Microsoft pour .NET,&lt;br&gt;
qui s’est vite propagée à d’autres langages : &lt;strong&gt;RxJava, RxJS, RxSwift&lt;/strong&gt;, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;L’idée ?&lt;/strong&gt; Traiter des &lt;strong&gt;flux de données&lt;/strong&gt; (des &lt;em&gt;streams&lt;/em&gt;) comme des séquences d’événements&lt;br&gt;
qu’on peut écouter, combiner, filtrer ou transformer.&lt;/p&gt;

&lt;p&gt;Plutôt que de réagir à un événement à la fois, tu travailles avec des &lt;strong&gt;observables&lt;/strong&gt; qui émettent des données dans le temps.&lt;br&gt;
C’est comme passer de la gestion manuelle d’une file d’attente à un &lt;strong&gt;tapis roulant automatique&lt;/strong&gt;&lt;br&gt;
où chaque élément est traité sans que tu te casses la tête.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ce que ça a résolu :&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Fini le callback hell&lt;/strong&gt; et les promesses imbriquées à l’infini.&lt;/li&gt;
    &lt;li&gt;Meilleure gestion de la &lt;strong&gt;concurrence&lt;/strong&gt; et des &lt;strong&gt;flux complexes&lt;/strong&gt; d’événements&lt;br&gt;
        (genre les &lt;strong&gt;clics utilisateur&lt;/strong&gt;, les &lt;strong&gt;requêtes réseau&lt;/strong&gt;, les &lt;strong&gt;mises à jour en temps réel&lt;/strong&gt;).&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Code plus déclaratif et plus prévisible&lt;/strong&gt; :&lt;br&gt;
        tu dis &lt;strong&gt;ce que&lt;/strong&gt; tu veux faire avec les données, pas &lt;strong&gt;comment&lt;/strong&gt; les gérer au niveau bas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Aujourd’hui, la programmation réactive est partout :&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;En front-end&lt;/strong&gt;, avec &lt;strong&gt;RxJS&lt;/strong&gt; dans Angular, pour gérer les interactions complexes.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;En mobile&lt;/strong&gt;, avec &lt;strong&gt;RxSwift&lt;/strong&gt; pour iOS ou &lt;strong&gt;LiveData&lt;/strong&gt; pour Android.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;En back-end&lt;/strong&gt;, avec des frameworks comme &lt;strong&gt;Spring WebFlux&lt;/strong&gt; en Java pour gérer des applications réactives ultra-scalables.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Mais attention&lt;/strong&gt;, la programmation réactive, c’est puissant,&lt;br&gt;
mais ça peut vite devenir un &lt;strong&gt;cauchemar&lt;/strong&gt; si t’abuses.&lt;br&gt;
Mal utilisée, tu te retrouves avec des &lt;strong&gt;chaînes d’observables incompréhensibles&lt;/strong&gt;,&lt;br&gt;
des &lt;strong&gt;fuites de mémoire&lt;/strong&gt; et un &lt;strong&gt;débogage&lt;/strong&gt; qui te donne envie de tout envoyer valser.&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;T’as déjà plongé dans la programmation réactive ?&lt;/strong&gt;&lt;br&gt;
T’es plutôt &lt;strong&gt;fan&lt;/strong&gt; ou t’as fini par &lt;strong&gt;balancer ton ordi&lt;/strong&gt; après trois heures à traquer une fuite mémoire ?&lt;br&gt;
Partage ton retour !&lt;/p&gt;</content:encoded></item><item><title>Jenkins - La naissance de l’intégration continue/</title><link>https://papydev.fr/blog/79/</link><guid isPermaLink="true">https://papydev.fr/blog/79/</guid><pubDate>Mon, 10 Feb 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Avant Jenkins, c’était le far west du déploiement.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Tu bossais des semaines sur une feature. Quand tu voulais merger ton code, c’était la panique :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;— “Attends, t’as bien testé ?”&lt;br&gt;
— “Oui oui, ça marche chez moi.”&lt;br&gt;
— “Ok, on déploie.”&lt;br&gt;
— Et &lt;strong&gt;BAM.&lt;/strong&gt; Prod cassée.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Pourquoi ?&lt;/strong&gt;&lt;br&gt;
Parce qu’on développait chacun dans notre coin.&lt;br&gt;
Les merges étaient des &lt;strong&gt;cauchemars&lt;/strong&gt;, les tests étaient souvent &lt;strong&gt;manuels&lt;/strong&gt;,&lt;br&gt;
et on découvrait les bugs trop tard, une fois que tout était déjà en place.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kohsuke Kawaguchi&lt;/strong&gt;, un ingénieur chez &lt;strong&gt;Sun Microsystems&lt;/strong&gt;,&lt;br&gt;
en a eu marre de perdre son temps à corriger des bugs qui auraient pu être évités plus tôt.&lt;br&gt;
En &lt;strong&gt;2005&lt;/strong&gt;, il crée &lt;strong&gt;Hudson&lt;/strong&gt; (le futur &lt;strong&gt;Jenkins&lt;/strong&gt;),&lt;br&gt;
un outil qui va &lt;strong&gt;automatiser les builds, les tests et les déploiements&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;L’idée ?&lt;/strong&gt;&lt;br&gt;
Chaque &lt;strong&gt;commit&lt;/strong&gt; doit être testé immédiatement.&lt;br&gt;
Si quelque chose casse, on le sait &lt;strong&gt;tout de suite&lt;/strong&gt;, pas &lt;strong&gt;trois semaines plus tard&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Et là, &lt;strong&gt;révolution&lt;/strong&gt; :&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Plus de merges cauchemardesques.&lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Moins de “ça marche chez moi”.&lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Une véritable collaboration entre devs.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hudson devient vite &lt;strong&gt;indispensable&lt;/strong&gt;, mais après des embrouilles avec Oracle,&lt;br&gt;
le projet &lt;strong&gt;fork&lt;/strong&gt; sous le nom &lt;strong&gt;Jenkins&lt;/strong&gt; en 2011.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Depuis, Jenkins a inspiré toute la CI moderne.&lt;/strong&gt;&lt;br&gt;
Il a ouvert la voie à &lt;strong&gt;GitHub Actions&lt;/strong&gt;, &lt;strong&gt;GitLab CI/CD&lt;/strong&gt;, et bien d’autres.&lt;br&gt;
Aujourd’hui encore, il tourne dans des milliers d’entreprises.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tout ça parce qu’un dev a voulu arrêter de perdre son temps avec des merges foireux.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;Et toi, t’as déjà vécu l’enfer du “ça marche chez moi” avant d’adopter la CI ?&lt;/strong&gt;&lt;/p&gt;</content:encoded></item><item><title>Docker - Le coup fatal au “ça marche chez moi”/</title><link>https://papydev.fr/blog/80/</link><guid isPermaLink="true">https://papydev.fr/blog/80/</guid><pubDate>Tue, 11 Feb 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Jenkins a résolu un gros problème : détecter les bugs dès l’intégration.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mais il en restait un autre, bien plus vicieux…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Les environnements.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;— “Chez moi, tout marche nickel.”&lt;br&gt;
— “Ah bon ? Parce qu’en prod, ça plante.”&lt;br&gt;
— “Ah… T’es sûr que t’as la bonne version de Node ?”&lt;br&gt;
— “Attends, c’est quoi la version de la base de données déjà ?”&lt;br&gt;
— “Noooon ! J’avais oublié d’installer une dépendance…”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;On perdait des &lt;strong&gt;heures&lt;/strong&gt; (voire des &lt;strong&gt;jours&lt;/strong&gt;) à corriger des &lt;strong&gt;écarts entre les environnements&lt;/strong&gt; de dev, de test et de prod.&lt;/p&gt;

&lt;p&gt;Jusqu’à ce qu’un mec débarque en &lt;strong&gt;2013&lt;/strong&gt; avec une idée &lt;strong&gt;simple mais game changer&lt;/strong&gt; :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Et si on mettait tout dans un container standardisé, qui marche partout pareil ?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Ce mec, c’est Solomon Hykes.&lt;/strong&gt;&lt;br&gt;
Son invention ? &lt;strong&gt;Docker.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Avec &lt;strong&gt;Docker&lt;/strong&gt;, fini les excuses.&lt;br&gt;
Ton code tourne dans un &lt;strong&gt;container identique&lt;/strong&gt;, que ce soit sur ta machine, sur un serveur, ou en prod.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Résultat ?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Moins de “ça marche chez moi”.&lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Des builds et des tests reproductibles.&lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Des déploiements plus rapides et plus fiables.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Et surtout, Docker a ouvert la voie à &lt;strong&gt;Kubernetes&lt;/strong&gt;,&lt;br&gt;
qui allait bientôt &lt;strong&gt;changer la gestion des infrastructures&lt;/strong&gt;… mais on n’en est pas encore là.&lt;/p&gt;

&lt;p&gt;Parce qu’avant Kubernetes, un autre outil a marqué un tournant dans le &lt;strong&gt;CI/CD&lt;/strong&gt;…&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Un outil qui a rendu l’automatisation accessible à tous, directement dans GitHub.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Son nom ? GitHub Actions.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;(Et ça, on en parle demain. 😉)&lt;/p&gt;</content:encoded></item><item><title>Github Actions - La CI/CD intégrée à ton repo/</title><link>https://papydev.fr/blog/81/</link><guid isPermaLink="true">https://papydev.fr/blog/81/</guid><pubDate>Wed, 12 Feb 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Avec &lt;strong&gt;Jenkins&lt;/strong&gt;, on a automatisé l’intégration.&lt;br&gt;
Avec &lt;strong&gt;Docker&lt;/strong&gt;, on a résolu les problèmes d’environnement.&lt;/p&gt;

&lt;p&gt;Mais… y’avait encore un souci : &lt;strong&gt;la configuration de la CI/CD.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Avant GitHub Actions&lt;/strong&gt;, mettre en place une CI/CD, c’était souvent la galère :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;— Il fallait &lt;strong&gt;installer Jenkins&lt;/strong&gt; (ou un autre outil) sur un serveur.&lt;br&gt;
— Il fallait configurer des &lt;strong&gt;webhooks&lt;/strong&gt; pour déclencher les builds.&lt;br&gt;
— Il fallait gérer les &lt;strong&gt;permissions&lt;/strong&gt;, les &lt;strong&gt;runners&lt;/strong&gt;, et parfois, ça finissait par un &lt;code&gt;scp&lt;/code&gt; à la main en prod (oui, avoue, on l’a tous fait).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Bref, c’était &lt;strong&gt;lourd&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Puis en &lt;strong&gt;2019&lt;/strong&gt;, &lt;strong&gt;GitHub a sorti GitHub Actions&lt;/strong&gt;.&lt;br&gt;
Et là, c’est devenu &lt;strong&gt;beaucoup trop simple&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pourquoi ça a changé le game ?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;CI/CD native à GitHub&lt;/strong&gt; → Plus besoin d’installer un outil externe, tout est intégré.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Des workflows en YAML&lt;/strong&gt; → Simple, lisible, versionné dans le repo.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Des actions réutilisables&lt;/strong&gt; → Plus besoin de tout coder soi-même, y’a déjà des milliers d’actions prêtes à l’emploi.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Un pricing agressif&lt;/strong&gt; → Gratuit pour les repos publics, et ultra compétitif pour le reste.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Résultat ? Une adoption massive.&lt;/strong&gt;&lt;br&gt;
En quelques années, &lt;strong&gt;GitHub Actions&lt;/strong&gt; a enterré &lt;strong&gt;Travis CI&lt;/strong&gt; et &lt;strong&gt;CircleCI&lt;/strong&gt;,&lt;br&gt;
et a grignoté des parts de marché à &lt;strong&gt;GitLab CI&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aujourd’hui, c’est l’un des standards de la CI/CD moderne.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mais… &lt;strong&gt;déployer du code, c’est bien.&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Déployer de l’infrastructure, c’est mieux.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Et c’est là qu’un nouvel acteur entre en jeu : &lt;strong&gt;ArgoCD et la révolution GitOps.&lt;/strong&gt;&lt;/p&gt;</content:encoded></item><item><title>ArgoCD - Quand Git devient ton outil de déploiement/</title><link>https://papydev.fr/blog/82/</link><guid isPermaLink="true">https://papydev.fr/blog/82/</guid><pubDate>Thu, 13 Feb 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Avec &lt;strong&gt;GitHub Actions&lt;/strong&gt;, on a automatisé les pipelines CI/CD directement dans Git.&lt;br&gt;
Mais il restait un problème : &lt;strong&gt;la gestion des déploiements en production.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Dans un monde où &lt;strong&gt;Kubernetes&lt;/strong&gt; est devenu la norme, on devait encore faire des trucs à la main :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;— Lancer un &lt;code&gt;kubectl apply&lt;/code&gt; pour déployer une nouvelle version.&lt;br&gt;
— Mettre à jour des fichiers YAML et &lt;strong&gt;croiser les doigts&lt;/strong&gt; pour que tout fonctionne.&lt;br&gt;
— Galérer avec les &lt;strong&gt;rollbacks&lt;/strong&gt; en cas de problème.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Bref, &lt;strong&gt;pas hyper automatisé.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Et c’est là que &lt;strong&gt;GitOps&lt;/strong&gt; est arrivé.&lt;/p&gt;

&lt;h3&gt;Le concept du GitOps&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;L’idée est simple :&lt;/strong&gt;&lt;br&gt;
“Si tout le code est dans Git… pourquoi ne pas y mettre aussi l’infrastructure et les déploiements ?”&lt;/p&gt;

&lt;p&gt;En gros :&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;Tu déclares l’&lt;strong&gt;état souhaité&lt;/strong&gt; de ton infra (&lt;code&gt;pods&lt;/code&gt;, &lt;code&gt;services&lt;/code&gt;, &lt;code&gt;configs&lt;/code&gt;…) dans &lt;strong&gt;Git&lt;/strong&gt;.&lt;/li&gt;
    &lt;li&gt;Un outil &lt;strong&gt;observe Git&lt;/strong&gt; et synchronise automatiquement Kubernetes.&lt;/li&gt;
    &lt;li&gt;Si quelqu’un &lt;strong&gt;modifie l’infra à la main&lt;/strong&gt;, l’outil remet tout en conformité avec Git.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Et l’outil qui a popularisé ça, c’est &lt;strong&gt;ArgoCD&lt;/strong&gt; (sorti en 2019).&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;Pourquoi ArgoCD a changé la donne ?&lt;/h3&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Déploiements déclaratifs&lt;/strong&gt; → Plus de commandes &lt;code&gt;kubectl&lt;/code&gt;, tout passe par Git.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Auto-sync&lt;/strong&gt; → L’état réel doit toujours correspondre à l’état décrit dans Git.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Rollbacks ultra simples&lt;/strong&gt; → Une erreur ? Un simple &lt;code&gt;git revert&lt;/code&gt; et tout redevient comme avant.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Audit &amp; traçabilité&lt;/strong&gt; → Tout changement est versionné et approuvé via des PRs.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;ArgoCD a permis de rendre le déploiement en production aussi simple qu’un &lt;code&gt;git push&lt;/code&gt;.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mais pour que tout ça fonctionne bien dans les gros projets, il manquait encore un dernier élément clé :&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;➡ Un moyen d’&lt;strong&gt;accélérer les builds&lt;/strong&gt; et de &lt;strong&gt;gérer les monorepos&lt;/strong&gt; efficacement.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;➡ Et c’est là que &lt;strong&gt;Nx &amp; Turborepo&lt;/strong&gt; entrent en scène.&lt;/p&gt;</content:encoded></item><item><title>NX &amp; Turborepo - La fin des pipelines CI/CD qui rament/</title><link>https://papydev.fr/blog/83/</link><guid isPermaLink="true">https://papydev.fr/blog/83/</guid><pubDate>Fri, 14 Feb 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;On a réglé l’intégration continue avec &lt;strong&gt;Jenkins&lt;/strong&gt; et &lt;strong&gt;GitHub Actions&lt;/strong&gt;.&lt;br&gt;
On a fiabilisé les déploiements avec &lt;strong&gt;ArgoCD&lt;/strong&gt; et le &lt;strong&gt;GitOps&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Mais… il restait un dernier gros problème :&lt;/p&gt;

&lt;h3&gt;Les builds trop longs.&lt;/h3&gt;

&lt;p&gt;Dans les gros projets, surtout en &lt;strong&gt;monorepo&lt;/strong&gt;, chaque push déclenchait :&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;Des &lt;strong&gt;tests inutiles&lt;/strong&gt; sur du code qui n’avait pas changé.&lt;/li&gt;
    &lt;li&gt;Des &lt;strong&gt;rebuilds complets&lt;/strong&gt; au lieu de ne reconstruire que ce qui était impacté.&lt;/li&gt;
    &lt;li&gt;Des &lt;strong&gt;pipelines CI/CD&lt;/strong&gt; qui prenaient des plombes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Résultat ?&lt;/strong&gt;&lt;br&gt;
Un simple PR pouvait mettre &lt;strong&gt;10, 20, 30 minutes&lt;/strong&gt; à passer dans la CI.&lt;br&gt;
Multiplié par des dizaines de devs, ça devenait un &lt;strong&gt;gouffre en temps et en argent&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;Le game changer : Nx et Turborepo&lt;/h3&gt;

&lt;p&gt;Vers &lt;strong&gt;2021&lt;/strong&gt;, deux outils ont émergé pour résoudre ce problème :&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;Nx&lt;/strong&gt; (par Narwhal)&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Turborepo&lt;/strong&gt; (par Vercel)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Leur promesse ?&lt;/strong&gt; Rendre la CI/CD &lt;strong&gt;ultra rapide&lt;/strong&gt;, surtout pour les monorepos.&lt;/p&gt;

&lt;h3&gt;Pourquoi ça change tout ?&lt;/h3&gt;

&lt;ol&gt;
    &lt;li&gt;&lt;strong&gt;Le caching intelligent&lt;/strong&gt;&lt;br&gt;
        Si un fichier n’a pas changé, pourquoi recompiler tout le projet ?&lt;br&gt;
        Nx et Turborepo analysent uniquement les &lt;strong&gt;dépendances impactées&lt;/strong&gt;, ce qui réduit drastiquement les temps de build.&lt;/li&gt;

    &lt;li&gt;&lt;strong&gt;L’exécution parallèle et distribuée&lt;/strong&gt;&lt;br&gt;
        Les tâches sont divisées et &lt;strong&gt;parallélisées sur plusieurs machines&lt;/strong&gt;, ce qui accélère encore plus la CI.&lt;/li&gt;

    &lt;li&gt;&lt;strong&gt;Le Remote Caching&lt;/strong&gt;&lt;br&gt;
        Même si tu changes de machine ou que tu bosses en équipe, les builds sont &lt;strong&gt;mémorisés et partagés&lt;/strong&gt;.&lt;br&gt;
        Si ton collègue a déjà compilé une partie du projet, toi tu n’as pas à le refaire.&lt;/li&gt;

    &lt;li&gt;&lt;strong&gt;Une meilleure gestion des monorepos&lt;/strong&gt;&lt;br&gt;
        Les dépendances croisées sont analysées intelligemment pour éviter des rebuilds inutiles.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;Les gains ?&lt;/h3&gt;

&lt;ul&gt;
    &lt;li&gt;Des pipelines &lt;strong&gt;10x plus rapides&lt;/strong&gt;.&lt;/li&gt;
    &lt;li&gt;Moins de consommation &lt;strong&gt;CPU&lt;/strong&gt; et de coûts &lt;strong&gt;Cloud&lt;/strong&gt;.&lt;/li&gt;
    &lt;li&gt;Une &lt;strong&gt;meilleure expérience&lt;/strong&gt; pour les devs, qui passent moins de temps à attendre la CI.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Aujourd’hui, les gros projets monorepo ne peuvent plus s’en passer.&lt;/strong&gt;&lt;br&gt;
Et avec l’essor du &lt;strong&gt;monorepo&lt;/strong&gt;, Nx et Turborepo deviennent des &lt;strong&gt;standards&lt;/strong&gt; pour optimiser la CI/CD.&lt;/p&gt;

&lt;h3&gt;Bilan : comment tout ça a changé le CI/CD ?&lt;/h3&gt;

&lt;p&gt;En &lt;strong&gt;20 ans&lt;/strong&gt;, on est passés de :&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;❌ “On merge tout à la fin et on croise les doigts.”&lt;/li&gt;
    &lt;li&gt;❌ “Ça marche chez moi mais pas en prod.”&lt;/li&gt;
    &lt;li&gt;❌ “Les builds mettent une éternité.”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;À :&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;✅ Des pipelines &lt;strong&gt;automatisés&lt;/strong&gt; avec &lt;strong&gt;GitHub Actions&lt;/strong&gt;.&lt;/li&gt;
    &lt;li&gt;✅ Des &lt;strong&gt;environnements identiques&lt;/strong&gt; partout grâce à &lt;strong&gt;Docker&lt;/strong&gt;.&lt;/li&gt;
    &lt;li&gt;✅ Des &lt;strong&gt;déploiements GitOps&lt;/strong&gt; sans stress avec &lt;strong&gt;ArgoCD&lt;/strong&gt;.&lt;/li&gt;
    &lt;li&gt;✅ Des &lt;strong&gt;builds ultra-rapides&lt;/strong&gt; avec &lt;strong&gt;Nx &amp; Turborepo&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Et maintenant ?&lt;/h3&gt;

&lt;p&gt;On parle d’&lt;strong&gt;IA dans la CI/CD&lt;/strong&gt;, avec des outils qui &lt;strong&gt;optimisent automatiquement&lt;/strong&gt; les pipelines.&lt;br&gt;
Mais une chose est sûre : chaque évolution vise à &lt;strong&gt;simplifier&lt;/strong&gt; ce qui était devenu trop compliqué.&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;Et toi, dans ta boîte, vous avez mis quoi en place pour éviter les builds qui prennent 3 plombes ? 🚀&lt;/strong&gt;&lt;/p&gt;</content:encoded></item><item><title>Webworker - Le multithread en JS/</title><link>https://papydev.fr/blog/84/</link><guid isPermaLink="true">https://papydev.fr/blog/84/</guid><pubDate>Sat, 15 Feb 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Aujourd’hui, j’ai mis en place un Web Worker&lt;/strong&gt; pour gérer un &lt;strong&gt;polling&lt;/strong&gt; sans flinguer l’UI.&lt;br&gt;
Parce que l’asynchrone, ça reste quand même dans le &lt;strong&gt;main thread&lt;/strong&gt;,&lt;br&gt;
et c’est comme un gars qui raconte sa vie en open space :&lt;br&gt;
&lt;strong&gt;ça empêche tout le monde de bosser correctement.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;Un Web Worker, c’est quoi ?&lt;/h2&gt;

&lt;p&gt;C’est un script qui tourne &lt;strong&gt;en parallèle&lt;/strong&gt; du thread principal, dans son propre environnement.&lt;br&gt;
Il n’a pas accès au &lt;strong&gt;DOM&lt;/strong&gt;, mais il peut exécuter des &lt;strong&gt;tâches lourdes&lt;/strong&gt; sans bloquer l’interface utilisateur.&lt;/p&gt;

&lt;h3&gt;Pourquoi c’est cool ?&lt;/h3&gt;

&lt;ul&gt;
    &lt;li&gt;🚀 &lt;strong&gt;Performance&lt;/strong&gt; : Ton &lt;strong&gt;thread principal&lt;/strong&gt; reste libre pour gérer l’UI.&lt;/li&gt;
    &lt;li&gt;⚡ &lt;strong&gt;Réactivité&lt;/strong&gt; : Fini les &lt;strong&gt;freezes&lt;/strong&gt; parce que t’as un calcul ou un appel réseau un peu trop gourmand.&lt;/li&gt;
    &lt;li&gt;🔀 &lt;strong&gt;Scalabilité&lt;/strong&gt; : Tu peux gérer plusieurs &lt;strong&gt;tâches en parallèle&lt;/strong&gt;, comme en backend avec des workers.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Comment je l’ai utilisé ?&lt;/h3&gt;

&lt;p&gt;Dans mon cas, j’avais un &lt;strong&gt;polling&lt;/strong&gt; qui interrogeait régulièrement une API.&lt;br&gt;
&lt;strong&gt;Problème&lt;/strong&gt; : si je laissais ça dans le &lt;strong&gt;main thread&lt;/strong&gt;, l’UI devenait &lt;strong&gt;poussive&lt;/strong&gt;.&lt;br&gt;
Du coup, j’ai déporté ce polling dans un &lt;strong&gt;Web Worker&lt;/strong&gt;, qui envoie les résultats via &lt;code&gt;postMessage()&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;Résultat ?&lt;/h3&gt;

&lt;ul&gt;
    &lt;li&gt;🎯 &lt;strong&gt;Une UI fluide&lt;/strong&gt;.&lt;/li&gt;
    &lt;li&gt;😊 &lt;strong&gt;Un utilisateur content&lt;/strong&gt;.&lt;/li&gt;
    &lt;li&gt;💡 &lt;strong&gt;Et moi, une petite fierté de dev.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;➡️ &lt;strong&gt;T’as déjà utilisé les Web Workers sur tes projets ?&lt;/strong&gt;&lt;br&gt;
Tu les vois utiles où ?&lt;/p&gt;</content:encoded></item><item><title>Svelte - Le framework de l’avenir/</title><link>https://papydev.fr/blog/85/</link><guid isPermaLink="true">https://papydev.fr/blog/85/</guid><pubDate>Mon, 17 Feb 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Tu trouves React compliqué ?&lt;/strong&gt;&lt;br&gt;
Trop de boilerplate ? Trop de concepts à ingérer avant d’être productif ?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tu n’es pas seul.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rich Harris&lt;/strong&gt;, le créateur de &lt;strong&gt;Svelte&lt;/strong&gt;, en avait marre aussi.&lt;/p&gt;

&lt;p&gt;En &lt;strong&gt;2016&lt;/strong&gt;, il bossait comme &lt;strong&gt;journaliste-développeur au New York Times&lt;/strong&gt;,&lt;br&gt;
et il devait faire des &lt;strong&gt;visualisations interactives&lt;/strong&gt; pour des articles.&lt;br&gt;
Sauf que ces visualisations devaient être &lt;strong&gt;légères, rapides&lt;/strong&gt; et &lt;strong&gt;faciles à intégrer&lt;/strong&gt; sur une page déjà chargée en ressources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sauf qu’avec React ou Vue, c’était pas la fête :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;📦 Un &lt;strong&gt;runtime JS&lt;/strong&gt; à embarquer&lt;/li&gt;
    &lt;li&gt;⚙️ Des tonnes d’optimisations pour ne pas plomber les perfs&lt;/li&gt;
    &lt;li&gt;📜 Du code bien plus &lt;strong&gt;verbeux que nécessaire&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Il s’est alors posé une question simple :&lt;br&gt;
&lt;strong&gt;Et si on arrêtait d’écrire des frameworks qui tournent dans le navigateur ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Boom. Svelte est né.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;Le concept ?&lt;/h3&gt;

&lt;p&gt;Contrairement à &lt;strong&gt;React&lt;/strong&gt; ou &lt;strong&gt;Vue&lt;/strong&gt;, qui nécessitent un runtime JS pour faire tourner leurs composants,&lt;br&gt;
&lt;strong&gt;Svelte compile ton code&lt;/strong&gt; en &lt;strong&gt;pur JavaScript natif&lt;/strong&gt;.&lt;br&gt;
Plus besoin de runtime : ton app est juste un ensemble de &lt;strong&gt;fonctions ultra-optimisées&lt;/strong&gt;,&lt;br&gt;
directement exécutées par le navigateur.&lt;/p&gt;

&lt;h3&gt;Les irritants que Svelte élimine :&lt;/h3&gt;

&lt;ul&gt;
    &lt;li&gt;✅ &lt;strong&gt;Pas de Virtual DOM&lt;/strong&gt; → Pas besoin de diffing, juste du code natif optimisé&lt;/li&gt;
    &lt;li&gt;✅ &lt;strong&gt;Syntaxe ultra simple&lt;/strong&gt; → Pas de &lt;code&gt;useState&lt;/code&gt;, pas d’effet spaghetti avec des hooks&lt;/li&gt;
    &lt;li&gt;✅ &lt;strong&gt;Code plus léger&lt;/strong&gt; → Moins de dépendances, plus rapide au chargement&lt;/li&gt;
    &lt;li&gt;✅ &lt;strong&gt;Meilleure DX&lt;/strong&gt; → Un état réactif qui fonctionne comme on l’attend, sans hacks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Et ça marche : les &lt;strong&gt;benchmarks&lt;/strong&gt; montrent que &lt;strong&gt;Svelte produit des apps plus performantes que React&lt;/strong&gt;,&lt;br&gt;
avec &lt;strong&gt;30 à 40% de JS en moins&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Évidemment, tout n’est pas parfait :&lt;br&gt;
l’&lt;strong&gt;écosystème est plus petit&lt;/strong&gt;, et il faut passer par un &lt;strong&gt;build step&lt;/strong&gt;.&lt;br&gt;
Mais si tu cherches un framework &lt;strong&gt;léger, performant&lt;/strong&gt; et &lt;strong&gt;ultra intuitif&lt;/strong&gt;, ça vaut le coup d’essayer.&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;Tu as déjà testé Svelte ?&lt;/strong&gt;&lt;br&gt;
Ou tu restes fidèle à React ?&lt;/p&gt;</content:encoded></item><item><title>Django - Simplification et efficacité ! 🚀/</title><link>https://papydev.fr/blog/86/</link><guid isPermaLink="true">https://papydev.fr/blog/86/</guid><pubDate>Tue, 18 Feb 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Tu trouves que bosser avec Node.js, c’est parfois le bordel ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Trop de choix, trop de packages, trop de “faut rajouter ça pour que ça marche” ?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;T’es pas le seul.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;En &lt;strong&gt;2003&lt;/strong&gt;, deux devs du journal &lt;em&gt;Lawrence Journal-World&lt;/em&gt; en avaient ras-le-bol&lt;br&gt;
de perdre du temps à &lt;strong&gt;réécrire les mêmes trucs&lt;/strong&gt; pour chaque projet web.&lt;br&gt;
Ils voulaient un framework qui aille droit au but : &lt;strong&gt;productivité, structure&lt;/strong&gt; et &lt;strong&gt;zéro prise de tête&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Deux ans plus tard, &lt;strong&gt;Django&lt;/strong&gt; voyait le jour.&lt;/p&gt;

&lt;h3&gt;L’idée derrière Django (du Python)&lt;/h3&gt;

&lt;p&gt;Plutôt que de te laisser galérer avec une stack éclatée en mille morceaux,&lt;br&gt;
&lt;strong&gt;Django te file tout ce qu’il faut&lt;/strong&gt; pour construire une app web complète :&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;✅ Un &lt;strong&gt;ORM intégré&lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;✅ Une &lt;strong&gt;admin toute prête&lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;✅ Un &lt;strong&gt;routeur simple et efficace&lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;✅ Une &lt;strong&gt;gestion des utilisateurs&lt;/strong&gt; et des permissions native&lt;/li&gt;
    &lt;li&gt;✅ Un &lt;strong&gt;système de templates&lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;✅ Et même un &lt;strong&gt;serveur de dev&lt;/strong&gt; pour tester vite fait&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Le tout &lt;strong&gt;batteries included&lt;/strong&gt;, comme ils disent.&lt;br&gt;
Tu installes Django, et t’as déjà &lt;strong&gt;80% de ton backend prêt à l’emploi&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;Ce que Django corrige&lt;/h3&gt;

&lt;p&gt;En 2005, faire un site dynamique, c’était souvent :&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;❌ &lt;strong&gt;Réinventer la roue&lt;/strong&gt; à chaque projet&lt;/li&gt;
    &lt;li&gt;❌ &lt;strong&gt;Galérer à structurer&lt;/strong&gt; son code proprement&lt;/li&gt;
    &lt;li&gt;❌ &lt;strong&gt;Jongler entre plein de librairies&lt;/strong&gt; pas forcément compatibles entre elles&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Django&lt;/strong&gt; a réglé ça en &lt;strong&gt;imposant une structure claire&lt;/strong&gt;&lt;br&gt;
et en &lt;strong&gt;intégrant un max de fonctionnalités directement dans le framework&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Aujourd’hui, même si &lt;strong&gt;Node.js&lt;/strong&gt; et &lt;strong&gt;FastAPI&lt;/strong&gt; ont le vent en poupe,&lt;br&gt;
&lt;strong&gt;Django reste un des frameworks backend les plus solides et productifs&lt;/strong&gt;.&lt;br&gt;
Il tourne sur des milliers de sites en production, dont &lt;strong&gt;Instagram, Spotify&lt;/strong&gt; et &lt;strong&gt;Disqus&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Certains le trouvent &lt;em&gt;“monolithique”&lt;/em&gt;,&lt;br&gt;
mais quand tu veux livrer vite sans te prendre la tête, difficile de faire mieux.&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;Et toi, t’as déjà bossé avec Django ?&lt;/strong&gt;&lt;br&gt;
Tu préfères quoi comme framework backend ?&lt;/p&gt;</content:encoded></item><item><title>Laravel - Le framework PHP qui redéfinit les standards ! 🕸️🚀/</title><link>https://papydev.fr/blog/87/</link><guid isPermaLink="true">https://papydev.fr/blog/87/</guid><pubDate>Wed, 19 Feb 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Tu trouves que faire du PHP, c’est chiant ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Trop de fichiers, trop de copier-coller, trop de “faut tout faire à la main” ?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C’est exactement ce que Taylor Otwell s’est dit en 2011.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;À l’époque, &lt;strong&gt;PHP dominait le web&lt;/strong&gt;, mais les devs galéraient avec des frameworks vieillissants comme &lt;strong&gt;CodeIgniter&lt;/strong&gt;.&lt;br&gt;
Pas d’ORM natif, pas de templating moderne, pas de système d’auth intégré… bref, fallait se débrouiller.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Laravel&lt;/strong&gt; est arrivé avec un objectif simple : &lt;strong&gt;rendre le développement PHP agréable&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Plutôt que de coder à l’ancienne avec des fichiers &lt;code&gt;.php&lt;/code&gt; qui s’empilent, Laravel t’offre :&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;✅ Un ORM fluide avec &lt;strong&gt;Eloquent&lt;/strong&gt; (fini les requêtes SQL à la main)&lt;/li&gt;
    &lt;li&gt;✅ Un moteur de templates (&lt;strong&gt;Blade&lt;/strong&gt;, ultra propre)&lt;/li&gt;
    &lt;li&gt;✅ Une &lt;strong&gt;gestion des routes claire&lt;/strong&gt; et intuitive&lt;/li&gt;
    &lt;li&gt;✅ Une &lt;strong&gt;auth prête à l’emploi&lt;/strong&gt; (sessions, tokens, tout y est)&lt;/li&gt;
    &lt;li&gt;✅ Une &lt;strong&gt;syntaxe moderne&lt;/strong&gt; inspirée de Ruby on Rails&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Les problèmes que Laravel a résolus&lt;/h3&gt;

&lt;p&gt;Avant Laravel, développer en PHP, c’était souvent :&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;❌ Se battre avec des &lt;code&gt;include&lt;/code&gt; et des &lt;code&gt;require&lt;/code&gt; partout&lt;/li&gt;
    &lt;li&gt;❌ Répéter du code à chaque projet (gestion des users, des mails…)&lt;/li&gt;
    &lt;li&gt;❌ Naviguer dans des fichiers sans structure claire&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Laravel&lt;/strong&gt; a tout changé avec son approche &lt;strong&gt;opinionated&lt;/strong&gt; :&lt;br&gt;
il impose une structure, mais en échange, tu vas &lt;strong&gt;3 fois plus vite&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aujourd’hui&lt;/strong&gt;, Laravel est &lt;strong&gt;le framework PHP le plus populaire&lt;/strong&gt;.&lt;br&gt;
Il alimente des milliers d’apps en production, et il continue d’évoluer avec des features modernes comme &lt;strong&gt;Livewire&lt;/strong&gt; et &lt;strong&gt;Inertia.js&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Alors oui, certains diront que Laravel est “&lt;em&gt;trop lourd&lt;/em&gt;” ou “&lt;em&gt;trop magique&lt;/em&gt;”.&lt;br&gt;
Mais quand tu veux coder &lt;strong&gt;vite, propre et efficace&lt;/strong&gt;, c’est dur de faire mieux.&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;Et toi, Laravel, tu valides ou t’es team Symfony ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;PS : non, PHP n’est pas mort !! 🧟‍♂️&lt;/em&gt;&lt;/p&gt;</content:encoded></item><item><title>ExpressJs - Le framework Node.js légérement plus rapide ! 🕸️🚀/</title><link>https://papydev.fr/blog/88/</link><guid isPermaLink="true">https://papydev.fr/blog/88/</guid><pubDate>Thu, 20 Feb 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Tu trouves que les frameworks backend sont souvent trop lourds ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Trop de fichiers, trop de config, trop de trucs inutiles alors que t’as juste besoin d’un serveur API rapide ?&lt;/p&gt;

&lt;p&gt;En &lt;strong&gt;2010&lt;/strong&gt;, c’est exactement ce que &lt;strong&gt;TJ Holowaychuk&lt;/strong&gt; s’est dit en regardant les solutions existantes pour &lt;strong&gt;Node.js&lt;/strong&gt;.&lt;br&gt;
À l’époque, pas de framework minimaliste, pas de standard clair pour gérer les routes et les middlewares.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Alors il a créé Express.js.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;L’idée derrière Express&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Faire le taf, et rien de plus.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Plutôt que de t’imposer une structure monolithique, &lt;strong&gt;Express&lt;/strong&gt; te donne juste ce qu’il faut pour gérer :&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;✅ Un &lt;strong&gt;serveur HTTP rapide&lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;✅ Des &lt;strong&gt;routes flexibles&lt;/strong&gt;&lt;/li&gt;
    &lt;li&gt;✅ Un &lt;strong&gt;système de middlewares&lt;/strong&gt; puissant&lt;/li&gt;
    &lt;li&gt;✅ Une &lt;strong&gt;API minimaliste&lt;/strong&gt; pour faire exactement ce que tu veux&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Les problèmes qu’Express a résolus&lt;/h3&gt;

&lt;p&gt;Avant Express, développer un backend en Node.js, c’était souvent :&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;❌ Galérer avec le &lt;strong&gt;module HTTP natif&lt;/strong&gt; ultra basique&lt;/li&gt;
    &lt;li&gt;❌ &lt;strong&gt;Réécrire à chaque projet&lt;/strong&gt; les mêmes handlers pour les routes, les requêtes et les réponses&lt;/li&gt;
    &lt;li&gt;❌ Avoir une structure éclatée et &lt;strong&gt;aucun standard clair&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Express&lt;/strong&gt; est arrivé avec une approche &lt;strong&gt;minimaliste et modulaire&lt;/strong&gt;,&lt;br&gt;
où tu ajoutes seulement ce dont tu as besoin. &lt;strong&gt;Pas de fioritures, pas de boilerplate inutile.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;Pourquoi Express est devenu incontournable&lt;/h3&gt;

&lt;p&gt;Aujourd’hui, c’est &lt;strong&gt;le framework Node.js le plus utilisé&lt;/strong&gt;.&lt;br&gt;
Il est derrière des milliers d’APIs et de services en production,&lt;br&gt;
et même si &lt;strong&gt;NestJS&lt;/strong&gt; ou &lt;strong&gt;Fastify&lt;/strong&gt; gagnent en popularité,&lt;br&gt;
&lt;strong&gt;Express reste une valeur sûre&lt;/strong&gt; pour ceux qui veulent un backend rapide et flexible.&lt;/p&gt;

&lt;p&gt;Évidemment, certains diront qu’il est &lt;em&gt;trop minimaliste&lt;/em&gt; et qu’il faut tout reconstruire à la main.&lt;br&gt;
Mais c’est justement ça, &lt;strong&gt;la force d’Express&lt;/strong&gt; : &lt;strong&gt;c’est toi qui choisis&lt;/strong&gt; ce dont tu as besoin.&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;Et toi, Express, t’adores ou tu préfères quelque chose de plus structuré ?&lt;/strong&gt;&lt;/p&gt;</content:encoded></item><item><title>Astro - Le plus léger/</title><link>https://papydev.fr/blog/89/</link><guid isPermaLink="true">https://papydev.fr/blog/89/</guid><pubDate>Fri, 21 Feb 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Ton site est trop lent ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Trop de JavaScript, trop de dépendances, trop de trucs qui tournent alors que t’affiches juste du contenu statique ?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C’est exactement ce que Fred K. Schott s’est dit en 2021&lt;/strong&gt; en regardant l’écosystème des frameworks frontend.&lt;br&gt;
Pourquoi charger &lt;strong&gt;200ko de JS&lt;/strong&gt; pour afficher du texte et quelques images ?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Alors il a créé Astro.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;L’idée derrière Astro&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Zéro JS par défaut.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Contrairement aux frameworks classiques (&lt;strong&gt;React, Vue, Svelte&lt;/strong&gt;…),&lt;br&gt;
&lt;strong&gt;Astro génère du HTML ultra-optimisé&lt;/strong&gt; et ne charge du JS &lt;strong&gt;que si c’est nécessaire&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;Le résultat ?&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;✅ &lt;strong&gt;Sites plus rapides&lt;/strong&gt; (pas de JS inutile, juste du HTML &amp; CSS)&lt;/li&gt;
  &lt;li&gt;✅ &lt;strong&gt;SEO optimisé&lt;/strong&gt; (pas de rendu bloqué par des scripts)&lt;/li&gt;
  &lt;li&gt;✅ &lt;strong&gt;Moins de complexité&lt;/strong&gt; (pas besoin de gérer une app client-side pour du contenu statique)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Les problèmes qu’Astro corrige&lt;/h3&gt;

&lt;p&gt;Avant Astro, faire un site statique, c’était souvent :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;❌ Utiliser un framework frontend (&lt;strong&gt;Next.js, Nuxt, SvelteKit&lt;/strong&gt;) alors que tu n’as pas besoin de SPA&lt;/li&gt;
  &lt;li&gt;❌ &lt;strong&gt;Charger du JS inutile&lt;/strong&gt; sur chaque page&lt;/li&gt;
  &lt;li&gt;❌ &lt;strong&gt;Galérer avec le SSR ou le SSG&lt;/strong&gt; pour avoir un bon SEO&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Astro&lt;/strong&gt; a réglé ça avec un concept simple : &lt;strong&gt;“Ship Less JavaScript”&lt;/strong&gt;.&lt;br&gt;
Tu écris ton site avec la syntaxe que tu veux (&lt;strong&gt;React, Vue, Svelte, Markdown…&lt;/strong&gt;),&lt;br&gt;
et Astro génère uniquement ce qui est nécessaire.&lt;/p&gt;

&lt;h3&gt;Pourquoi Astro cartonne&lt;/h3&gt;

&lt;p&gt;Aujourd’hui, &lt;strong&gt;Astro est LE framework parfait&lt;/strong&gt; pour les &lt;strong&gt;blogs, les docs&lt;/strong&gt; et les &lt;strong&gt;sites vitrines&lt;/strong&gt;.&lt;br&gt;
Des boîtes comme &lt;strong&gt;Google, IKEA&lt;/strong&gt; ou même &lt;strong&gt;SolidJS&lt;/strong&gt; l’utilisent pour des sites &lt;strong&gt;ultra-performants&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Évidemment, ce n’est pas un framework full-stack.&lt;br&gt;
Mais si tu veux un site &lt;strong&gt;rapide, optimisé&lt;/strong&gt; et &lt;strong&gt;simple à maintenir&lt;/strong&gt;, Astro est un choix solide.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Moi, j’ai fait mon site PapyDev avec, et franchement, ça envoie.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;➡️ &lt;strong&gt;Et toi, t’as déjà testé Astro ou t’es encore sur un Next.js bien chargé en JS ?&lt;/strong&gt;&lt;/p&gt;</content:encoded></item><item><title>JUnit - La naissance du TDD (ou comment un dev en a eu marre des tests foireux)/</title><link>https://papydev.fr/blog/90/</link><guid isPermaLink="true">https://papydev.fr/blog/90/</guid><pubDate>Mon, 24 Feb 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;À la fin des années 90, le développement logiciel, c’était un peu le &lt;strong&gt;Far West&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;On codait, on balançait en prod, et si ça cassait… bah on corrigeait plus tard (ou jamais).&lt;br&gt;
Les tests ? Un mal nécessaire, souvent fait à la main, souvent bâclé.&lt;br&gt;
On développait d’abord, on testait après – si on avait le temps.&lt;/p&gt;

&lt;p&gt;Et puis est arrivé &lt;strong&gt;Kent Beck&lt;/strong&gt;, un gars qui en avait marre de voir du code planter sans prévenir.&lt;br&gt;
Il voulait une approche &lt;strong&gt;propre, fiable, reproductible&lt;/strong&gt;.&lt;br&gt;
Un moyen de s’assurer que chaque morceau de code faisait bien ce qu’il était censé faire, sans avoir à tout vérifier à la main à chaque modif.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Il a alors créé JUnit en 1999 avec Erich Gamma&lt;/strong&gt;.&lt;br&gt;
Un framework de tests unitaires pour Java, inspiré de son boulot sur Smalltalk.&lt;br&gt;
Un truc simple, rapide, et &lt;strong&gt;automatisable&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;Mais surtout, JUnit a posé les bases du TDD (Test-Driven Development) :&lt;/h3&gt;

&lt;ol&gt;
  &lt;li&gt;1️⃣ &lt;strong&gt;Écrire d’abord le test&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;2️⃣ &lt;strong&gt;Faire en sorte que le code passe le test&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;3️⃣ &lt;strong&gt;Refacto et optimisations&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Une vraie révolution.&lt;br&gt;
On ne codait plus à l’aveugle, on s’assurait que chaque brique fonctionnait dès le départ.&lt;/p&gt;

&lt;p&gt;Grâce à &lt;strong&gt;JUnit&lt;/strong&gt;, les tests unitaires sont devenus un standard,&lt;br&gt;
et l’approche &lt;strong&gt;TDD&lt;/strong&gt; s’est imposée.&lt;br&gt;
Aujourd’hui, on retrouve son influence dans tous les &lt;strong&gt;frameworks de tests modernes&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;Moralité ?&lt;/h3&gt;

&lt;p&gt;Le test, ce n’est pas un truc qu’on fait à la fin.&lt;br&gt;
&lt;strong&gt;C’est une partie intégrante du dev.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Et tout ça, c’est grâce à &lt;strong&gt;un gars qui en avait marre de réparer du code cassé à 3h du matin&lt;/strong&gt;.&lt;/p&gt;</content:encoded></item><item><title>Selenium - Comment un testeur en a eu marre de cliquer comme un robot/</title><link>https://papydev.fr/blog/91/</link><guid isPermaLink="true">https://papydev.fr/blog/91/</guid><pubDate>Tue, 25 Feb 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Début des années 2000.&lt;/strong&gt; Le web explose.&lt;br&gt;
Les sites deviennent de plus en plus interactifs, et &lt;strong&gt;tester une application, c’est un enfer&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Imagine :&lt;/em&gt;&lt;br&gt;
Tu développes une app web.&lt;br&gt;
Tu fais une modif.&lt;br&gt;
Tu ouvres ton navigateur, tu cliques sur chaque bouton, tu remplis chaque formulaire, tu vérifies chaque page… &lt;strong&gt;à la main&lt;/strong&gt;.&lt;br&gt;
Et tu recommences après chaque mise à jour.&lt;/p&gt;

&lt;p&gt;Les testeurs passent leurs journées à cliquer comme des machines, et forcément, ils ratent des bugs.&lt;br&gt;
C’est &lt;strong&gt;long, répétitif, chiant&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Jusqu’à ce que &lt;strong&gt;Jason Huggins&lt;/strong&gt;, un ingénieur chez &lt;strong&gt;ThoughtWorks&lt;/strong&gt;, en ait marre.&lt;br&gt;
En &lt;strong&gt;2004&lt;/strong&gt;, il crée &lt;strong&gt;Selenium&lt;/strong&gt;, un outil capable d’&lt;strong&gt;automatiser ces tests fastidieux&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;L’idée ?&lt;/h3&gt;

&lt;p&gt;Un &lt;strong&gt;script&lt;/strong&gt; qui pilote le navigateur à ta place :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;✅ Il clique, remplit des champs, soumet des formulaires&lt;/li&gt;
  &lt;li&gt;✅ Il compare les résultats attendus avec la réalité&lt;/li&gt;
  &lt;li&gt;✅ Il répète tout ça &lt;strong&gt;sans jamais se fatiguer&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Une révolution pour le testing web.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Selenium&lt;/strong&gt; devient vite un &lt;strong&gt;standard&lt;/strong&gt;, adopté par les plus grosses boîtes.&lt;br&gt;
Fini les tests manuels interminables, place aux &lt;strong&gt;tests end-to-end automatisés&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;Mais Selenium avait aussi ses galères :&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;⚠️ &lt;strong&gt;Tests lents&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;⚠️ &lt;strong&gt;Instabilité des scripts&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;⚠️ &lt;strong&gt;Setup parfois compliqué&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;C’est ce qui ouvrira la voie plus tard à des alternatives comme &lt;strong&gt;Cypress&lt;/strong&gt; et &lt;strong&gt;Playwright&lt;/strong&gt;…&lt;br&gt;
mais ça, c’est une autre histoire.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Selenium&lt;/strong&gt; a prouvé qu’on pouvait tester un site web &lt;strong&gt;comme une vraie personne&lt;/strong&gt;…&lt;br&gt;
mais &lt;strong&gt;sans les erreurs humaines&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Et aujourd’hui encore, il reste une &lt;strong&gt;référence pour l’automatisation des tests&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;➡️ &lt;em&gt;Tout ça, parce qu’un mec en a eu marre de faire toujours les mêmes clics.&lt;/em&gt;&lt;/p&gt;</content:encoded></item><item><title>Cucumber - Quand un dev a voulu que tout le monde parle le même langage/</title><link>https://papydev.fr/blog/92/</link><guid isPermaLink="true">https://papydev.fr/blog/92/</guid><pubDate>Wed, 26 Feb 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Les tests, c’est pas juste une histoire de devs.&lt;/p&gt;

&lt;p&gt;Y’a aussi les &lt;strong&gt;Product Owners&lt;/strong&gt;, les &lt;strong&gt;testeurs&lt;/strong&gt;, les &lt;strong&gt;business analysts&lt;/strong&gt;…&lt;br&gt;
Et chacun a sa manière de voir les choses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Résultat ?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;❌ Les devs écrivent des &lt;strong&gt;tests unitaires&lt;/strong&gt;… mais personne d’autre ne les comprend.&lt;/li&gt;
  &lt;li&gt;❌ Les PO rédigent des &lt;strong&gt;specs&lt;/strong&gt;… mais les devs les interprètent différemment.&lt;/li&gt;
  &lt;li&gt;❌ Les testeurs exécutent des &lt;strong&gt;scénarios&lt;/strong&gt;… mais ils ne couvrent pas toujours ce que les PO avaient en tête.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Bref, un bordel de communication.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Et puis, un jour, &lt;strong&gt;Dan North&lt;/strong&gt; (un consultant agile) se demande :&lt;br&gt;
&lt;em&gt;“Et si on écrivait les tests dans un langage que tout le monde comprend ?”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;L’idée paraît simple, mais elle va &lt;strong&gt;changer la façon dont on conçoit les tests fonctionnels&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C’est comme ça que naît Cucumber en 2008.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;✅ Un framework de test basé sur le &lt;strong&gt;BDD (Behavior-Driven Development)&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;✅ Un langage naturel, &lt;strong&gt;Gherkin&lt;/strong&gt;, pour écrire les tests sous forme de scénarios&lt;/li&gt;
  &lt;li&gt;✅ Un format que &lt;strong&gt;tout le monde peut lire et comprendre&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Exemple :&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Scenario: Connexion réussie  
Given un utilisateur sur la page de login  
When il entre un identifiant et un mot de passe valides  
Then il accède à son espace personnel&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Pas besoin d’être dev pour capter ce que ça fait.&lt;br&gt;
Un PO, un testeur, un client… &lt;strong&gt;tout le monde peut relire et valider le test&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cucumber&lt;/strong&gt; n’a pas juste apporté un outil.&lt;br&gt;
Il a &lt;strong&gt;changé la façon dont on collabore&lt;/strong&gt; en intégrant les tests dans la &lt;strong&gt;discussion métier&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Aujourd’hui, le &lt;strong&gt;BDD&lt;/strong&gt; est devenu une &lt;strong&gt;approche clé dans le développement agile&lt;/strong&gt;,&lt;br&gt;
et &lt;strong&gt;Cucumber en est le grand ambassadeur&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;➡️ &lt;em&gt;Tout ça, parce qu’un mec en a eu marre des specs floues et des quiproquos.&lt;/em&gt;&lt;/p&gt;</content:encoded></item><item><title>Jest - Quand Facebook a voulu arrêter de casser le web/</title><link>https://papydev.fr/blog/93/</link><guid isPermaLink="true">https://papydev.fr/blog/93/</guid><pubDate>Thu, 27 Feb 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Début des années 2010.&lt;/strong&gt; Le JavaScript n’est plus juste un petit langage pour faire bouger des boutons.&lt;br&gt;
Il est &lt;strong&gt;partout&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Avec &lt;strong&gt;Node.js&lt;/strong&gt;, &lt;strong&gt;Angular&lt;/strong&gt;, &lt;strong&gt;React&lt;/strong&gt;, les applis deviennent de plus en plus complexes…&lt;br&gt;
mais côté tests, c’est toujours le &lt;strong&gt;Moyen Âge&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;✅ Y’a bien &lt;strong&gt;Mocha, Jasmine, Chai…&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;❌ Mais faut les &lt;strong&gt;configurer à la main&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;❌ Y’a &lt;strong&gt;plein d’outils à assembler&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;❌ Les tests sont parfois &lt;strong&gt;lents et peu fiables&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Chez Facebook, c’est la panique&lt;/strong&gt;.&lt;br&gt;
React explose en popularité, et ils se rendent compte que les tests en JS, &lt;strong&gt;c’est la galère&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Alors en &lt;strong&gt;2011&lt;/strong&gt;, ils sortent &lt;strong&gt;Jest&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;Le but ?&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Un framework de test prêt à l’emploi, simple et rapide.&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;✅ &lt;strong&gt;Zero-config&lt;/strong&gt; : tu l’installes, ça marche&lt;/li&gt;
  &lt;li&gt;✅ &lt;strong&gt;Tests rapides&lt;/strong&gt; avec exécution en parallèle&lt;/li&gt;
  &lt;li&gt;✅ &lt;strong&gt;Snapshots testing&lt;/strong&gt; pour vérifier que l’UI ne change pas par accident&lt;/li&gt;
  &lt;li&gt;✅ &lt;strong&gt;Mocking et spies intégrés&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Et surtout, &lt;strong&gt;Jest devient le standard&lt;/strong&gt; pour tester les applis React.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aujourd’hui&lt;/strong&gt;, il est &lt;strong&gt;partout&lt;/strong&gt; : React, Vue, Angular, Node…&lt;br&gt;
Il a &lt;strong&gt;démocratisé les tests&lt;/strong&gt; dans l’écosystème JS et poussé les devs front à intégrer le testing dans leur workflow.&lt;/p&gt;

&lt;p&gt;➡️ &lt;em&gt;Tout ça, parce que Facebook en avait marre de casser ses propres apps.&lt;/em&gt;&lt;/p&gt;</content:encoded></item><item><title>Cypress - Quand un dev en a eu marre de se battre avec Selenium/</title><link>https://papydev.fr/blog/94/</link><guid isPermaLink="true">https://papydev.fr/blog/94/</guid><pubDate>Fri, 28 Feb 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Selenium&lt;/strong&gt;, c’était une révolution.&lt;br&gt;
Mais soyons honnêtes : &lt;strong&gt;c’était aussi une galère&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Les tests end-to-end étaient :&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;❌ &lt;strong&gt;Lents&lt;/strong&gt; (lancer un test, c’était comme attendre le café couler)&lt;/li&gt;
  &lt;li&gt;❌ &lt;strong&gt;Instables&lt;/strong&gt; (un test qui marche un jour et pète le lendemain, la joie)&lt;/li&gt;
  &lt;li&gt;❌ &lt;strong&gt;Durs à debugger&lt;/strong&gt; (le fameux “ça marche en local mais pas sur le CI”)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Et ça, &lt;strong&gt;Brian Mann&lt;/strong&gt;, un développeur front, en avait marre.&lt;/p&gt;

&lt;p&gt;Il voulait un outil :&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;✅ &lt;strong&gt;Rapide&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;✅ &lt;strong&gt;Stable&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;✅ &lt;strong&gt;Pensé pour les devs front&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;C’est comme ça qu’est né Cypress, en 2015.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;Son gros coup de génie ?&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Ne pas utiliser Selenium.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Au lieu de piloter un navigateur de l’extérieur, &lt;strong&gt;Cypress tourne directement dedans&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;Résultat :&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;⚡ &lt;strong&gt;Exécution ultra-rapide&lt;/strong&gt;&lt;/li&gt;
  &lt;li&gt;🔍 &lt;strong&gt;Debugging facile&lt;/strong&gt; (avec un time-travel pour revoir chaque étape)&lt;/li&gt;
  &lt;li&gt;🔄 &lt;strong&gt;Tests plus fiables&lt;/strong&gt; (moins de flakiness)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cypress&lt;/strong&gt; a changé la donne pour les tests end-to-end.&lt;br&gt;
Il a permis aux développeurs front d’&lt;strong&gt;adopter le testing comme une vraie partie du dev&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Aujourd’hui, c’est devenu &lt;strong&gt;une référence&lt;/strong&gt;… &lt;em&gt;même si Playwright commence à lui faire de l’ombre.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;➡️ &lt;em&gt;Tout ça, parce qu’un mec en avait marre de maudire Selenium à chaque build.&lt;/em&gt;&lt;/p&gt;</content:encoded></item><item><title>Qt - le daron du cross-platform/</title><link>https://papydev.fr/blog/95/</link><guid isPermaLink="true">https://papydev.fr/blog/95/</guid><pubDate>Mon, 03 Mar 2025 07:45:00 GMT</pubDate><content:encoded>&lt;h2&gt;Qt, c’est un peu le daron du cross-platform&lt;/h2&gt;

&lt;p&gt;Aujourd’hui, on parle de &lt;strong&gt;Flutter&lt;/strong&gt;, &lt;strong&gt;React Native&lt;/strong&gt; ou encore &lt;strong&gt;.NET MAUI&lt;/strong&gt;,&lt;br&gt;
mais en &lt;strong&gt;1995&lt;/strong&gt;, le concept de &lt;em&gt;coder une seule fois pour plusieurs plateformes&lt;/em&gt;,&lt;br&gt;
c’était déjà un sujet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Le problème à l’époque ?&lt;/strong&gt;&lt;br&gt;
Développer une appli graphique, c’était l’enfer.&lt;br&gt;
Windows, Mac, Unix… chaque OS avait ses propres API, ses propres contraintes.&lt;br&gt;
Tu voulais faire un logiciel multi-OS ? &lt;strong&gt;Il fallait tout recoder à la main&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Qt&lt;/strong&gt; est né pour résoudre ça.&lt;br&gt;
Un framework &lt;strong&gt;C++&lt;/strong&gt; avec &lt;strong&gt;une seule base de code&lt;/strong&gt;, capable de tourner partout.&lt;/p&gt;

&lt;p&gt;Et ça a pris.&lt;br&gt;
&lt;strong&gt;KDE, Google Earth, Photoshop Elements, VirtualBox…&lt;/strong&gt;&lt;br&gt;
Même &lt;strong&gt;Tesla&lt;/strong&gt; utilise Qt dans ses interfaces embarquées.&lt;/p&gt;

&lt;h3&gt;Mais pourquoi on n’en parle pas plus aujourd’hui ?&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Qt a eu un souci : son modèle économique.&lt;/strong&gt;&lt;br&gt;
Open-source, mais avec des &lt;strong&gt;licences commerciales chères&lt;/strong&gt; pour les entreprises.&lt;br&gt;
Résultat : les &lt;strong&gt;startups&lt;/strong&gt; et les &lt;strong&gt;devs indépendants&lt;/strong&gt; ont préféré des alternatives plus accessibles.&lt;/p&gt;

&lt;p&gt;Et puis, soyons honnêtes… &lt;br&gt;
&lt;strong&gt;C++&lt;/strong&gt; ce n’est pas ce qu’il y a de plus sexy en 2025.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mais techniquement, Qt reste un monstre.&lt;/strong&gt;&lt;br&gt;
Performant, fiable, et toujours utilisé dans des secteurs où la &lt;strong&gt;robustesse prime&lt;/strong&gt; :&lt;br&gt;
médical, automobile, industrie.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Bref, Qt, c’est le cross-platform avant que ce soit cool.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;➡️ Tu connaissais Qt ? Tu l’as déjà utilisé ?&lt;/p&gt;</content:encoded></item><item><title>Cordova - L’ancêtre du web mobile/</title><link>https://papydev.fr/blog/96/</link><guid isPermaLink="true">https://papydev.fr/blog/96/</guid><pubDate>Tue, 04 Mar 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Avant que tout le monde ne s’excite sur &lt;strong&gt;Flutter&lt;/strong&gt; ou &lt;strong&gt;React Native&lt;/strong&gt;,&lt;br&gt;
il y avait une techno qui promettait déjà de faire tourner une app sur iOS et Android avec un seul code : &lt;strong&gt;Cordova&lt;/strong&gt; (ou &lt;em&gt;PhoneGap&lt;/em&gt; pour les anciens).&lt;/p&gt;

&lt;p&gt;On est en &lt;strong&gt;2009&lt;/strong&gt;. L’iPhone a deux ans, Android un an.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Le problème ?&lt;/strong&gt;&lt;br&gt;
Si tu veux une app mobile, t’as deux choix pourris :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;• Soit tu fais du &lt;strong&gt;natif&lt;/strong&gt;… mais ça veut dire apprendre Objective-C et Java (et recruter deux équipes).&lt;/li&gt;
  &lt;li&gt;• Soit tu fais du &lt;strong&gt;web&lt;/strong&gt;… mais ton site ne pourra pas accéder aux fonctionnalités du téléphone.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;C’est là que &lt;strong&gt;Nitobi&lt;/strong&gt; (une boîte canadienne) sort &lt;strong&gt;PhoneGap&lt;/strong&gt;.&lt;br&gt;
L’idée ? &lt;strong&gt;Faire tourner une app mobile comme un site web&lt;/strong&gt;,&lt;br&gt;
mais dans un &lt;strong&gt;conteneur natif&lt;/strong&gt; qui expose les API du téléphone.&lt;/p&gt;

&lt;p&gt;Et ça marche !&lt;br&gt;
Très vite, &lt;strong&gt;Adobe&lt;/strong&gt; rachète la techno (et la renomme &lt;strong&gt;Cordova&lt;/strong&gt; en open-source).&lt;br&gt;
Tout le monde s’y met : &lt;strong&gt;petites boîtes&lt;/strong&gt;, &lt;strong&gt;agences&lt;/strong&gt;, même des &lt;strong&gt;grosses boîtes&lt;/strong&gt; en interne.&lt;/p&gt;

&lt;h3&gt;Sauf qu’il y avait un hic… les perfs.&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Cordova&lt;/strong&gt;, c’était une &lt;strong&gt;WebView déguisée en app mobile&lt;/strong&gt;.&lt;br&gt;
Et à l’époque, les WebViews étaient &lt;strong&gt;lentes&lt;/strong&gt;, &lt;strong&gt;mal optimisées&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Résultat :&lt;/strong&gt; animations saccadées, UX moyenne…&lt;br&gt;
Et dès que les vrais frameworks hybrides sont arrivés (&lt;strong&gt;React Native&lt;/strong&gt;, &lt;strong&gt;Flutter&lt;/strong&gt;), Cordova a pris cher.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aujourd’hui&lt;/strong&gt;, il survit encore, mais souvent dans des projets &lt;em&gt;legacy&lt;/em&gt;.&lt;br&gt;
Son héritage, lui, est partout : sans Cordova, pas d’&lt;strong&gt;Ionic&lt;/strong&gt;, pas de &lt;strong&gt;Capacitor&lt;/strong&gt;, pas d’&lt;strong&gt;Electron&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Bref, Cordova a essuyé les plâtres du web mobile.&lt;/em&gt;&lt;br&gt;
C’était bancal, mais fallait bien un premier pionnier pour ouvrir la voie.&lt;/p&gt;

&lt;p&gt;➡️ Tu as déjà bossé sur une app Cordova ? Tu en gardes quel souvenir ?&lt;/p&gt;</content:encoded></item><item><title>Xamarin - L’illusion du natif en C#/</title><link>https://papydev.fr/blog/97/</link><guid isPermaLink="true">https://papydev.fr/blog/97/</guid><pubDate>Wed, 05 Mar 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;On est en 2011. Le mobile explose, iOS et Android sont en pleine guerre, et chez Microsoft… on mise encore sur Windows Phone (ouch).&lt;/p&gt;

&lt;p&gt;Le problème ? Les devs .NET sont bloqués.&lt;br&gt;
Ils ont passé 10 ans à faire du C# et du .NET, et là, on leur dit qu’il faut apprendre Objective-C et Java pour faire du mobile ? Pas question.&lt;/p&gt;

&lt;p&gt;C’est là qu’arrive Xamarin.&lt;/p&gt;

&lt;p&gt;L’idée est simple :&lt;br&gt;
Coder une app mobile en C# et la compiler en natif pour iOS et Android.&lt;/p&gt;

&lt;p&gt;Et techniquement, c’est une dinguerie.&lt;br&gt;
 • Xamarin.iOS et Xamarin.Android offrent un accès direct aux API natives.&lt;br&gt;
 • Xamarin.Forms permet même de partager l’UI entre les plateformes.&lt;br&gt;
 • Et tout tourne sur Mono, une implémentation open-source de .NET.&lt;/p&gt;

&lt;p&gt;Les boîtes qui misaient sur Microsoft adorent : un seul codebase, une seule équipe, des apps performantes.&lt;/p&gt;

&lt;p&gt;Sauf que…&lt;/p&gt;

&lt;p&gt;Xamarin, c’était aussi :&lt;br&gt;
 • Des builds lentes (surtout sur iOS).&lt;br&gt;
 • Des apps plus lourdes à cause du runtime embarqué.&lt;br&gt;
 • Un écosystème fermé (et quand Microsoft a racheté en 2016, ça a fait peur).&lt;/p&gt;

&lt;p&gt;Et puis, soyons honnêtes… Xamarin.Forms, niveau UX, c’était pas fou.&lt;/p&gt;

&lt;p&gt;En 2022, Microsoft a décidé de tourner la page avec .NET MAUI, une évolution plus moderne et mieux intégrée.&lt;/p&gt;

&lt;p&gt;Mais Xamarin a prouvé qu’on pouvait faire du cross-platform sérieux avec du C#, et ça, c’était une révolution pour l’époque.&lt;/p&gt;

&lt;p&gt;Tu l’as utilisé, toi, Xamarin ? C’était l’amour ou la galère ?&lt;/p&gt;</content:encoded></item><item><title>Ionic - Le framework qui voulait tuer le natif (et qui a presque réussi)/</title><link>https://papydev.fr/blog/98/</link><guid isPermaLink="true">https://papydev.fr/blog/98/</guid><pubDate>Thu, 06 Mar 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;En 2013, le débat “natif vs hybride” est en feu.&lt;/p&gt;

&lt;p&gt;D’un côté, le natif (iOS en Objective-C, Android en Java).&lt;br&gt;
Performance top, UX fluide, mais un coût énorme (2 équipes, 2 codebases).&lt;br&gt;
De l’autre, Cordova, qui permet de faire une app mobile en HTML/CSS/JS… mais avec des perfs aux fraises dès que tu pousses un peu.&lt;/p&gt;

&lt;p&gt;Et là, une boîte du nom de Drifty sort un framework qui va secouer tout ça : Ionic.&lt;/p&gt;

&lt;p&gt;L’idée ?&lt;br&gt;
 • Garder Cordova pour accéder aux API natives.&lt;br&gt;
 • Apporter une vraie UX mobile avec des composants préconçus en CSS et JavaScript.&lt;br&gt;
 • Optimiser les perfs avec AngularJS (et plus tard React, Vue et Stencil).&lt;/p&gt;

&lt;p&gt;Ionic, c’était le framework web qui voulait ressembler à du natif.&lt;/p&gt;

&lt;p&gt;Et ça a cartonné.&lt;br&gt;
 • Les devs web adorent : c’est du HTML/CSS/JS, pas besoin d’apprendre Swift ou Java.&lt;br&gt;
 • Les entreprises kiffent : une seule équipe pour gérer iOS, Android et même le web.&lt;br&gt;
 • Et la communauté explose.&lt;/p&gt;

&lt;p&gt;Mais comme toujours, il y avait un hic…&lt;/p&gt;

&lt;p&gt;Les perfs.&lt;br&gt;
 • Animations moins fluides qu’en natif.&lt;br&gt;
 • Lags sur les vieux smartphones.&lt;br&gt;
 • Expérience parfois inégale selon la plateforme.&lt;/p&gt;

&lt;p&gt;C’est pour ça qu’Ionic a évolué.&lt;br&gt;
Exit Cordova, bonjour Capacitor, un runtime plus moderne.&lt;br&gt;
Exit Angular-only, maintenant React et Vue sont supportés.&lt;br&gt;
Et surtout, Ionic reste une référence pour le dev mobile basé sur le web.&lt;/p&gt;

&lt;p&gt;Alors, est-ce que Ionic a tué le natif ?&lt;br&gt;
Non. Mais il l’a bien secoué.&lt;/p&gt;

&lt;p&gt;Tu en as déjà fait ? C’était le rêve du full web ou la galère des WebViews ?&lt;/p&gt;</content:encoded></item><item><title>.NET MAUI - Le dernier espoir du cross-platform made in Microsoft/</title><link>https://papydev.fr/blog/99/</link><guid isPermaLink="true">https://papydev.fr/blog/99/</guid><pubDate>Fri, 07 Mar 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Xamarin, c’était bien… en théorie.&lt;/p&gt;

&lt;p&gt;Mais en pratique, c’était une usine à gaz :&lt;br&gt;
 • Un runtime Mono embarqué qui alourdissait les apps.&lt;br&gt;
 • Des builds lentes (surtout sur iOS, un enfer).&lt;br&gt;
 • Xamarin.Forms, censé simplifier l’UI cross-platform, mais qui au final donnait une UX médiocre.&lt;/p&gt;

&lt;p&gt;Microsoft a donc décidé de tout refaire proprement avec .NET MAUI, sorti en 2022.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;MAUI, c’est quoi ?&lt;/strong&gt;&lt;br&gt;
 • Une évolution de Xamarin, intégrée directement dans .NET.&lt;br&gt;
 • Un framework qui permet de coder une seule app pour iOS, Android, Windows et macOS.&lt;br&gt;
 • Un modèle plus simple : plus besoin de gérer Xamarin.iOS ou Xamarin.Android, tout passe par MAUI.&lt;/p&gt;

&lt;p&gt;Sur le papier, ça résout plein de problèmes :&lt;br&gt;
 • Meilleure intégration avec .NET 6+.&lt;br&gt;
 • Performances améliorées (moins de surcouche que Xamarin).&lt;br&gt;
 • Une UI plus cohérente avec le MVU (Model-View-Update).&lt;/p&gt;

&lt;p&gt;Mais dans la vraie vie… c’est encore jeune.&lt;br&gt;
 • La doc est incomplète.&lt;br&gt;
 • L’écosystème est encore en construction.&lt;br&gt;
 • Et soyons honnêtes, Microsoft met plus d’énergie sur Blazor et le web que sur MAUI.&lt;/p&gt;

&lt;p&gt;Alors, est-ce que MAUI va réussir là où Xamarin a échoué ?&lt;/p&gt;

&lt;p&gt;Difficile à dire.&lt;br&gt;
Ce qui est sûr, c’est que Microsoft n’a pas dit son dernier mot sur le cross-platform.&lt;/p&gt;

&lt;p&gt;T’as testé MAUI ? Tu penses que ça peut percer ou c’est déjà trop tard ?&lt;/p&gt;</content:encoded></item><item><title>macOS - L’OS qui a rendu l’informatique (presque) cool/</title><link>https://papydev.fr/blog/100/</link><guid isPermaLink="true">https://papydev.fr/blog/100/</guid><pubDate>Mon, 10 Mar 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Début des années 80, l’informatique, c’est un délire d’ingénieurs. Des écrans noirs, des lignes de commande, un truc de nerds.&lt;/p&gt;

&lt;p&gt;Les PC sont puissants, mais inutilisables pour le commun des mortels. Faut taper des commandes cryptiques pour juste ouvrir un fichier.&lt;br&gt;
Y’a pas de souris, pas d’icônes, pas de fenêtres.&lt;/p&gt;

&lt;p&gt;Puis débarque le Macintosh en 1984. Avec Mac OS, Apple impose un truc révolutionnaire pour l’époque :&lt;br&gt;
✅ Une interface graphique – Plus besoin de taper des commandes, tu cliques.&lt;br&gt;
✅ Une souris – Un accessoire inconnu du grand public qui change tout.&lt;br&gt;
✅ Une approche user-friendly – Enfin un ordi que tout le monde peut utiliser.&lt;/p&gt;

&lt;p&gt;Évidemment, Apple n’a pas tout inventé. Xerox avait déjà bossé sur ce concept au Palo Alto Research Center (PARC), mais eux n’ont jamais su quoi en faire.&lt;br&gt;
Jobs, lui, a capté le potentiel et l’a perfectionné.&lt;/p&gt;

&lt;p&gt;Sauf que l’histoire ne s’arrête pas là. Mac OS est fluide, mais ultra-fermé.&lt;br&gt;
Pas de compatibilité avec les autres PC, un hardware hors de prix…&lt;br&gt;
Et qui en profite ? Microsoft.&lt;/p&gt;

&lt;p&gt;Bill Gates pique l’idée, sort Windows en 1985 et… rafle tout le marché.&lt;br&gt;
Le PC devient un standard, Mac un produit de niche.&lt;/p&gt;

&lt;p&gt;Mais malgré tout, Mac OS a changé la donne.&lt;br&gt;
Il a prouvé que l’informatique pouvait être intuitive, qu’on pouvait bosser sur un ordi sans être un geek, et il a posé les bases des interfaces modernes.&lt;/p&gt;

&lt;p&gt;Aujourd’hui, macOS reste un écosystème à part, adoré par les créatifs, haï par ceux qui aiment bidouiller.&lt;br&gt;
Mais quoi qu’on en pense, sans lui, on serait peut-être encore en train de taper du MS-DOS.&lt;/p&gt;

&lt;p&gt;Tu te souviens de la première fois où t’as touché un Mac ? C’était quoi ton ressenti ?&lt;/p&gt;</content:encoded></item><item><title>Windows - L’OS qui a mis un PC dans (presque) chaque maison/</title><link>https://papydev.fr/blog/101/</link><guid isPermaLink="true">https://papydev.fr/blog/101/</guid><pubDate>Tue, 11 Mar 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Les années 80, c’est le bordel en informatique. Les PC sont là, mais personne ne parle la même langue : chaque constructeur a son propre OS, son propre matos, son propre écosystème.&lt;/p&gt;

&lt;p&gt;Les entreprises galèrent. Les particuliers ? Ils ne s’y mettent même pas. Trop cher, trop complexe, trop austère.&lt;/p&gt;

&lt;p&gt;Puis Microsoft débarque avec une promesse simple : un OS universel, qui tourne sur (presque) n’importe quel PC.&lt;/p&gt;

&lt;p&gt;Bon, en vrai, Windows 1.0 en 1985, c’était une catastrophe. Lourd, lent, inutile sans MS-DOS. Mais Microsoft s’accroche. Windows 3.1 (1992) commence à séduire le monde pro, puis arrive Windows 95. Et là, Game Over.&lt;/p&gt;

&lt;p&gt;Windows 95, c’est :&lt;br&gt;
✅ Une interface graphique intuitive – Plus besoin de bidouiller du DOS.&lt;br&gt;
✅ Un menu Démarrer – Une idée toute bête qui devient un standard.&lt;br&gt;
✅ La compatibilité avec des milliers de PC et logiciels – Enfin un OS universel.&lt;/p&gt;

&lt;p&gt;Résultat ? L’informatique explose. Les PC deviennent abordables, accessibles, et surtout standardisés. Windows est partout : à la maison, au bureau, à l’école.&lt;/p&gt;

&lt;p&gt;Pendant ce temps, Apple galère et Linux reste un truc de geeks. Microsoft, lui, rafle 90% du marché et impose un monopole qui durera des décennies.&lt;/p&gt;

&lt;p&gt;Évidemment, tout n’est pas parfait. Windows traîne des casseroles :&lt;br&gt;
⚠️ Les virus – Le prix du succès. Plus t’es utilisé, plus t’es une cible.&lt;br&gt;
⚠️ Les plantages – Qui n’a jamais connu le mythique écran bleu ?&lt;br&gt;
⚠️ Des versions foireuses – Windows Me, Vista, Windows 8… On ne va pas en parler.&lt;/p&gt;

&lt;p&gt;Mais malgré tout, sans Windows, l’informatique n’aurait jamais atteint un tel niveau de démocratisation.&lt;/p&gt;

&lt;p&gt;C’est quoi ton premier souvenir de Windows ? Windows 95 ? XP ? Ou t’as connu la galère avant ?&lt;/p&gt;</content:encoded></item><item><title>linux - L’OS qui a réécrit les règles/</title><link>https://papydev.fr/blog/102/</link><guid isPermaLink="true">https://papydev.fr/blog/102/</guid><pubDate>Wed, 12 Mar 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;1991. Les développeurs galèrent.&lt;/p&gt;

&lt;p&gt;Unix, c’est puissant, mais c’est cher. Windows ? Trop fermé. Les alternatives gratuites sont soit trop limitées, soit sous des licences qui empêchent toute modification.&lt;/p&gt;

&lt;p&gt;Et c’est là qu’un étudiant finlandais de 21 ans, Linus Torvalds, décide de coder son propre noyau. Juste pour le fun.&lt;/p&gt;

&lt;p&gt;Il voulait un OS libre, modifiable par tous, performant et sans les restrictions commerciales des Unix propriétaires. Un truc simple, sans chichi, qui fonctionne sur les PC grand public. Il balance son code sur un forum, invite les devs du monde entier à participer… et sans le savoir, il vient de poser la première pierre de ce qui deviendra Linux.&lt;/p&gt;

&lt;p&gt;Un OS fait par des passionnés, pour des passionnés. Gratuit. Transparent. Évolutif.&lt;/p&gt;

&lt;p&gt;À l’époque, les entreprises voient ça comme un jouet. Sauf que très vite, les sysadmins comprennent l’énorme potentiel du truc :&lt;br&gt;
✅ Stabilité – Fini les serveurs qui plantent tous les trois jours.&lt;br&gt;
✅ Sécurité – Pas de backdoors commerciales, le code est open source.&lt;br&gt;
✅ Flexibilité – Tu veux un OS sur-mesure ? Tu peux tout modifier.&lt;/p&gt;

&lt;p&gt;Résultat ? Dans les années 2000, Linux bouffe littéralement le marché des serveurs. Aujourd’hui, il alimente 90% des supercalculateurs, la majorité des serveurs web, et même ton smartphone (merci Android).&lt;/p&gt;

&lt;p&gt;Pas mal pour un projet étudiant, non ?&lt;/p&gt;

&lt;p&gt;T’as déjà bossé avec Linux ? La première fois, c’était pour quoi ?&lt;/p&gt;</content:encoded></item><item><title>iOS - L’OS qui a mis un ordinateur dans ta poche/</title><link>https://papydev.fr/blog/103/</link><guid isPermaLink="true">https://papydev.fr/blog/103/</guid><pubDate>Thu, 13 Mar 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;2007. Les téléphones, c’est moche.&lt;/p&gt;

&lt;p&gt;T’as un clavier physique, des boutons partout, des OS bricolés avec les pieds (Symbian, Windows Mobile, BlackBerry OS…). L’expérience est atroce. Naviguer sur le web ? Un enfer. Installer une app ? Une galère.&lt;/p&gt;

&lt;p&gt;Et puis, Apple balance l’iPhone.&lt;/p&gt;

&lt;p&gt;Un écran tactile sans stylet. Un OS pensé pour le doigt. Une fluidité jamais vue. Un navigateur web qui fonctionne vraiment.&lt;/p&gt;

&lt;p&gt;Mais surtout : iOS (appelé iPhone OS à l’époque), un OS mobile radicalement différent :&lt;br&gt;
✅ Zéro clavier physique – Tout passe par l’écran, une hérésie à l’époque.&lt;br&gt;
✅ Des gestes naturels – Pinch, swipe, tap… On les utilise encore aujourd’hui.&lt;br&gt;
✅ Une intégration hardware/software parfaite – Tout est optimisé pour l’iPhone.&lt;/p&gt;

&lt;p&gt;Sauf qu’au début, Apple ne voulait même pas d’App Store. Steve Jobs était persuadé que les développeurs devaient se contenter du web. Finalement, sous la pression, Apple ouvre l’App Store en 2008. Explosion totale.&lt;/p&gt;

&lt;p&gt;iOS change tout :&lt;br&gt;
 • Il tue les claviers physiques (RIP BlackBerry).&lt;br&gt;
 • Il impose le modèle fermé (tu joues selon les règles d’Apple ou tu dégages).&lt;br&gt;
 • Il fait de l’App Store une machine à cash (et un jardin ultra-contrôlé).&lt;/p&gt;

&lt;p&gt;Résultat ? Le smartphone devient un ordinateur portable. Tout le monde veut son iPhone. Android se lance en panique. Nokia s’effondre. Microsoft abandonne.&lt;/p&gt;

&lt;p&gt;Mais iOS, c’est aussi la frustration :&lt;br&gt;
⚠️ Ultra-fermé – Pas de sideloading, pas de customisation.&lt;br&gt;
⚠️ Tout passe par Apple – Paiements, apps, même les câbles.&lt;br&gt;
⚠️ Une dépendance au hardware Apple – Tu veux iOS ? Achète un iPhone.&lt;/p&gt;

&lt;p&gt;Aujourd’hui, iOS domine le marché premium et impose ses standards. Son modèle fermé ? Un enfer pour certains, une bénédiction pour d’autres.&lt;/p&gt;

&lt;p&gt;T’en penses quoi ? Tu préfères la fluidité d’iOS ou la flexibilité d’Android ?&lt;/p&gt;</content:encoded></item><item><title>Android - L’OS qui a sauvé Google (et conquis le monde)/</title><link>https://papydev.fr/blog/104/</link><guid isPermaLink="true">https://papydev.fr/blog/104/</guid><pubDate>Fri, 14 Mar 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;2005. Google sent le piège.&lt;/p&gt;

&lt;p&gt;L’iPhone n’existe pas encore, mais les rumeurs disent qu’Apple bosse sur un téléphone révolutionnaire. Microsoft aussi pousse Windows Mobile. Et Google, qui vit de la pub en ligne, réalise un truc : si les téléphones deviennent des mini-ordinateurs, il doit être dessus. Sinon, il est mort.&lt;/p&gt;

&lt;p&gt;Sauf qu’un petit projet du nom d’Android Inc., fondé par Andy Rubin, traîne dans un coin. Un OS pensé au départ… pour des appareils photo numériques (!). Google le rachète en urgence pour 50 millions de dollars, réoriente le projet vers le mobile et prépare une riposte.&lt;/p&gt;

&lt;p&gt;Puis en 2007, Apple sort l’iPhone. Et là, panique totale chez Google.&lt;/p&gt;

&lt;p&gt;Le premier prototype d’Android ressemblait à un BlackBerry avec clavier physique. En quelques mois, ils jettent tout et repartent de zéro pour coller au modèle iPhone : un écran tactile, une navigation fluide, un vrai navigateur web.&lt;/p&gt;

&lt;p&gt;2008, premier téléphone Android : le HTC Dream (ou T-Mobile G1). L’OS est loin d’être parfait, mais il propose quelque chose que l’iPhone refuse :&lt;br&gt;
✅ Un écosystème ouvert – Pas besoin de passer par Apple pour publier une app.&lt;br&gt;
✅ Des téléphones pour tous les budgets – Du bas de gamme au flagship.&lt;br&gt;
✅ Une personnalisation totale – Widgets, ROM custom, tout est modifiable.&lt;/p&gt;

&lt;p&gt;Très vite, les constructeurs comprennent l’intérêt : Android leur permet de rivaliser avec l’iPhone, sans dépendre d’Apple. Samsung, HTC, Sony, Motorola… Tout le monde se jette dessus.&lt;/p&gt;

&lt;p&gt;En quelques années, Android devient l’OS mobile le plus utilisé au monde. Aujourd’hui, il équipe plus de 70% des smartphones.&lt;/p&gt;

&lt;p&gt;Mais Android, c’est aussi des défauts :&lt;br&gt;
⚠️ Fragmentation – Chaque constructeur fait sa sauce, les mises à jour sont un cauchemar.&lt;br&gt;
⚠️ Moins optimisé qu’iOS – Des bugs, des lenteurs sur certains modèles.&lt;br&gt;
⚠️ Un écosystème trop ouvert – Résultat : plus de malware et de failles de sécurité.&lt;/p&gt;

&lt;p&gt;Bref, Android a gagné la guerre du volume, mais iOS reste le roi du premium. Deux visions du mobile, deux philosophies.&lt;/p&gt;

&lt;p&gt;Toi, t’es plutôt Team Android ou Team iPhone ?&lt;/p&gt;</content:encoded></item><item><title>Ada - Le langage qui devait sauver le monde (ou presque)/</title><link>https://papydev.fr/blog/105/</link><guid isPermaLink="true">https://papydev.fr/blog/105/</guid><pubDate>Mon, 17 Mar 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Dans les années 70, l’armée américaine avait un gros problème.&lt;/p&gt;

&lt;p&gt;Elle utilisait des centaines de langages de programmation différents pour piloter ses systèmes. Résultat : c’était le chaos. Chaque programme était un patchwork de technos incompatibles, impossible à maintenir.&lt;/p&gt;

&lt;p&gt;Un missile ? Un langage.&lt;br&gt;
Un radar ? Un autre langage.&lt;br&gt;
Un avion ? Encore un autre.&lt;/p&gt;

&lt;p&gt;Tu veux corriger un bug ? Bonne chance pour comprendre du code écrit il y a 10 ans dans un langage oublié par tous (y compris son créateur).&lt;/p&gt;

&lt;p&gt;C’est là que le DoD (Department of Defense) décide de tout révolutionner : ils veulent un seul et unique langage, structuré, fiable, et adapté aux systèmes critiques. Un langage qui évite les bugs mortels.&lt;/p&gt;

&lt;p&gt;Ils lancent un appel d’offres mondial. Après une compétition féroce, c’est Jean Ichbiah, un Français, qui gagne avec son langage &lt;strong&gt;Ada&lt;/strong&gt;, nommé en hommage à Ada Lovelace.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ada&lt;/strong&gt;, c’est le tank des langages.&lt;br&gt;
Hyper structuré, conçu pour éviter les erreurs, avec une gestion mémoire ultra stricte. Son but : empêcher les conneries avant qu’elles n’arrivent.&lt;/p&gt;

&lt;p&gt;Il a été adopté pour l’aérospatiale, la défense, et tout ce qui ne doit JAMAIS planter. Aujourd’hui encore, il tourne dans des satellites, des avions, et des systèmes critiques.&lt;/p&gt;

&lt;p&gt;Mais Ada n’a jamais conquis le monde. Trop rigide, trop complexe pour le grand public, il a été éclipsé par des langages plus flexibles comme C ou Java.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Moralité :&lt;/em&gt; parfois, être trop parfait, c’est un problème.&lt;/p&gt;

&lt;p&gt;👉 Tu l’as déjà croisé, Ada ? Ou t’es team C/C++ comme tout le monde ?&lt;/p&gt;</content:encoded></item><item><title>Plsql - Quand Oracle a décidé que SQL, c’était pas suffisant/</title><link>https://papydev.fr/blog/106/</link><guid isPermaLink="true">https://papydev.fr/blog/106/</guid><pubDate>Tue, 18 Mar 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;SQL, c’est cool.&lt;/strong&gt;&lt;br&gt;
Tu peux récupérer des données, faire des requêtes, des jointures, des agrégations… bref, t’extrais de l’info.&lt;/p&gt;

&lt;p&gt;Mais dès que tu veux faire du vrai traitement, genre de la logique métier directement dans la base de données… SQL, c’est un peu léger.&lt;/p&gt;

&lt;p&gt;Dans les années 80, Oracle a vu le problème et s’est dit :&lt;br&gt;
&lt;em&gt;“OK, SQL c’est bien, mais et si on lui collait un vrai langage de programmation aux fesses ?”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Et &lt;strong&gt;PL/SQL&lt;/strong&gt; est né.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;L’idée ?&lt;/strong&gt; Ajouter des variables, des boucles, des conditions, des procédures stockées, des triggers… bref, tout ce qu’un dev aime pour automatiser et structurer son code directement dans la base.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pourquoi ?&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;👉 Performance :&lt;/strong&gt; Plutôt que de faire 36 allers-retours entre l’application et la base, tu fais bosser le SGBD directement. Résultat : c’est plus rapide.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;👉 Sécurité :&lt;/strong&gt; Tu peux encapsuler la logique métier dans la base, éviter que n’importe qui balance des requêtes dégueulasses et crame ton intégrité de données.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;👉 Maintenance :&lt;/strong&gt; Plutôt que d’avoir du code SQL disséminé dans l’appli, tu centralises dans des procédures stockées, et tout le monde s’aligne dessus.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Problème ?&lt;/strong&gt;&lt;br&gt;
PL/SQL, c’est Oracle only. Et Oracle, bah… c’est Oracle.&lt;/p&gt;

&lt;p&gt;Tu veux en sortir ? Bonne chance.&lt;br&gt;
Tu veux migrer vers PostgreSQL, MySQL ou SQL Server ? Faudra réécrire une bonne partie de la logique.&lt;/p&gt;

&lt;p&gt;Aujourd’hui, PL/SQL reste un monstre de puissance pour les entreprises qui tournent sur Oracle, mais avec la montée des bases open-source et du cloud, beaucoup cherchent à s’en débarrasser.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Moralité :&lt;/em&gt; Quand tu choisis une techno, pense toujours à comment tu vas en sortir.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👉 T’as déjà dû bosser avec PL/SQL ? Team “puissance et contrôle” ou “fuite à tout prix” ?&lt;/strong&gt;&lt;/p&gt;</content:encoded></item><item><title>delphi - Le langage qui a failli bouffer le monde… et qui refuse de mourir/</title><link>https://papydev.fr/blog/107/</link><guid isPermaLink="true">https://papydev.fr/blog/107/</guid><pubDate>Wed, 19 Mar 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Dans les années 90&lt;/strong&gt;, si tu voulais faire une application desktop, t’avais deux choix :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;👉 &lt;strong&gt;C++&lt;/strong&gt; : Puissant, mais complexe, long à compiler, et pas vraiment friendly.&lt;/li&gt;
  &lt;li&gt;👉 &lt;strong&gt;Visual Basic&lt;/strong&gt; : Simple, rapide, mais limité et pas hyper performant.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Et puis, en 1995, &lt;strong&gt;Borland débarque avec Delphi&lt;/strong&gt;. Et là, c’est la révolution.&lt;/p&gt;

&lt;h3&gt;Pourquoi Delphi a cartonné ?&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;💡 &lt;strong&gt;Un vrai langage puissant (Object Pascal)&lt;/strong&gt;&lt;br&gt;
  Contrairement à VB, Delphi était basé sur Object Pascal, un langage bien structuré, orienté objet, et surtout compilé en natif. Résultat : des apps rapides et stables.&lt;/li&gt;

  &lt;li&gt;🎨 &lt;strong&gt;Un IDE révolutionnaire&lt;/strong&gt;&lt;br&gt;
  C’était du drag &amp; drop avant l’heure : tu posais tes boutons, tes champs de texte, et hop, en quelques clics, t’avais une UI fonctionnelle. À l’époque, c’était magique.&lt;/li&gt;

  &lt;li&gt;🚀 &lt;strong&gt;Une compilation ultra rapide&lt;/strong&gt;&lt;br&gt;
  Les devs C++ passaient des heures à compiler. Delphi ? Quelques secondes.&lt;/li&gt;

  &lt;li&gt;🛠 &lt;strong&gt;Une énorme bibliothèque de composants&lt;/strong&gt;&lt;br&gt;
  Tu voulais une grille de données, un bouton stylé, un éditeur de texte avancé ? Pas besoin de réinventer la roue, tout était déjà prêt.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Pourquoi Delphi a disparu (ou presque) ?&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;😬 &lt;strong&gt;Microsoft et Java sont arrivés&lt;/strong&gt;&lt;br&gt;
  Microsoft a balancé .NET et C#, Java a explosé avec le web… et petit à petit, Delphi a perdu de son attrait.&lt;/li&gt;

  &lt;li&gt;💰 &lt;strong&gt;Borland a fait n’importe quoi&lt;/strong&gt;&lt;br&gt;
  Entre rachats, changements de stratégie, et un marketing douteux, Borland a saboté son propre produit.&lt;/li&gt;

  &lt;li&gt;🔒 &lt;strong&gt;Un écosystème fermé&lt;/strong&gt;&lt;br&gt;
  C’était Delphi only. Contrairement à Java ou C++, pas facile de réutiliser ton code ailleurs.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Et aujourd’hui ?&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Delphi existe toujours&lt;/strong&gt; (sous Embarcadero), et il a encore une communauté de passionnés. Certains systèmes critiques tournent encore dessus, et y’a toujours des devs qui jurent que c’est le meilleur outil jamais créé.&lt;/p&gt;

&lt;p&gt;Mais soyons honnêtes : aujourd’hui, si tu lances un projet en Delphi en 2025, c’est que t’aimes vivre dangereusement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👉 T’as déjà croisé du code Delphi dans un projet ? Team “nostalgie” ou “fuyons” ?&lt;/strong&gt;&lt;/p&gt;</content:encoded></item><item><title>prolog - Le langage où tu ne codes pas, tu réfléchis/</title><link>https://papydev.fr/blog/108/</link><guid isPermaLink="true">https://papydev.fr/blog/108/</guid><pubDate>Thu, 20 Mar 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Si t’as fait un peu d’IA dans tes études&lt;/strong&gt;, t’as forcément croisé &lt;strong&gt;Prolog&lt;/strong&gt;.&lt;br&gt;
Et t’as probablement &lt;em&gt;détesté&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Parce que &lt;strong&gt;Prolog&lt;/strong&gt;, c’est pas un langage comme les autres.&lt;/p&gt;

&lt;h3&gt;Années 70 :&lt;/h3&gt;
&lt;p&gt;Les bases de données explosent, l’IA commence à pointer son nez.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Le problème ?&lt;/strong&gt; Les langages classiques comme FORTRAN, C ou COBOL sont trop procéduraux.&lt;br&gt;
Tu dois leur dire &lt;em&gt;comment&lt;/em&gt; faire les choses, étape par étape.&lt;/p&gt;

&lt;p&gt;Mais en intelligence artificielle et en bases de données complexes, c’est pas l’idéal.&lt;br&gt;
On veut plutôt &lt;strong&gt;décrire ce qu’on veut&lt;/strong&gt; et laisser la machine se débrouiller.&lt;/p&gt;

&lt;p&gt;C’est là qu’en 1972, des chercheurs en logique formelle, &lt;strong&gt;Colmerauer&lt;/strong&gt; et &lt;strong&gt;Kowalski&lt;/strong&gt;, inventent &lt;strong&gt;Prolog&lt;/strong&gt;.&lt;br&gt;
L’idée ? Faire un langage basé sur la &lt;strong&gt;logique mathématique&lt;/strong&gt;, au lieu d’une suite d’instructions classiques.&lt;/p&gt;

&lt;h3&gt;Résultat :&lt;/h3&gt;
&lt;p&gt;Prolog ne fonctionne pas comme les autres langages.&lt;/p&gt;

&lt;p&gt;Tu ne dis pas à la machine quoi faire.&lt;br&gt;
Tu &lt;strong&gt;déclares des faits et des règles&lt;/strong&gt;, et après… tu &lt;em&gt;poses des questions&lt;/em&gt; au programme.&lt;/p&gt;

&lt;p&gt;Exemple :&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;parent(jean, paul).
parent(paul, luc).

grandparent(X, Y) :- parent(X, Z), parent(Z, Y).&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Et après, tu peux demander : &lt;em&gt;“Jean est-il le grand-parent de Luc ?”&lt;/em&gt;&lt;br&gt;
Et Prolog te répond &lt;strong&gt;“Oui.”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;C’est un &lt;strong&gt;langage déclaratif&lt;/strong&gt;, pas impératif.&lt;br&gt;
Tu &lt;strong&gt;décris le problème&lt;/strong&gt;, Prolog &lt;strong&gt;trouve la solution&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;Pourquoi Prolog a cartonné (pendant un temps) ?&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;✅ Idéal pour l’&lt;strong&gt;intelligence artificielle&lt;/strong&gt; et les &lt;strong&gt;bases de connaissances&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;✅ Parfait pour manipuler des relations complexes &lt;em&gt;sans écrire des tonnes de code&lt;/em&gt;.&lt;/li&gt;
  &lt;li&gt;✅ Le Japon y a cru à mort : les “ordinateurs de cinquième génération” devaient reposer sur Prolog (spoiler : ça n’a pas marché).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Pourquoi Prolog est tombé dans l’oubli ?&lt;/h3&gt;
&lt;ul&gt;
  &lt;li&gt;❌ C’est pas naturel pour les devs classiques (Python/C/Java → 💥 cerveau).&lt;/li&gt;
  &lt;li&gt;❌ Lent sur de &lt;strong&gt;gros volumes de données&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;❌ Difficile à &lt;strong&gt;maintenir&lt;/strong&gt; sur des projets complexes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Et aujourd’hui ?&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Prolog survit dans quelques niches&lt;/strong&gt; :&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;🧠 Le raisonnement logique en IA&lt;/li&gt;
  &lt;li&gt;🗣 Analyse de langage naturel&lt;/li&gt;
  &lt;li&gt;🔒 Vérification formelle de programmes&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Mais soyons honnêtes&lt;/strong&gt;, si quelqu’un te propose un projet en Prolog en 2025…&lt;br&gt;
👉 &lt;strong&gt;Cours.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👉 Et toi, t’as déjà croisé du Prolog ? T’as compris ou t’as pleuré ? 😅&lt;/strong&gt;&lt;/p&gt;</content:encoded></item><item><title>smalltalk - Le langage qui a tout inventé (mais que personne n’a utilisé)/</title><link>https://papydev.fr/blog/109/</link><guid isPermaLink="true">https://papydev.fr/blog/109/</guid><pubDate>Fri, 21 Mar 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Si je te dis programmation orientée objet, tu penses à quoi ?&lt;/strong&gt;&lt;br&gt;
Java ? C++ ? Python ?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Raté.&lt;/strong&gt; Tout ça vient de &lt;strong&gt;Smalltalk&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;Années 70 : Xerox invente le futur (et l’oublie dans un tiroir)&lt;/h3&gt;

&lt;p&gt;À l’époque, la programmation, c’est encore ultra procédural.&lt;br&gt;
Pas de classes, pas d’objets, pas d’héritage.&lt;br&gt;
Juste des lignes de code qui s’enchaînent.&lt;/p&gt;

&lt;p&gt;Et là, au &lt;strong&gt;Xerox PARC&lt;/strong&gt;, &lt;strong&gt;Alan Kay&lt;/strong&gt; et son équipe décident de changer la donne.&lt;br&gt;
Ils inventent &lt;strong&gt;Smalltalk&lt;/strong&gt;, un langage où &lt;strong&gt;tout est objet&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;🟢 Un bouton ? Un objet.&lt;/li&gt;
  &lt;li&gt;🟢 Une fenêtre ? Un objet.&lt;/li&gt;
  &lt;li&gt;🟢 Une chaîne de caractères ? Un objet.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Tout interagit via des messages.&lt;/strong&gt;&lt;br&gt;
T’écris pas “fais cette action”, tu &lt;em&gt;envoies un message&lt;/em&gt; à un objet, et il décide quoi faire.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Ça paraît normal aujourd’hui.&lt;br&gt;
Mais à l’époque, c’était de la science-fiction.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;Ce que Smalltalk a inventé 💡&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;✅ &lt;strong&gt;L’orienté objet&lt;/strong&gt; tel qu’on le connaît aujourd’hui.&lt;br&gt;
  Sans Smalltalk, pas de Java, pas de Python, pas de Ruby.&lt;/li&gt;

  &lt;li&gt;✅ &lt;strong&gt;L’interface graphique moderne.&lt;/strong&gt;&lt;br&gt;
  Les fenêtres, les icônes, les menus déroulants, la souris… tout ça est né dans l’environnement Smalltalk.&lt;/li&gt;

  &lt;li&gt;✅ &lt;strong&gt;L’IDE interactif.&lt;/strong&gt;&lt;br&gt;
  Tu pouvais modifier ton programme en direct, sans tout recompiler. Une révolution.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Pourquoi Smalltalk a échoué ? 🤔&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;❌ &lt;strong&gt;Xerox n’a rien compris.&lt;/strong&gt;&lt;br&gt;
  Comme avec l’interface graphique (piquée par Apple et Microsoft), ils ont inventé le futur, mais sans le vendre correctement.&lt;/li&gt;

  &lt;li&gt;❌ &lt;strong&gt;Trop en avance sur son temps.&lt;/strong&gt;&lt;br&gt;
  Dans les années 80, les machines n’étaient pas assez puissantes pour supporter un langage aussi dynamique.&lt;/li&gt;

  &lt;li&gt;❌ &lt;strong&gt;Un écosystème fermé.&lt;/strong&gt;&lt;br&gt;
  Alors que C et UNIX dominaient, Smalltalk restait dans son coin.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Et aujourd’hui ?&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Smalltalk&lt;/strong&gt;, c’est un peu le &lt;em&gt;grand-père oublié&lt;/em&gt;.&lt;br&gt;
Son influence est partout, mais lui-même est resté une niche.&lt;/p&gt;

&lt;p&gt;Quelques passionnés l’utilisent encore, et certains concepts (comme les environnements interactifs) reviennent avec Python ou Lisp.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Mais sinon, Smalltalk a surtout servi de plan pour l’avenir, sans jamais vraiment exister dans le présent.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;👉 T’en avais déjà entendu parler ? Ou tu pensais que l’objet était né avec Java ? 😏&lt;/strong&gt;&lt;/p&gt;</content:encoded></item><item><title>ActionScript - Le langage qui a rendu le web vivant… et que Steve Jobs a enterré/</title><link>https://papydev.fr/blog/110/</link><guid isPermaLink="true">https://papydev.fr/blog/110/</guid><pubDate>Mon, 24 Mar 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Avant React, avant Vue, avant même que JavaScript devienne un truc sérieux… le web, c’était du texte et des images statiques.&lt;br&gt;On cliquait, ça rechargeait toute la page. Pas d’animations, pas d’interactions riches. Juste du HTML qui suait la frustration.&lt;/p&gt;&lt;p&gt;Et puis y’a eu Flash.&lt;br&gt;Et avec lui, ActionScript.&lt;/p&gt;&lt;p&gt;C’était la claque.&lt;/p&gt;&lt;p&gt;Tu pouvais animer, jouer des sons, déplacer des objets en temps réel, faire des jeux dans le navigateur, intégrer de la vidéo, créer des interfaces fluides, des menus stylés…&lt;br&gt;Le web devenait enfin vivant.&lt;/p&gt;&lt;p&gt;Moi je me souviens de sites en Flash qui te faisaient dire “mais comment ils ont fait ça ?”.&lt;br&gt;On était loin du &amp;lt;marquee&amp;gt; dégueu.&lt;br&gt;Avec ActionScript, t’avais une vraie logique de programmation, des événements, de l’interaction, des timelines.&lt;/p&gt;&lt;p&gt;Et pendant un moment, c’était le futur.&lt;br&gt;Même YouTube tournait en Flash.&lt;br&gt;Tous les jeux de navigateur qui cartonnaient (genre Line Rider, les mini-jeux sur jeux.fr…) c’était du ActionScript.&lt;/p&gt;&lt;p&gt;Mais voilà. Le truc avait un talon d’Achille : la performance et la sécu.&lt;br&gt;Des failles partout. Des CPU qui chauffaient pour rien.&lt;br&gt;Et surtout, Flash ne marchait pas sur mobile.&lt;/p&gt;&lt;p&gt;Puis arrive Steve Jobs.&lt;br&gt;Il dit non à Flash sur l’iPhone.&lt;br&gt;Et ça, ça a été la balle dans la nuque.&lt;/p&gt;&lt;p&gt;En quelques années, Flash est mort.&lt;br&gt;Adobe l’a officiellement débranché en 2020.&lt;br&gt;Et avec lui, ActionScript a disparu des radars.&lt;/p&gt;&lt;p&gt;Mais soyons clairs : sans lui, le web serait pas ce qu’il est aujourd’hui.&lt;br&gt;Il a forcé tout le monde à voir plus loin que du HTML figé.&lt;br&gt;Il a mis la pression à JavaScript.&lt;br&gt;Et il a donné envie à toute une génération de devs de créer, pas juste “coder”.&lt;/p&gt;&lt;p&gt;C’était pas un langage parfait.&lt;br&gt;Mais c’était un langage vivant.&lt;/p&gt;&lt;p&gt;👉 T’en as fait toi, de l’ActionScript ? T’as animé des boutons ou t’as juste souffert des timelines ?&lt;/p&gt;</content:encoded></item><item><title>Pascal -  Le langage qui t’apprenait à coder… à coups de règles strictes et d’erreurs de compilation/</title><link>https://papydev.fr/blog/111/</link><guid isPermaLink="true">https://papydev.fr/blog/111/</guid><pubDate>Tue, 25 Mar 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Avant qu’on balance du JS freestyle dans le navigateur, avant que Python te laisse tout faire comme un ado en pleine crise d’identité, y’avait Pascal.&lt;/p&gt;&lt;p&gt;Un langage carré. Structuré. Presque trop propre.&lt;/p&gt;&lt;p&gt;Et surtout, un langage fait pour t’apprendre à coder.&lt;/p&gt;&lt;p&gt;C’est Niklaus Wirth qui l’a pondu dans les années 70, dans une époque où on se disait que si on formait des devs à penser correctement, on aurait moins de bugs, moins de code spaghetti, et plus de rigueur dans les projets.&lt;/p&gt;&lt;p&gt;Résultat ?&lt;br&gt;Pascal, c’est la version militaire de l’apprentissage du code.&lt;/p&gt;&lt;p&gt;Tu déclares toutes tes variables avant.&lt;br&gt;Tu structures tout.&lt;br&gt;Tu respectes les types, sinon ça compile pas.&lt;/p&gt;&lt;p&gt;Et pour beaucoup, c’était le premier langage.&lt;br&gt;Tu faisais ton petit begin... end.&lt;br&gt;Tu écrivais writeln(&apos;Hello World&apos;);&lt;br&gt;Et t’étais tout fier parce que t’avais compris ce que c’était qu’un bloc, une condition, une boucle.&lt;/p&gt;&lt;p&gt;Mais rapidement, tu sentais que t’étais dans une cage.&lt;br&gt;Pascal t’apprend à bien écrire, mais il t’empêche de t’amuser.&lt;/p&gt;&lt;p&gt;Alors quand t’as touché à C ou à un langage plus permissif après, t’as eu cette sensation bizarre :&lt;br&gt;La liberté.&lt;br&gt;Mais aussi… le bordel.&lt;/p&gt;&lt;p&gt;Pascal, c’est comme ces vieux profs sévères qui t’apprennent les bases à coups de règles rigides et de zéro tolérance à l’erreur.&lt;br&gt;Tu les détestes à l’époque, mais tu réalises plus tard qu’ils t’ont bien formé.&lt;/p&gt;&lt;p&gt;Et même s’il est plus trop utilisé aujourd’hui, son héritage est partout.&lt;br&gt;Il a influencé Delphi. Il a posé les bases de la programmation structurée.&lt;br&gt;Et il a formé des millions de devs à penser avant d’écrire.&lt;/p&gt;&lt;p&gt;👉 Toi aussi t’as commencé avec Pascal ? Tu l’as aimé ou t’en gardes des séquelles ?&lt;/p&gt;
</content:encoded></item><item><title>Erlang - Le langage qui te dit “ça va planter, et alors ?”/</title><link>https://papydev.fr/blog/112/</link><guid isPermaLink="true">https://papydev.fr/blog/112/</guid><pubDate>Wed, 26 Mar 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;La première fois que tu touches à Erlang, tu te dis :&lt;br&gt;“OK, c’est moche, bizarre, et y’a pas de boucles. Je fais quoi avec ça ?”&lt;/p&gt;&lt;p&gt;Et puis tu creuses.&lt;br&gt;Et là tu captes un truc : ce langage a été conçu pour échouer.&lt;/p&gt;&lt;p&gt;Pas dans le sens rater.&lt;br&gt;Dans le sens assumer que tout va péter un jour.&lt;/p&gt;&lt;p&gt;C’est Ericsson qui l’a créé dans les années 80.&lt;br&gt;Ils devaient gérer des millions d’appels téléphoniques, des antennes relais, des systèmes qui doivent rester allumés H24.&lt;/p&gt;&lt;p&gt;Et ils se sont dit : “Plutôt que d’essayer de faire du code qui ne plante jamais…&lt;br&gt;On va faire du code qui plante bien.”&lt;/p&gt;&lt;p&gt;C’est là que naît le “let it crash”.&lt;br&gt;Tu ne gères pas les erreurs comme dans les autres langages.&lt;br&gt;Tu laisses ton process mourir, et un autre le redémarre proprement, sans drama.&lt;/p&gt;&lt;p&gt;Chaque process est isolé. Pas de partage d’état.&lt;br&gt;Tu veux bosser en parallèle ? Tu spawnes un million de petits workers, chacun dans sa bulle.&lt;br&gt;Comme des microservices avant l’heure.&lt;/p&gt;&lt;p&gt;Résultat : t’as un système résilient.&lt;br&gt;Tu peux tout crasher sauf le superviseur, et ton appli continue de tourner.&lt;/p&gt;&lt;p&gt;C’est pour ça que WhatsApp l’a utilisé.&lt;br&gt;Des millions de users, sur une équipe dev minuscule.&lt;br&gt;Pas de scaling horizontal compliqué, pas de kafka, pas de microservices dans tous les sens. Juste du Erlang bien pensé, et ça tient.&lt;/p&gt;&lt;p&gt;Mais voilà.&lt;br&gt;C’est pas sexy.&lt;br&gt;La syntaxe pique les yeux.&lt;br&gt;Et quand t’en parles en soirée dev, tu passes pour un moine Shaolin chelou qui médite sur la tolérance aux pannes.&lt;/p&gt;&lt;p&gt;Et pourtant, ce langage t’apprend un truc essentiel :&lt;br&gt;Accepte que tout va planter un jour. Prévois-le. Rends ça propre.&lt;/p&gt;&lt;p&gt;👉 Tu l’as déjà croisé Erlang ? Ou t’as juste vu passer Elixir sans comprendre d’où ça venait ?&lt;/p&gt;
</content:encoded></item><item><title>Haskell - Le langage qui te demande de tout désapprendre pour (peut-être) tout comprendre/</title><link>https://papydev.fr/blog/113/</link><guid isPermaLink="true">https://papydev.fr/blog/113/</guid><pubDate>Thu, 27 Mar 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Haskell, c’est pas un langage.&lt;br&gt;C’est une épreuve initiatique.&lt;/p&gt;&lt;p&gt;Tu rentres dedans comme on entre dans un monastère.&lt;br&gt;Avec humilité, en te disant que tu vas apprendre à coder “mieux”.&lt;br&gt;Et tu ressors, des semaines plus tard, pas forcément plus productif…&lt;br&gt;Mais transformé.&lt;/p&gt;&lt;p&gt;Créé dans les années 90 par une bande d’universitaires, Haskell avait un but clair :&lt;br&gt;“Et si on arrêtait les compromis ?”&lt;br&gt;Pas de bidouilles. Pas d’effets de bord. Pas de magie noire.&lt;/p&gt;&lt;p&gt;Tout est pur.&lt;br&gt;Tu veux modifier une variable ?&lt;br&gt;Tu peux pas.&lt;br&gt;Tu veux faire un if sans else ?&lt;br&gt;Tu peux pas.&lt;br&gt;Tu veux faire une boucle classique ?&lt;br&gt;Non plus.&lt;/p&gt;&lt;p&gt;Ici, tout est fonction, et chaque fonction retourne quelque chose, sans jamais péter l’état du monde.&lt;br&gt;Et là où les autres langages te disent “ça marchera peut-être”, Haskell te dit “si ça compile, ça marche”.&lt;/p&gt;&lt;p&gt;Mais pour que ça compile…&lt;br&gt;Bonne chance.&lt;/p&gt;&lt;p&gt;Tu passes plus de temps à comprendre le système de types qu’à écrire du code.&lt;br&gt;Tu fais face à des concepts obscurs : curryfication, monades, functors, types algébriques.&lt;br&gt;Et le compilateur te parle comme un prof de maths blasé qui t’explique que t’as encore tout faux.&lt;/p&gt;&lt;p&gt;Mais quand tu comprends…&lt;br&gt;Tu te rends compte que tu viens de toucher à une forme de programmation absolue.&lt;br&gt;Tu vois les limites de ton propre raisonnement.&lt;br&gt;Tu comprends la puissance de la pureté.&lt;br&gt;Et tu chiales quand tu reviens sur du JavaScript.&lt;/p&gt;&lt;p&gt;Aujourd’hui, Haskell reste une niche.&lt;br&gt;Mais une niche qui inspire.&lt;br&gt;Scala, Rust, F#, Elm, même TypeScript : tous ont piqué des idées à Haskell.&lt;/p&gt;&lt;p&gt;C’est pas un langage “productif” au sens industriel du terme.&lt;br&gt;Mais c’est un langage qui t’élève.&lt;br&gt;Un langage pour apprendre à penser autrement.&lt;/p&gt;&lt;p&gt;👉 T’as déjà osé Haskell ? T’as tenu combien de temps avant de googler “c’est quoi une monade” ?&lt;/p&gt;
</content:encoded></item><item><title>Bash - Le langage qui pardonne rien… mais qui te sauve quand tout part en vrille/</title><link>https://papydev.fr/blog/114/</link><guid isPermaLink="true">https://papydev.fr/blog/114/</guid><pubDate>Fri, 28 Mar 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;On peut dire ce qu’on veut, mais à la fin, quand y’a plus rien qui marche…&lt;br&gt;Quand t’as plus d’UI, plus d’accès, plus de monitoring…&lt;br&gt;Il te reste le terminal.&lt;/p&gt;&lt;p&gt;Et dans ce terminal, y’a Bash.&lt;/p&gt;&lt;p&gt;Pas un “langage” comme les autres.&lt;br&gt;Pas de classe, pas de typage, pas de framework à la con.&lt;br&gt;Juste toi, ton clavier, et une machine qui t’obéit à la lettre — ou te détruit si tu trembles.&lt;/p&gt;&lt;p&gt;C’est brut.&lt;br&gt;Minimal.&lt;br&gt;Ancien.&lt;/p&gt;&lt;p&gt;Et pourtant, tout tourne là-dessus.&lt;br&gt;Les scripts de déploiement ? Bash.&lt;br&gt;Les installateurs de paquets ? Bash.&lt;br&gt;Les CI/CD en mode legacy crado ? Bash.&lt;br&gt;Les mecs qui récupèrent une prod dans l’urgence ? Bash. Toujours.&lt;/p&gt;&lt;p&gt;Mais attention…&lt;br&gt;C’est un langage qui ne prévient pas.&lt;br&gt;T’oublies une quote, tu fais un rm -rf mal placé, tu rediriges la sortie vers la mauvaise variable…&lt;br&gt;Et t’as transformé un serveur de prod en grille-pain.&lt;/p&gt;&lt;p&gt;Tu crois que t’as fait un truc propre, et là, t’as cette sueur froide :&lt;br&gt;“Pourquoi y’a plus rien dans /etc ?”&lt;/p&gt;&lt;p&gt;Mais bizarrement, c’est aussi un langage qui t’apprend le respect.&lt;br&gt;Tu fais attention.&lt;br&gt;Tu lis deux fois ce que t’écris.&lt;br&gt;Tu testes dans un dossier temporaire avant de lancer en prod.&lt;br&gt;Et tu comprends vite qu’un set -e ou un #!/bin/bash -x peut te sauver la vie.&lt;/p&gt;&lt;p&gt;Bash, c’est pas beau.&lt;br&gt;C’est pas moderne.&lt;br&gt;C’est pas fait pour faire des applis ou des API.&lt;/p&gt;&lt;p&gt;Mais c’est la base.&lt;br&gt;C’est l’outil du dernier recours.&lt;br&gt;Et c’est souvent lui qui a le dernier mot.&lt;/p&gt;&lt;p&gt;👉 Tu l’utilises encore tous les jours ou t’as fui vers des scripts Node/TS qui font des spawn() pour faire la même chose ?&lt;/p&gt;
</content:encoded></item><item><title>Display PostScript - Le rendu graphique WYSIWYG/</title><link>https://papydev.fr/blog/115/</link><guid isPermaLink="true">https://papydev.fr/blog/115/</guid><pubDate>Mon, 31 Mar 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Tu t’es déjà demandé pourquoi t’arrivais pas à imprimer un document exactement comme tu le voyais à l’écran ?&lt;/p&gt;&lt;p&gt;Avant, c’était pas du tout évident.&lt;/p&gt;&lt;p&gt;Un affichage d’un côté.&lt;br&gt;Une impression de l’autre.&lt;br&gt;Deux mondes séparés, qui parlaient pas la même langue.&lt;/p&gt;&lt;p&gt;Et c’est là qu’arrive Display PostScript, ce petit bijou trop souvent oublié.&lt;/p&gt;&lt;p&gt;On est à la fin des années 80.&lt;br&gt;Adobe a déjà posé les bases avec PostScript : un langage de description de page, ultra précis, pour piloter les imprimantes laser.&lt;br&gt;Mais à l’écran ? Nada. Chaque OS faisait son petit tambour dans son coin, avec des APIs maisons, pas de standard, pas de preview fidèle, et beaucoup de frustration.&lt;/p&gt;&lt;p&gt;C’est NeXT (oui, la boîte de Steve Jobs après Apple) qui va changer le game.&lt;br&gt;Ils veulent un OS élégant, moderne, orienté développeur, mais surtout avec un rendu graphique WYSIWYG : What You See Is What You Get.&lt;/p&gt;&lt;p&gt;Ils prennent donc PostScript, et l’adaptent pour l’écran :&lt;br&gt;Display PostScript était né.&lt;/p&gt;&lt;p&gt;Pour la première fois, ce que tu dessinais à l’écran, c’était exactement ce qui sortait de l’imprimante.&lt;br&gt;Même moteur, même langage, même qualité vectorielle.&lt;br&gt;Tu pouvais zoomer, transformer, animer des éléments graphiques avec une précision de malade — dans les années 90 !&lt;/p&gt;&lt;p&gt;C’était lourd, pas toujours rapide, mais tellement en avance sur son temps.&lt;br&gt;Une vraie vision d’ingé.&lt;/p&gt;&lt;p&gt;Et guess what ?&lt;br&gt;Quand Apple rachète NeXT pour créer macOS, c’est cette vision graphique qui va poser les bases de Quartz 2D.&lt;br&gt;Aujourd’hui encore, ton PDF, ton écran Retina, ton antialiasing clean ? C’est l’héritage direct de ça.&lt;/p&gt;&lt;p&gt;Comme souvent dans l’histoire de l’informatique, c’est une frustration de dev qui déclenche une révolution.&lt;br&gt;Et ça me parle.&lt;/p&gt;&lt;p&gt;Toi aussi t’as eu ce moment où tu t’es dit “pourquoi ça marche pas comme ça devrait” ?&lt;br&gt;T’as déjà eu envie de recoder tout un bout de stack juste pour pas avoir à subir une limitation débile ?&lt;/p&gt;
</content:encoded></item><item><title>OpenGL - Le moteur graphique qui parle directement au GPU/</title><link>https://papydev.fr/blog/116/</link><guid isPermaLink="true">https://papydev.fr/blog/116/</guid><pubDate>Tue, 01 Apr 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Tu sais ce qui m’a toujours fasciné avec OpenGL ?&lt;br&gt;C’est que c’est pas juste une API.&lt;br&gt;C’est une philosophie du rendu.&lt;/p&gt;&lt;p&gt;Retour fin des années 80.&lt;br&gt;Les cartes graphiques font leur vie, chacun dans son coin.&lt;br&gt;T’as Silicon Graphics qui cartonne dans le monde pro : modélisation 3D, simulation, visualisation scientifique.&lt;br&gt;Mais chaque constructeur a son propre SDK, ses propres libs, ses propres façons de faire…&lt;/p&gt;&lt;p&gt;Bref : le foutoir.&lt;br&gt;Impossible pour un dev de faire un soft 3D qui tourne partout.&lt;br&gt;Et encore moins pour l’industrie de standardiser un pipeline.&lt;/p&gt;&lt;p&gt;C’est là que débarque OpenGL.&lt;/p&gt;&lt;p&gt;À la base, c’était pas open du tout hein 😅&lt;br&gt;C’est SGI qui l’a pondu pour unifier ses technos internes (IRIS GL), et filer un standard aux devs.&lt;br&gt;Un truc simple, cross-platform, bas niveau, qui parle directement au GPU mais avec une API C propre.&lt;/p&gt;&lt;p&gt;Tu veux dessiner un triangle ? Tu peux.&lt;br&gt;Tu veux faire du rendu temps réel ? Tu peux.&lt;br&gt;Tu veux juste un cube qui tourne ? Tu peux aussi.&lt;br&gt;Pas de bullshit, pas de framework qui te tient la main.&lt;br&gt;Juste toi, ton buffer, et ta matrice de projection.&lt;/p&gt;&lt;p&gt;Mais surtout : le même code pouvait tourner partout.&lt;br&gt;Windows, Mac, Linux, Solaris…&lt;br&gt;Avec la même logique, les mêmes appels, la même magie.&lt;/p&gt;&lt;p&gt;Et pendant 20 ans, OpenGL a tenu la baraque.&lt;br&gt;Dans les jeux.&lt;br&gt;Les softs de CAD.&lt;br&gt;Les simulateurs d’avion.&lt;br&gt;Même dans ton navigateur (WebGL), même sur ton tel à une époque.&lt;/p&gt;&lt;p&gt;Alors ouais, aujourd’hui on a Vulkan, Metal, DirectX 12.&lt;br&gt;Plus proches du matos, plus “performants”, plus verbeux aussi (coucou 1200 lignes pour afficher un triangle).&lt;/p&gt;&lt;p&gt;Mais y’a un truc presque poétique dans OpenGL.&lt;br&gt;C’est pas juste du rendu.&lt;br&gt;C’est une époque où un dev pouvait, seul, coder un moteur 3D from scratch, et comprendre chaque étape du pipeline.&lt;br&gt;C’était le plaisir brut de faire apparaître quelque chose sur l’écran.&lt;br&gt;Sans middleware.&lt;br&gt;Sans shader graph.&lt;br&gt;Juste toi, et la lumière dans les vertex.&lt;/p&gt;&lt;p&gt;Tu l’as connu toi aussi ce frisson quand ton premier triangle a tourné ?&lt;br&gt;Ou ce moment où t’as compris ce que faisait vraiment une matrice de modèle-vue ?&lt;/p&gt;
</content:encoded></item><item><title>DirectX - Le vilain petit canard devenu king/</title><link>https://papydev.fr/blog/117/</link><guid isPermaLink="true">https://papydev.fr/blog/117/</guid><pubDate>Wed, 02 Apr 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;DirectX, c’est un peu le vilain petit canard devenu king.&lt;br&gt;À ses débuts, tout le monde le détestait…&lt;br&gt;Aujourd’hui, on l’utilise sans trop réfléchir.&lt;/p&gt;&lt;p&gt;Flashback : début des années 90.&lt;/p&gt;&lt;p&gt;Le PC c’est pas encore une machine de gamer.&lt;br&gt;C’est moche, c’est lent, ça galère à afficher 30 sprites qui bougent.&lt;br&gt;Et surtout : chaque constructeur a ses drivers, ses APIs.&lt;br&gt;Tu veux faire un jeu ?&lt;br&gt;T’écris 10 versions de ton moteur pour 10 cartes différentes.&lt;br&gt;Bienvenue en enfer.&lt;/p&gt;&lt;p&gt;Et là, Microsoft débarque avec DirectX.&lt;br&gt;Un couteau suisse pour accéder au hardware sans se battre avec les specs constructeurs.&lt;/p&gt;&lt;p&gt;DirectDraw, DirectSound, DirectInput…&lt;br&gt;Un truc un peu moche, un peu verbeux, mais qui fonctionne.&lt;br&gt;Et qui standardise tout.&lt;/p&gt;&lt;p&gt;L’irritant que ça résout ?&lt;br&gt;L’absence d’abstraction.&lt;br&gt;Le fait que ton code tournait nickel chez toi… et crashait chez ton pote avec une carte différente.&lt;br&gt;DirectX promettait un pont entre le dev et le GPU, stable, documenté, supporté.&lt;/p&gt;&lt;p&gt;Mais les débuts ont été chaotiques.&lt;br&gt;Les devs râlaient.&lt;br&gt;Les perfs étaient pas ouf.&lt;br&gt;Les API changeaient à chaque version.&lt;/p&gt;&lt;p&gt;Et puis, petit à petit, c’est devenu LE standard.&lt;br&gt;Parce que Microsoft poussait fort sur le gaming PC.&lt;br&gt;Parce que les tools suivaient.&lt;br&gt;Et parce que t’avais pas 36 choix.&lt;/p&gt;&lt;p&gt;Et quand Direct3D a pris le dessus sur OpenGL dans les studios, c’était plié.&lt;/p&gt;&lt;p&gt;Alors ouais, aujourd’hui t’as DirectX 12, qui demande un doctorat en architecture GPU pour afficher un cube.&lt;br&gt;Mais derrière ce monstre, y’a une vraie logique :&lt;br&gt;— reprendre le contrôle bas niveau&lt;br&gt;— coller aux besoins des moteurs modernes&lt;br&gt;— éviter la magie noire et l’overhead&lt;/p&gt;&lt;p&gt;Un retour aux sources, quelque part.&lt;br&gt;Sauf que cette fois, faut 5 ingénieurs pour faire ce que tu faisais en 3 lignes de glBegin/glEnd. 😅&lt;/p&gt;&lt;p&gt;Mais c’est ça l’évolution.&lt;br&gt;On gagne en puissance, on perd en innocence.&lt;/p&gt;&lt;p&gt;T’as codé avec DirectX ?&lt;br&gt;T’as connu les joies du debug sous DX9, ou le chaos de DX11 avec HLSL qui te sort une erreur de compile en araméen ?&lt;/p&gt;
</content:encoded></item><item><title>WebGL - La 3D directement dans le navigateur/</title><link>https://papydev.fr/blog/118/</link><guid isPermaLink="true">https://papydev.fr/blog/118/</guid><pubDate>Thu, 03 Apr 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Franchement, qui aurait parié sur de la 3D temps réel dans un navigateur ?&lt;br&gt;Pas moi.&lt;br&gt;À l’époque, si tu voulais un cube qui tourne dans ton browser, t’avais 2 options :&lt;br&gt;👉 Java applet (rip)&lt;br&gt;👉 Flash + hacks chelous + 12 FPS&lt;/p&gt;&lt;p&gt;Et puis y’a un truc qui débarque, discret mais révolutionnaire : WebGL.&lt;br&gt;Un binding JavaScript vers OpenGL ES 2.0.&lt;br&gt;Rien que ça.&lt;/p&gt;&lt;p&gt;Pas de plugin.&lt;br&gt;Pas d’install.&lt;br&gt;Juste un &amp;lt;canvas&amp;gt; et un peu de JS, et boum : des vertex, des shaders, du z-buffer.&lt;br&gt;Dans ton Chrome.&lt;br&gt;Dans ton Firefox.&lt;br&gt;Dans ton tel.&lt;/p&gt;&lt;p&gt;Mais surtout : sur tous les OS.&lt;/p&gt;&lt;p&gt;WebGL, c’est l’enfant bâtard entre le monde natif et le web.&lt;br&gt;Le pont improbable entre le GPU et la sandbox.&lt;br&gt;Et c’est une vraie réponse à un irritant majeur :&lt;br&gt;➡️ Pourquoi on peut pas faire du vrai rendu 3D sur le web, sans passer par des plugins pourris ?&lt;/p&gt;&lt;p&gt;À l’époque, y’avait rien.&lt;br&gt;Le web c’était du DOM, des iframes, du CSS2, et un peu de jQuery pour animer les boutons.&lt;br&gt;Puis d’un coup, y’a Three.js, Babylon.js, regl, et des devs qui commencent à pondre des moteurs 3D entiers… en JS.&lt;/p&gt;&lt;p&gt;C’était pas toujours perf.&lt;br&gt;C’était pas toujours stable.&lt;br&gt;Mais c’était libre.&lt;br&gt;Et surtout, ça ouvrait une porte énorme :&lt;br&gt;Tu pouvais builder une expérience immersive accessible via un simple lien.&lt;/p&gt;&lt;p&gt;WebGL, c’est le rêve du “no install”.&lt;br&gt;C’est ce qui permet de lancer une scène 3D en un clic, de faire du prototypage rapide, ou même du jeu multi direct dans le navigateur.&lt;/p&gt;&lt;p&gt;Et maintenant avec WebGL2, t’as même du multibuffer, des textures 3D, des instanciations…&lt;br&gt;Pas mal pour un truc que beaucoup prenaient pas au sérieux au début.&lt;/p&gt;&lt;p&gt;Moi je trouve ça ouf.&lt;br&gt;C’est une des rares technos qui donne du super-pouvoir à n’importe quel dev front curieux.&lt;/p&gt;&lt;p&gt;T’as déjà touché à WebGL ?&lt;br&gt;Ou t’es resté traumatisé par ton premier shader GLSL qui crashait sans message d’erreur ? 😅&lt;/p&gt;
</content:encoded></item><item><title>Skia - Le ninja de l&apos; UI multiplatform/</title><link>https://papydev.fr/blog/119/</link><guid isPermaLink="true">https://papydev.fr/blog/119/</guid><pubDate>Fri, 04 Apr 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Y’a des technos qui crient leur puissance.&lt;br&gt;Et y’en a d’autres, plus discrètes, qui bossent en silence dans l’ombre…&lt;br&gt;Skia, c’est clairement la deuxième catégorie.&lt;/p&gt;&lt;p&gt;Tu vois un bouton bien lisse dans une app Android ?&lt;br&gt;Une interface fluide dans Chrome ?&lt;br&gt;Un canvas qui réagit au doigt et à l’œil dans Flutter ?&lt;br&gt;➡️ C’est Skia qui dessine derrière.&lt;br&gt;Toujours là, jamais visible, mais indispensable.&lt;/p&gt;&lt;p&gt;À la base, Skia c’est un moteur de rendu 2D open-source, écrit en C++.&lt;br&gt;Ultra-optimisé.&lt;br&gt;Multi-plateforme.&lt;br&gt;Capable de bosser avec OpenGL, Vulkan, Metal, et même le CPU si faut.&lt;/p&gt;&lt;p&gt;Mais surtout, il a été conçu pour résoudre un truc super chiant :&lt;br&gt;➡️ Comment faire un rendu 2D cohérent, rapide, et pixel-perfect sur n’importe quel device, OS ou GPU ?&lt;/p&gt;&lt;p&gt;Parce que c’est ça le vrai bordel.&lt;br&gt;Faire une UI jolie sur ton laptop, c’est cool.&lt;br&gt;La faire tourner pareil sur Android, iOS, Linux, Windows, avec ou sans accélération matérielle…&lt;br&gt;C’est un autre délire.&lt;/p&gt;&lt;p&gt;Skia, lui, s’en fout.&lt;br&gt;Il s’adapte.&lt;br&gt;Il a des backends pour tout.&lt;br&gt;Il peut bosser en raster pur ou en GPU.&lt;br&gt;Et il offre une API simple pour dessiner n’importe quoi : texte, formes, images, paths complexes…&lt;/p&gt;&lt;p&gt;Google l’a adopté partout.&lt;br&gt;Android ? Skia.&lt;br&gt;Chrome ? Skia.&lt;br&gt;Flutter ? Skia.&lt;br&gt;Même Firefox l’a utilisé à une époque.&lt;/p&gt;&lt;p&gt;Et pourtant, personne n’en parle.&lt;br&gt;Pas de buzz.&lt;br&gt;Pas de hype.&lt;br&gt;Juste du taf, bien fait.&lt;/p&gt;&lt;p&gt;C’est l’anti-bling de la 2D.&lt;br&gt;Et franchement, ça fait du bien.&lt;br&gt;Parce que t’as pas toujours besoin d’un shader PBR ou d’un pipeline Vulkan pour afficher une todo list ou un bouton.&lt;/p&gt;&lt;p&gt;Des fois, t’as juste besoin d’un moteur stable, rapide, précis.&lt;br&gt;Qui fait le taf.&lt;br&gt;Et qui te laisse, toi dev, te concentrer sur l’expérience.&lt;/p&gt;&lt;p&gt;T’as déjà bossé avec Skia directement ?&lt;br&gt;Ou tu faisais partie de ceux qui l’utilisaient sans le savoir ? 😅&lt;/p&gt;&lt;p&gt;Et maintenant que tu connais son nom, tu le regarderas plus pareil.&lt;br&gt;Promis.&lt;/p&gt;
</content:encoded></item><item><title>Wren - Le langage qui aurait pu être Lua 6/</title><link>https://papydev.fr/blog/120/</link><guid isPermaLink="true">https://papydev.fr/blog/120/</guid><pubDate>Mon, 07 Apr 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Tu t’es déjà demandé à quoi ressemblerait Lua si quelqu’un l’avait réécrit, la tête froide, sans compromis legacy, avec une vraie vision orientée objet ?&lt;/p&gt;&lt;p&gt;C’est exactement ce qu’a fait Bob Nystrom, ingénieur chez Google, quand il a créé Wren.&lt;/p&gt;&lt;p&gt;Il bossait sur son bouquin “Crafting Interpreters”, et il avait besoin d’un petit langage pour illustrer ses concepts.&lt;br&gt;Mais pas un jouet. Un vrai langage. Minimaliste, rapide, élégant.&lt;br&gt;Il s’est dit : “Allez, on va le faire nous-mêmes.”&lt;/p&gt;&lt;p&gt;Et il a pondu Wren.&lt;/p&gt;&lt;p&gt;Le problème ?&lt;br&gt;Lua est cool. Mais dès que tu veux faire de l’OO propre, ça commence à grincer.&lt;br&gt;Tu te retrouves à bidouiller des metatables, à simuler de l’héritage…&lt;br&gt;Bref, c’est puissant mais tordu.&lt;br&gt;Et puis, côté ergonomie moderne, on repassera.&lt;/p&gt;&lt;p&gt;Wren, lui, il arrive avec :&lt;br&gt; • une syntaxe propre, classe, inspirée de Smalltalk et JavaScript&lt;br&gt; • un modèle objet natif, encapsulé, sans hacks&lt;br&gt; • une VM légère que tu peux embarquer dans n’importe quelle app&lt;br&gt; • zéro dépendance, facile à builder, et une perfo sérieuse&lt;/p&gt;&lt;p&gt;C’est pas un langage pour faire des API REST ou du machine learning.&lt;/p&gt;&lt;p&gt;C’est un langage pour injecter de l’intelligence dans des moteurs de jeux, des apps desktop, des plugins, des outils sur-mesure.&lt;/p&gt;&lt;p&gt;C’est le compagnon idéal du dev qui veut garder le contrôle, sans sacrifier la lisibilité.&lt;/p&gt;&lt;p&gt;Tu connais Wren ? Tu l’as déjà croisé dans un projet ?&lt;br&gt;Sinon, tu penses à quel langage qui mériterait un peu plus de love ?&lt;/p&gt;</content:encoded></item><item><title>Janet - Un langage fonctionnel, inspiré de Lisp/</title><link>https://papydev.fr/blog/121/</link><guid isPermaLink="true">https://papydev.fr/blog/121/</guid><pubDate>Tue, 08 Apr 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Tu veux un truc chelou mais élégant ?&lt;br&gt;Un langage qui compile, s’embarque, s’utilise en REPL, et qui… ressemble à du Lisp, sans te filer la migraine ?&lt;/p&gt;&lt;p&gt;Alors laisse-moi te parler de Janet.&lt;/p&gt;&lt;p&gt;Janet, c’est un langage fonctionnel, inspiré de Lisp, qui tourne sur une VM hyper légère.&lt;br&gt;C’est pas un langage qui cherche à plaire à tout le monde.&lt;br&gt;C’est un langage pour ceux qui aiment explorer. Pour ceux qui veulent comprendre comment ça tourne, et pourquoi ça tourne bien.&lt;/p&gt;&lt;p&gt;À la base, il a été conçu par Caleb Smith pour un besoin très précis :&lt;br&gt;écrire des plugins dynamiques dans une app C, sans se taper la lourdeur de Lua ou Python.&lt;br&gt;Il voulait un langage :&lt;br&gt; • ultra léger&lt;br&gt; • avec un runtime minuscule&lt;br&gt; • qui supporte le REPL&lt;br&gt; • qui soit safe mais sans garbage collector chiant&lt;br&gt; • et qui puisse s’intégrer en quelques lignes dans une app native&lt;/p&gt;&lt;p&gt;Résultat : Janet est né.&lt;br&gt;Une petite pépite, avec :&lt;br&gt; • une syntaxe inspirée de Lisp (mais beaucoup plus digeste)&lt;br&gt; • une compilation en bytecode pour de vraies perfs&lt;br&gt; • une intégration native C ultra simple&lt;br&gt; • et une standard lib clean, orientée outil, scripting, REPL&lt;/p&gt;&lt;p&gt;Tu veux faire un outil CLI custom ?&lt;br&gt;Tu veux un langage pour t’écrire un petit DSL maison ?&lt;br&gt;Tu veux intégrer un moteur de logique dans une app C/Go/Rust sans charger l’armada Python ?&lt;br&gt;Janet est là pour ça.&lt;/p&gt;&lt;p&gt;C’est pas un langage qui a vocation à remplacer quoi que ce soit.&lt;br&gt;C’est un langage qui te file la sensation d’avoir ton propre outil, un peu brut, mais précis.&lt;/p&gt;&lt;p&gt;Tu connaissais Janet ?&lt;br&gt;T’en as déjà testé des langages qui sortent du troupeau ?&lt;/p&gt;
</content:encoded></item><item><title>Fennel - Écrire du Lua sans se flinguer les yeux /</title><link>https://papydev.fr/blog/122/</link><guid isPermaLink="true">https://papydev.fr/blog/122/</guid><pubDate>Wed, 09 Apr 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Tu kiffes Lua mais tu trouves la syntaxe un peu old school ?&lt;br&gt;T’as toujours rêvé de mélanger la souplesse d’un Lisp avec la légèreté d’un langage embarqué ?&lt;/p&gt;&lt;p&gt;Bienvenue dans le monde chelou et magnifique de Fennel.&lt;/p&gt;&lt;p&gt;Fennel, c’est un Lisp qui compile en Lua.&lt;br&gt;Mais genre… sans transpileur douteux ni runtime obscur.&lt;br&gt;Tu tapes ton code avec des parenthèses (ouais, un peu), tu lances ton build, et bam :&lt;br&gt;ça te sort du Lua pur jus, lisible, prêt à être exécuté.&lt;/p&gt;&lt;p&gt;Mais pourquoi Fennel a été créé ?&lt;/p&gt;&lt;p&gt;À la base, c’est Phil Hagelberg (alias technomancy) qui en avait marre.&lt;br&gt;Il voulait bosser avec Lua (parce qu’il est léger, rapide, intégré partout).&lt;br&gt;Mais il venait du monde du Lisp, avec ses macros puissantes, son côté fonctionnel propre.&lt;/p&gt;&lt;p&gt;Et là, grosse frustration :&lt;br&gt;pas de macro, pas de pattern matching, pas de vrais lambdas élégantes.&lt;br&gt;Un enfer pour ceux qui veulent coder avec élégance et intention.&lt;/p&gt;&lt;p&gt;Du coup, il a pondu Fennel.&lt;br&gt;Un langage qui coche toutes les cases que Lua oublie volontairement :&lt;br&gt; • syntaxe lisible et homogène (si t’aimes le style Lisp, tu vas te régaler)&lt;br&gt; • pattern matching intégré&lt;br&gt; • macros puissantes&lt;br&gt; • interop 100% avec Lua (t’appelles n’importe quelle lib Lua, direct)&lt;br&gt; • zéro dépendance : tu le compiles, t’as ton Lua natif&lt;/p&gt;&lt;p&gt;Et surtout : tu peux utiliser Fennel dans Love2D, dans Neovim, dans tes scripts perso.&lt;br&gt;Sans douleur. Sans hack.&lt;/p&gt;&lt;p&gt;Fennel, c’est pas juste un langage.&lt;br&gt;C’est une déclaration d’amour aux devs qui veulent se faire plaisir, sans renier les contraintes du réel.&lt;/p&gt;&lt;p&gt;Tu veux écrire du code embarqué lisible ?&lt;br&gt;Tu veux t’amuser avec des macros, du fonctionnel, du clean code old school ?&lt;br&gt;Fennel est peut-être ton futur jouet préféré.&lt;/p&gt;&lt;p&gt;Tu connaissais ?&lt;br&gt;T’as déjà bossé sur un projet Love2D ou Neovim avec du Fennel dedans ?&lt;br&gt;Raconte-moi.&lt;/p&gt;</content:encoded></item><item><title>Nim - Coder comme en Python, compiler comme en C/</title><link>https://papydev.fr/blog/123/</link><guid isPermaLink="true">https://papydev.fr/blog/123/</guid><pubDate>Thu, 10 Apr 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;T’en as marre de choisir entre performance et lisibilité ?&lt;br&gt;Entre un code qui se compile vite, et un code que tu peux relire sans un Lexomil ?&lt;/p&gt;&lt;p&gt;Alors regarde du côté de Nim.&lt;/p&gt;&lt;p&gt;Nim, c’est un langage qui s’est posé une question simple :&lt;br&gt;Pourquoi on devrait encore souffrir en 2025 pour faire du natif propre ?&lt;/p&gt;&lt;p&gt;Le créateur, Andreas Rumpf, il venait du monde Pascal/Delphi.&lt;br&gt;Il aimait les langages lisibles, élégants, compacts.&lt;br&gt;Mais il voulait aussi compiler en C, faire du bas niveau, du vrai, sans garbage collector qui fout le feu, sans runtime de 200Mo.&lt;/p&gt;&lt;p&gt;Alors il a créé Nim.&lt;/p&gt;&lt;p&gt;Un langage qui ressemble à du Python :&lt;br&gt; • indentation significative&lt;br&gt; • syntaxe propre, fluide, agréable à lire&lt;br&gt; • typage fort mais pas chiant (inférence, génériques, union types)&lt;/p&gt;&lt;p&gt;Mais qui compile en C, C++, JavaScript, WebAssembly.&lt;br&gt;Et qui te sort des binaires ultra light, ultra rapides.&lt;/p&gt;&lt;p&gt;Le vrai irritant que Nim résout ?&lt;/p&gt;&lt;p&gt;T’as un projet natif à faire, t’en peux plus du C (trop verbeux),&lt;br&gt;du Rust (trop rigide), ou du Go (trop… bizarre ?)&lt;br&gt;T’as besoin d’un langage qui soit performant et agréable.&lt;/p&gt;&lt;p&gt;Nim, c’est le langage qui ne te prend pas pour un bourrin.&lt;br&gt;Tu peux écrire un CLI, un moteur de jeu, un backend, un compileur, un toolchain complet…&lt;br&gt;Sans galérer.&lt;/p&gt;&lt;p&gt;Et surtout : t’as un vrai système de macros (AST macros),&lt;br&gt;tu peux générer du code à la volée, créer tes DSLs, et même t’écrire ton propre langage dans le langage.&lt;br&gt;(Si t’es du genre à aimer jouer à Dieu, tu vas kiffer.)&lt;/p&gt;&lt;p&gt;Tu cherches un langage qui peut être simple ou dément selon ton humeur ?&lt;br&gt;Essaie Nim.&lt;/p&gt;&lt;p&gt;Tu l’as déjà testé ?&lt;br&gt;Tu penses qu’on a encore besoin de nouveaux langages, ou tout a déjà été inventé ?&lt;/p&gt;</content:encoded></item><item><title>Zig - Le langage qui a regardé C dans les yeux… et qui n’a pas cligné/</title><link>https://papydev.fr/blog/124/</link><guid isPermaLink="true">https://papydev.fr/blog/124/</guid><pubDate>Fri, 11 Apr 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Y’a un moment, dans ta vie de dev, où tu veux plus de magie.&lt;br&gt;Tu veux savoir exactement ce que ton code fait.&lt;br&gt;Où il va. Combien il pèse. Et pourquoi il plante.&lt;/p&gt;&lt;p&gt;C’est là que Zig débarque.&lt;/p&gt;&lt;p&gt;Zig, c’est un langage qui s’adresse aux devs qui veulent reprendre le contrôle.&lt;br&gt;Le vrai.&lt;br&gt;Pas avec des abstractions mignonnes.&lt;br&gt;Pas avec des outils qui font semblant de t’aider.&lt;/p&gt;&lt;p&gt;Le créateur, Andrew Kelley, il avait une obsession :&lt;br&gt;refaire ce que le C faisait bien… mais en mieux.&lt;br&gt;Sans macro chelou, sans compilateur capricieux, sans build system qui date de la guerre froide.&lt;/p&gt;&lt;p&gt;Le problème ?&lt;/p&gt;&lt;p&gt;Tu veux faire du bas niveau, gérer ta mémoire, produire du natif propre…&lt;br&gt;Tu prends C.&lt;br&gt;Mais très vite, t’es dans la jungle :&lt;br&gt; • comportement indéfini partout&lt;br&gt; • toolchain pourri&lt;br&gt; • sécurité mémoire inexistante&lt;br&gt; • et un build system qu’il faut prier à chaque make&lt;/p&gt;&lt;p&gt;Zig, c’est la réponse à ce bordel.&lt;br&gt; • Pas de préprocesseur : le langage est le build system&lt;br&gt; • Compilation multi-target facile (tu peux builder pour n’importe quelle archi depuis n’importe où)&lt;br&gt; • Gestion de mémoire explicite, mais sécurisée&lt;br&gt; • Pas de GC, pas de runtime caché&lt;br&gt; • Et surtout : une lisibilité chirurgicale&lt;/p&gt;&lt;p&gt;Tu veux builder un OS ?&lt;br&gt;Un moteur 3D from scratch ?&lt;br&gt;Un compilo ? Un loader dynamique ?&lt;br&gt;Zig, il est taillé pour ça.&lt;/p&gt;&lt;p&gt;Et il te donne l’impression de coder en C, mais dans un monde où les erreurs sont lisibles, traçables, logiques.&lt;/p&gt;&lt;p&gt;C’est un langage de puriste, mais pas élitiste.&lt;br&gt;Tu sens que chaque ligne de design est pensée pour t’aider à écrire du code qui fait ce que tu crois qu’il fait.&lt;/p&gt;&lt;p&gt;Tu l’as testé ?&lt;br&gt;Tu penses que C mérite vraiment une retraite bien méritée ?&lt;/p&gt;&lt;p&gt;Dis-moi ce que t’en penses.&lt;br&gt;Et si t’as d’autres langages de l’ombre qui méritent qu’on en parle, balance.&lt;/p&gt;</content:encoded></item><item><title>jQuery - Le dinosaure qui a démocratisé le JS DOM/</title><link>https://papydev.fr/blog/125/</link><guid isPermaLink="true">https://papydev.fr/blog/125/</guid><pubDate>Mon, 14 Apr 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Parlons un peu de ce bon vieux jQuery.&lt;br&gt;Ce dinosaure que tout le monde kiffe détester aujourd’hui… mais que pas mal d’entre nous doivent remercier d’avoir un jour rendu le JavaScript un peu moins infernal.&lt;/p&gt;&lt;p&gt;T’as déjà essayé de faire du JS avant 2006 ?&lt;br&gt;Genre, vraiment ?&lt;br&gt;C’était la jungle. Pas dans le bon sens du terme.&lt;br&gt;Chaque navigateur faisait sa sauce. Tu voulais ajouter une classe à un élément ? Bonne chance.&lt;br&gt;Tu voulais gérer un clic ? Prépare-toi à écrire trois fois le même code, version IE6, Firefox 2 et Safari chelou.&lt;br&gt;Et ne me parle même pas du DOM…&lt;/p&gt;&lt;p&gt;jQuery est né dans ce chaos.&lt;br&gt;Pas pour être “fancy”, pas pour “moderniser” quoi que ce soit.&lt;br&gt;Mais pour réparer. Pour panser les plaies ouvertes du JS côté front.&lt;/p&gt;&lt;p&gt;👉 C’était quoi l’idée de base ?&lt;br&gt;Créer une API simple, fluide, cohérente, pour manipuler le DOM, gérer les événements, faire des animations, et même lancer des requêtes AJAX, sans s’arracher les cheveux à chaque fois que tu changeais de navigateur.&lt;/p&gt;&lt;p&gt;Et spoiler : ça a marché.&lt;br&gt;“Write less, do more”, c’était pas juste un slogan marketing.&lt;br&gt;C’était le rêve de tout dev à l’époque.&lt;br&gt;Tu pouvais faire un carousel, gérer un toggle de menu, styliser une checkbox, en 10 lignes… et ça marchait PARTOUT.&lt;br&gt;Pas besoin de transpiler. Pas besoin de polyfill.&lt;br&gt;Ça marchait. Point.&lt;/p&gt;&lt;p&gt;Aujourd’hui, jQuery est ringard pour certains.&lt;br&gt;Mais honnêtement, si t’as codé entre 2006 et 2015, y’a de grandes chances que jQuery t’ait sauvé la mise plus d’une fois.&lt;br&gt;C’est pas juste un bout de lib.&lt;br&gt;C’est une béquille géniale qui a permis au web moderne de tenir debout jusqu’à ce que le JS natif (enfin) se muscle.&lt;/p&gt;&lt;p&gt;Alors ouais, aujourd’hui t’as des document.querySelector, du fetch, du addEventListener bien propre…&lt;br&gt;Mais souviens-toi qu’avant tout ça, c’était le chaos.&lt;/p&gt;&lt;p&gt;Et que jQuery, lui, est venu mettre de l’ordre.&lt;br&gt;Avec élégance.&lt;/p&gt;&lt;p&gt;💬 Et toi, t’en as fait à l’époque ?&lt;br&gt;T’as un petit bout de code jQuery que t’as encore dans ton muscle mémoire ?&lt;br&gt;Balance en commentaire ton .fadeIn() préféré ou ton .each() magique.&lt;br&gt;Nostalgie autorisée 👇&lt;/p&gt;
</content:encoded></item><item><title>Backbone.js - Premier “framework” MVC JS côté client./</title><link>https://papydev.fr/blog/126/</link><guid isPermaLink="true">https://papydev.fr/blog/126/</guid><pubDate>Tue, 15 Apr 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Ah Backbone.js…&lt;br&gt;Ce framework que plus personne n’utilise, mais sans qui React ou Vue ne seraient peut-être jamais nés.&lt;/p&gt;&lt;p&gt;Tu te rappelles quand on a commencé à foutre du JS partout dans le DOM ?&lt;br&gt;Quand les applis web ont voulu devenir des “apps” tout court ?&lt;br&gt;Quand on s’est mis à faire du state, du routing, de l’UI dynamique, mais avec… zéro structure côté front ?&lt;/p&gt;&lt;p&gt;C’était le Far West. On construisait des cathédrales…&lt;br&gt;avec des fichiers .js qui ressemblaient à des spaghettis mal cuits.&lt;br&gt;Un bordel monumental à maintenir.&lt;/p&gt;&lt;p&gt;Et c’est là que Backbone.js est arrivé.&lt;br&gt;Pas comme un héros. Plutôt comme un mec avec une carte et une règle.&lt;br&gt;Pas fancy, pas magique, mais organisé.&lt;/p&gt;&lt;p&gt;👉 Backbone, c’est quoi ?&lt;br&gt;Un framework minimaliste qui t’offrait des modèles, des vues, des routes, des collections et un soupçon de logique.&lt;br&gt;Juste assez pour structurer ton code, sans t’imposer un gros truc à la Angular 1.&lt;/p&gt;&lt;p&gt;Tu pouvais enfin dire :&lt;br&gt;“Bon ok, mon modèle Task, il est ici.&lt;br&gt;Ma vue TaskView, elle sait quoi faire quand je clique.&lt;br&gt;Et si je change l’URL, le router fait le taf.”&lt;/p&gt;&lt;p&gt;C’était pas parfait.&lt;br&gt;Mais c’était libérateur.&lt;/p&gt;&lt;p&gt;Backbone, c’est le début d’un truc.&lt;br&gt;Le moment où le front a commencé à prendre sa place.&lt;br&gt;À devenir une vraie architecture, avec de la logique, des patterns, des responsabilités.&lt;/p&gt;&lt;p&gt;C’est Backbone qui nous a forcés à penser MVC côté client.&lt;br&gt;C’est lui qui a inspiré Marionette, Ember, et même dans un coin sombre… AngularJS.&lt;br&gt;C’est lui qui a mis le doigt sur le besoin fondamental de séparer les données, la logique, et la vue.&lt;/p&gt;&lt;p&gt;Aujourd’hui, on jure que par des composants, du virtual DOM et des hooks.&lt;br&gt;Mais Backbone, c’était notre premier pas vers cette complexité assumée.&lt;br&gt;Notre premier framework “propre”.&lt;br&gt;Notre premier kit de survie quand le front est devenu sérieux.&lt;/p&gt;&lt;p&gt;Tu l’as utilisé, toi ?&lt;br&gt;T’as galéré avec les events qui buguent, les modèles qui se désynchronisent, les templates Underscore à rallonge ?&lt;br&gt;Ou t’as kiffé ce moment où enfin, tu comprenais ce qui se passait dans ton app ? 😅&lt;/p&gt;&lt;p&gt;💬 Raconte ton époque Backbone.&lt;br&gt;On va pas se mentir : sans lui, le front serait encore en train de coller des .onClick dans des balises &amp;lt;div&amp;gt;.&lt;/p&gt;
</content:encoded></item><item><title>Ember.js - L’approche convention-over-configuration./</title><link>https://papydev.fr/blog/127/</link><guid isPermaLink="true">https://papydev.fr/blog/127/</guid><pubDate>Wed, 16 Apr 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Là on passe dans la cour des grands.&lt;br&gt;Ou plutôt… dans la cour de ceux qui pensaient gros alors que le reste du monde pensait encore “composant slider avec 2 events”.&lt;/p&gt;&lt;p&gt;Ember, c’était pas juste une lib.&lt;br&gt;C’était une vision.&lt;br&gt;Un pari presque arrogant : “et si on faisait du front comme on fait du Rails ?”&lt;/p&gt;&lt;p&gt;Rails pour le navigateur.&lt;br&gt;Convention over configuration.&lt;br&gt;Des outils, une CLI, un router béton, un système de templates, un data layer intégré.&lt;br&gt;Tout. Était. Inclus.&lt;/p&gt;&lt;p&gt;Et franchement ? C’était stylé.&lt;/p&gt;&lt;p&gt;👉 Ember est né pour résoudre un vrai problème :&lt;br&gt;comment construire des apps front complexes, durables, et scalables… sans devenir fou ?&lt;/p&gt;&lt;p&gt;Backbone te laissait tout faire. Ember, lui, te disait quoi faire.&lt;br&gt;Et à une époque où tout le monde bricolait son propre framework maison à base de jQuery, Ember te balançait un vrai cadre.&lt;br&gt;Avec une architecture solide, de la productivité, et une communauté bien carrée.&lt;/p&gt;&lt;p&gt;Mais Ember, c’est aussi l’histoire d’un framework qui avait raison trop tôt.&lt;/p&gt;&lt;p&gt;Il a voulu imposer des concepts avancés, des patterns lourds, dans un écosystème qui n’était pas encore prêt.&lt;br&gt;Résultat ? Une courbe d’apprentissage verticale. Une complexité qui faisait flipper les juniors. Et une adoption limitée hors des gros projets ambitieux.&lt;/p&gt;&lt;p&gt;Et puis React est arrivé.&lt;br&gt;Minimal. Composable. Sans dogme.&lt;br&gt;Le reste, tu connais.&lt;/p&gt;&lt;p&gt;Mais pourtant… Ember a tenu bon.&lt;br&gt;Il a continué à évoluer. À rester cohérent.&lt;br&gt;Aujourd’hui encore, y’a des boîtes (et pas des petites) qui l’utilisent, parce que c’est fiable, prévisible et pensé pour durer.&lt;/p&gt;&lt;p&gt;Ember, c’est pas le plus sexy.&lt;br&gt;Mais c’est le framework que t’écoutes quand t’as fini de jouer avec les hype-trains et que tu veux construire une cathédrale.&lt;/p&gt;&lt;p&gt;💬 T’en as fait ?&lt;br&gt;T’as galéré avec les routes imbriquées ? T’as kiffé les helpers ?&lt;br&gt;Ou t’as fui à la première erreur cryptique dans la console ? 😅&lt;/p&gt;&lt;p&gt;Balance ton expérience Ember, même si c’est juste “j’ai essayé une fois et j’ai pleuré”.&lt;br&gt;Ça compte aussi 👇&lt;/p&gt;</content:encoded></item><item><title>Lit - Web components modernes sans surcouche./</title><link>https://papydev.fr/blog/128/</link><guid isPermaLink="true">https://papydev.fr/blog/128/</guid><pubDate>Thu, 17 Apr 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Pas un framework.&lt;br&gt;Pas une usine à gaz.&lt;br&gt;Juste… une petite librairie qui fait exactement ce qu’elle promet : rendre le Web Component un peu moins pénible à vivre.&lt;/p&gt;&lt;p&gt;Franchement, soyons honnêtes :&lt;br&gt;Les Web Components, c’est une idée brillante… mais à l’implémentation aride.&lt;br&gt;Créer un composant natif en JS pur, c’est comme vouloir peindre un tableau avec des gants de boxe.&lt;br&gt;Tu galères, tu cries, tu tapes sur le clavier.&lt;br&gt;Et au final t’as juste une class MyElement extends HTMLElement avec 300 lignes et zéro plaisir.&lt;/p&gt;&lt;p&gt;C’est là que Lit débarque.&lt;/p&gt;&lt;p&gt;👉 Lit, c’est une lib ultra-light (genre vraiment, 5ko gzip), qui vient pas tout casser.&lt;br&gt;Elle vient juste te dire :&lt;br&gt;“Tu veux faire du Web Component comme un adulte ? Tiens, prends ça, ça va aller mieux.”&lt;/p&gt;&lt;p&gt;Elle t’apporte quoi ?&lt;/p&gt;&lt;p&gt;Un templating simple et lisible (`html``${toto}```)&lt;br&gt;Une gestion du state réactive sans se perdre dans le boilerplate&lt;br&gt;Un cycle de vie clair, sans magie noire&lt;br&gt;Et surtout : zéro lock-in, zéro surcouche, t’es toujours dans le standard du navigateur.&lt;/p&gt;&lt;p&gt;Lit, c’est le couteau suisse des gens qui veulent jouer dans la cour du natif sans se faire punir par l’API du W3C.&lt;/p&gt;&lt;p&gt;Pas besoin de bundler complexe.&lt;br&gt;Pas besoin de transpiler en React ou en Svelte ou en je-sais-quoi.&lt;br&gt;Tu codes avec des classes, tu déclares tes propriétés, tu écris ton HTML directement dans le JS, et boum, c’est vivant.&lt;/p&gt;&lt;p&gt;C’est la philosophie du “fais peu, mais bien”.&lt;br&gt;Le genre de truc qui plaît aux devs seniors fatigués de rebooter leur stack tous les 6 mois.&lt;/p&gt;&lt;p&gt;Alors ouais, Lit c’est pas la star des trends Twitter.&lt;br&gt;Mais si t’as déjà bossé sur un design system, ou si t’as voulu faire du composant cross-framework, propre, maintenable, natif…&lt;/p&gt;&lt;p&gt;…Tu sais que Lit, c’est le move malin.&lt;/p&gt;&lt;p&gt;💬 Tu l’as testé ? T’en penses quoi ?&lt;br&gt;T’es team “on reste dans le natif” ou team “je transpile tout et j’assume” ?&lt;br&gt;Viens me dire comment tu gères tes composants aujourd’hui 👇&lt;/p&gt;
</content:encoded></item><item><title>Qwik - Ultra performant, le futur du frontend rehydratable./</title><link>https://papydev.fr/blog/129/</link><guid isPermaLink="true">https://papydev.fr/blog/129/</guid><pubDate>Fri, 18 Apr 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Ouais ouais, encore un framework.&lt;br&gt;Mais pas juste “un de plus”.&lt;br&gt;Un truc chelou, bizarrement malin, qui t’fait te poser des questions du genre :&lt;br&gt;“Et si on arrêtait enfin d’envoyer une appli entière pour afficher un bouton ?”&lt;/p&gt;&lt;p&gt;Faut dire les choses :&lt;br&gt;On a passé 10 ans à tout rendre SPA.&lt;br&gt;À tout pré-rendre. À tout re-hydrater.&lt;br&gt;À balancer 500ko de JS juste pour faire apparaître un “Ajoutez au panier”.&lt;/p&gt;&lt;p&gt;Résultat ?&lt;br&gt;Des perfs dégueu, des LCP qui pleurent, et du JS qui charge, parse, compile, exécute… alors que l’utilisateur veut juste scroller.&lt;/p&gt;&lt;p&gt;Et là, débarque Qwik.&lt;/p&gt;&lt;p&gt;👉 Le pitch ? Radical :&lt;br&gt;“Zero JavaScript à charger au début. Vraiment zéro. Nada.”&lt;br&gt;Tout est pauseable. Tout est re-hydraté… à la demande.&lt;br&gt;Quand t’interagis. Pas avant.&lt;br&gt;Ils appellent ça le resumability.&lt;br&gt;Et ouais, c’est aussi fou que ça en a l’air.&lt;/p&gt;&lt;p&gt;Imagine.&lt;br&gt;Tu fais un site e-commerce.&lt;br&gt;Qwik va te pré-rendre toute la page côté serveur.&lt;br&gt;Le JS ? Il est suspendu. Littéralement figé dans le HTML, prêt à reprendre là où le serveur l’a laissé.&lt;br&gt;Tant que l’utilisateur clique pas, le JS bouge pas.&lt;br&gt;Pas de bundle à parser. Pas de runtime à instancier.&lt;/p&gt;&lt;p&gt;Et quand l’utilisateur clique ?&lt;br&gt;Qwik ne charge que le bout de code nécessaire à CETTE interaction.&lt;/p&gt;&lt;p&gt;C’est comme du lazy loading… mais pour TOUT.&lt;/p&gt;&lt;p&gt;Alors ouais, c’est pas React.&lt;br&gt;C’est pas un écosystème mature avec 50k plugins.&lt;br&gt;C’est nouveau. C’est déroutant.&lt;br&gt;Tu vas rager les 3 premiers jours.&lt;br&gt;Mais une fois que t’as capté le délire…&lt;br&gt;Tu vois le futur.&lt;/p&gt;&lt;p&gt;Qwik, c’est pas juste un framework.&lt;br&gt;C’est une réponse front à la crise climatique du JS.&lt;/p&gt;&lt;p&gt;On a surconsommé.&lt;br&gt;Maintenant faut penser sobriété.&lt;br&gt;Et Qwik, lui, te regarde et te dit :&lt;br&gt;“T’as vraiment besoin de 300ko de JS pour gérer un menu burger ? Sérieux ?” 😏&lt;/p&gt;&lt;p&gt;💬 Tu l’as testé ou pas encore ?&lt;br&gt;Tu crois que c’est le futur… ou juste une expérimentation de plus ?&lt;br&gt;Viens m’le dire, j’suis curieux d’avoir ton avis 👇&lt;/p&gt;
</content:encoded></item><item><title>Axe Dev tools - Pourquoi tu codes ?/</title><link>https://papydev.fr/blog/130/</link><guid isPermaLink="true">https://papydev.fr/blog/130/</guid><pubDate>Mon, 21 Apr 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;J’te parle pas de ton taf ou de ton framework préféré.&lt;br&gt;Je parle de ce moment où tu vois ton interface respirer, où chaque composant est à sa place.&lt;/p&gt;&lt;p&gt;Mais... pour qui tu codes, vraiment ?&lt;/p&gt;&lt;p&gt;Parce que pendant longtemps, on codait pour les gens &quot;visibles&quot;.&lt;br&gt;Ceux qui voient bien, qui entendent bien, qui cliquent vite et scrollent droit.&lt;br&gt;Et tous les autres ?&lt;/p&gt;&lt;p&gt;Les autres, on les a oubliés. Ou pire : on les a ignorés sans le vouloir.&lt;/p&gt;&lt;p&gt;🛠️ Et puis, y&apos;a des gens qui se sont levés un matin en se disant :&lt;br&gt;&quot;Pourquoi c’est aussi galère de faire un web accessible ? Pourquoi c’est pas intégré dans le dev, comme un ESLint ou un Prettier ?&quot;&lt;/p&gt;&lt;p&gt;C’est là que Deque Systems a sorti Axe DevTools.&lt;br&gt;Pas une révolution. Une réparation.&lt;br&gt;Un outil pour arrêter de dev dans le vide.&lt;br&gt;Un truc qui te dit cash :&lt;br&gt;&quot;Hé, là ton bouton, il est stylé, mais personne avec un lecteur d’écran pourra le voir.&quot;&lt;br&gt;&quot;Ton texte gris clair sur fond blanc, c’est joli, mais illisible pour 15% des gens.&quot;&lt;/p&gt;&lt;p&gt;Un linter, mais pour les humains.&lt;br&gt;Un scanner, mais pour l’inclusion.&lt;br&gt;Un rappel constant que ton code, il est pas juste pour les gens qui te ressemblent.&lt;/p&gt;&lt;p&gt;🔍 Axe, c’est pas un gadget de consultant.&lt;br&gt; C’est une loupe sur tes angles morts.&lt;br&gt; Et ouais, ça pique parfois. Mais ça te fait progresser.&lt;br&gt; T’as plus besoin de dev à l’aveugle (ironique non ?), t’as une boussole.&lt;/p&gt;&lt;p&gt;💡 C’est quoi le vrai game ?&lt;br&gt; C’est pas juste “faire passer un audit RGAA”.&lt;br&gt; C’est designer un web qui n’oublie personne.&lt;br&gt; Et ça, t’y arrives pas à l’instinct. Faut des outils. Faut Axe.&lt;/p&gt;&lt;p&gt;👉 T’utilises quoi toi, pour tester l’accessibilité ?&lt;br&gt;Tu relies Axe dans ta CI ? Tu préfères manuellement en local ?&lt;br&gt;Balance tes tips, qu’on progresse tous ensemble.&lt;/p&gt;
</content:encoded></item><item><title>VoiceOver, TalkBack - Les lecteurs de codes ?/</title><link>https://papydev.fr/blog/131/</link><guid isPermaLink="true">https://papydev.fr/blog/131/</guid><pubDate>Tue, 22 Apr 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;🧠 Tu t’es déjà demandé comment on “voit” une app… sans la voir ?&lt;br&gt;
Pas en dev hein. En tant qu’utilisateur.&lt;/p&gt;

&lt;p&gt;Imagine : t’ouvres ton appli préférée… mais t’as plus d’écran.&lt;br&gt;
Tu navigues à l’oreille, au toucher.&lt;br&gt;
Tu avances avec des gestes, tu t’orientes avec des voix synthétiques.&lt;br&gt;
Pas de curseur. Pas de couleur. Juste des infos, balancées à l’audio, une par une.&lt;/p&gt;

&lt;p&gt;🎧 C’est exactement pour ça qu’Apple a sorti VoiceOver. Et Google, son équivalent : TalkBack.&lt;br&gt;
Pas pour “faire joli”, mais pour que les gens qui voient pas puissent quand même vivre ton app.&lt;/p&gt;

&lt;p&gt;Acheter. Lire. S’informer. Aimer. S’indigner. Interagir.&lt;br&gt;
Mais le problème, c’est pas les outils.&lt;/p&gt;

&lt;p&gt;Ils sont là. Puissants. Gratuits. Intégrés.&lt;/p&gt;

&lt;p&gt;Le problème, c’est nous.&lt;br&gt;
Nous, devs, designers, chefs de projet, qui les utilisons jamais.&lt;br&gt;
Qui testons nos interfaces uniquement à l’œil.&lt;br&gt;
Et du coup… on fait des apps muettes.&lt;/p&gt;

&lt;p&gt;🔁 La première fois que tu testes ton app avec VoiceOver, t’as une claque.&lt;/p&gt;

&lt;p&gt;Tu réalises que ton “joli carrousel” est illisible.&lt;br&gt;
Que tes “icônes intuitives” sont muettes.&lt;br&gt;
Que ton input custom n’a même pas de label.&lt;/p&gt;

&lt;p&gt;Tu comprends que ton produit, il marche… mais pas pour tout le monde.&lt;/p&gt;

&lt;p&gt;Et là, tu changes.&lt;/p&gt;

&lt;p&gt;Pas parce qu’on t’a demandé.&lt;/p&gt;

&lt;p&gt;Mais parce que t’as compris.&lt;/p&gt;

&lt;p&gt;💡 VoiceOver, c’est pas juste un outil.&lt;br&gt;
C’est une école d’humilité.&lt;br&gt;
C’est le miroir de ton code.&lt;br&gt;
Celui qui te dit : “Ouais, t’as pensé à toi. Mais pas à eux.”&lt;/p&gt;

&lt;p&gt;👀 Tu l’as déjà utilisé, toi, VoiceOver ou TalkBack ?&lt;br&gt;
Tu t’es déjà retrouvé perdu dans ton propre design, sans écran ?&lt;br&gt;
Dis-moi ce que ça t’a appris 👇&lt;/p&gt;
</content:encoded></item><item><title>Figma Stark, Contrast, able - Figma, c’est beau. Mais Figma avec Stark, Contrast ou Able… c’est puissant./</title><link>https://papydev.fr/blog/132/</link><guid isPermaLink="true">https://papydev.fr/blog/132/</guid><pubDate>Wed, 23 Apr 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Parce que faire de l’UX, c’est pas juste aligner des pixels.&lt;/p&gt;

&lt;p&gt;C’est penser à des gens réels, avec des besoins réels, des limitations, des handicaps, des contextes.&lt;/p&gt;

&lt;p&gt;Et tout ça, tu peux l’ignorer sans le vouloir…&lt;br&gt;
À moins que ton outil te mette une claque visuelle.&lt;/p&gt;

&lt;p&gt;🧩 Les plugins A11y dans Figma, c’est pas des gadgets.&lt;br&gt;
C’est des lunettes. Des simulateurs. Des gardes-fous.&lt;/p&gt;

&lt;p&gt;Ils te montrent comment un daltonien voit ton interface.&lt;br&gt;
Ils hurlent quand ton contraste est trop faible.&lt;br&gt;
Ils te forcent à réfléchir AVANT de coder.&lt;/p&gt;

&lt;p&gt;C’est là le game changer.&lt;/p&gt;

&lt;p&gt;👉 L’accessibilité ne doit plus être un patch qu’on colle à la fin.&lt;/p&gt;

&lt;p&gt;Faut que ça commence dans les maquettes.&lt;/p&gt;

&lt;p&gt;Parce que corriger une couleur après 10 commits, c’est du temps foutu en l’air.&lt;/p&gt;

&lt;p&gt;Mais choisir la bonne palette dès Figma, c’est fluide, c’est propre, c’est smart.&lt;/p&gt;

&lt;p&gt;Les plugins comme &lt;strong&gt;Stark&lt;/strong&gt; ou &lt;strong&gt;Contrast&lt;/strong&gt;, ils t’aident à designer pour tous, pas juste pour les gens dans la salle avec toi.&lt;/p&gt;

&lt;p&gt;Ils t’apprennent à te demander :&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;“Et si l’utilisateur voyait en niveaux de gris ?”&lt;/li&gt;
  &lt;li&gt;“Et si le texte que je mets à 12px devait être lu par quelqu’un à 70 ans ?”&lt;/li&gt;
  &lt;li&gt;“Et si mon interface devait être utilisée avec une seule main ?”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Tu deviens meilleur. Pas juste en design. En empathie.&lt;/p&gt;

&lt;p&gt;🎯 Au final, ces plugins, c’est pas des outils.&lt;br&gt;
C’est des révélateurs.&lt;/p&gt;

&lt;p&gt;Ils te rappellent que la beauté, c’est pas dans l’ombre portée.&lt;br&gt;
C’est dans l’intention.&lt;/p&gt;

&lt;p&gt;🎤 T’as des plugins A11y préférés dans Figma ?&lt;br&gt;
Tu bosses avec un setup qui t’aide à penser inclusif dès le design ?&lt;/p&gt;
</content:encoded></item><item><title>Accessibility Tree - Tu crois que ton HTML est propre ? /</title><link>https://papydev.fr/blog/133/</link><guid isPermaLink="true">https://papydev.fr/blog/133/</guid><pubDate>Thu, 24 Apr 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Regarde ce que voit un lecteur d’écran.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Pas ce que toi tu vois.&lt;/p&gt;

&lt;p&gt;Ce que eux voient.&lt;/p&gt;

&lt;p&gt;Pas ton DOM avec ses divs bien indentées.&lt;br&gt;
Pas ton composant React avec ses jolis hooks.&lt;/p&gt;

&lt;p&gt;Mais l’&lt;strong&gt;Accessibility Tree&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Ce truc planqué dans les DevTools.&lt;/p&gt;

&lt;p&gt;Un arbre parallèle.&lt;br&gt;
Un reflet sémantique.&lt;br&gt;
Le monde réel pour ceux qui naviguent sans leurs yeux.&lt;/p&gt;

&lt;p&gt;Et parfois… c’est le cauchemar.&lt;/p&gt;

&lt;p&gt;🧨 T’as oublié un &lt;code&gt;aria-label&lt;/code&gt; ?&lt;br&gt;
Le bouton est “non nommé”.&lt;br&gt;
T’as foutu 15 &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; imbriquées avec un &lt;code&gt;onClick&lt;/code&gt; ?&lt;br&gt;
Y’a plus de structure, plus d’ordre logique.&lt;br&gt;
T’as stylé un &lt;code&gt;&amp;lt;span&amp;gt;&lt;/code&gt; pour en faire un faux bouton ?&lt;/p&gt;

&lt;p&gt;Pour le lecteur d’écran, c’est du texte mort. Pire qu’un bug : un silence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;L’Accessibility Tree&lt;/strong&gt;, c’est là que tout pète ou tout brille.&lt;/p&gt;

&lt;p&gt;C’est pas un outil “bonus”.&lt;br&gt;
C’est ton test ultime.&lt;/p&gt;

&lt;p&gt;T’as beau avoir passé tous les checkers, si cet arbre est vide ou foireux… ton accessibilité est du flan.&lt;/p&gt;

&lt;p&gt;💡 L’erreur, c’est de croire que le HTML est visuel.&lt;br&gt;
&lt;strong&gt;Le HTML est sémantique.&lt;/strong&gt;&lt;br&gt;
Le CSS, c’est l’apparence.&lt;/p&gt;

&lt;p&gt;Mais le HTML, c’est la vérité brute.&lt;/p&gt;

&lt;p&gt;Et &lt;strong&gt;l’Accessibility Tree&lt;/strong&gt;, c’est son miroir audio.&lt;/p&gt;

&lt;p&gt;Le jour où j’ai compris ça, j’ai arrêté de shipper des composants juste parce qu’ils “avaient l’air bien”.&lt;/p&gt;

&lt;p&gt;Je suis allé voir comment ils sonnent.&lt;/p&gt;

&lt;p&gt;Et ça a tout changé.&lt;/p&gt;

&lt;p&gt;🔥 T’as déjà exploré cet arbre dans Chrome ou Firefox ?&lt;br&gt;
Tu l’utilises en debug régulier ? Ou c’est encore une zone floue pour toi ?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dis-moi comment tu l’exploites 👇&lt;/strong&gt;&lt;/p&gt;</content:encoded></item><item><title>Microsoft Inclusive Design Toolkit - Et si le handicap… c’était juste une variation de contexte ?/</title><link>https://papydev.fr/blog/134/</link><guid isPermaLink="true">https://papydev.fr/blog/134/</guid><pubDate>Fri, 25 Apr 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;strong&gt;Pas une “exception”.&lt;br&gt;
Pas un “cas limite”.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Juste… une situation différente, parfois temporaire, parfois permanente.&lt;/p&gt;

&lt;p&gt;C’est cette idée qui a tout déclenché chez Microsoft.&lt;/p&gt;

&lt;p&gt;Et qui a donné naissance au &lt;strong&gt;Inclusive Design Toolkit&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Un ensemble d’outils, de principes, de scénarios…&lt;/p&gt;

&lt;p&gt;Mais surtout une &lt;strong&gt;claque mentale&lt;/strong&gt; :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Tu ne conçois pas pour des utilisateurs handicapés,&lt;br&gt;
tu conçois pour tout le monde, &lt;em&gt;y compris&lt;/em&gt; eux.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Et ouais, &lt;strong&gt;ça change tout&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;💥 Ce toolkit, c’est pas un guide RGAA chiant.&lt;br&gt;
C’est un &lt;strong&gt;shift de mindset&lt;/strong&gt;.&lt;br&gt;
Tu passes de :&lt;br&gt;
&lt;em&gt;“On fera l’accessibilité à la fin”&lt;/em&gt;&lt;br&gt;
à&lt;br&gt;
&lt;em&gt;“On va penser inclusif dès le début.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Tu prends un persona ?&lt;/p&gt;

&lt;p&gt;Tu penses pas juste à son âge ou son device.&lt;br&gt;
Tu penses à sa &lt;strong&gt;mobilité&lt;/strong&gt;, sa &lt;strong&gt;perception&lt;/strong&gt;, sa &lt;strong&gt;cognition&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Tu crées un composant ?&lt;/p&gt;

&lt;p&gt;Tu l’imagines &lt;strong&gt;utilisable à une main&lt;/strong&gt;, en &lt;strong&gt;plein soleil&lt;/strong&gt;, &lt;strong&gt;avec les yeux fermés&lt;/strong&gt;.&lt;br&gt;
Tu fais pas ça pour “faire bien”.&lt;br&gt;
Tu fais ça parce que &lt;strong&gt;tout le monde a des moments de fragilité&lt;/strong&gt;.&lt;br&gt;
Et c’est là que ton design doit tenir bon.&lt;/p&gt;

&lt;p&gt;🛠 Le &lt;strong&gt;Microsoft Inclusive Design Toolkit&lt;/strong&gt; te donne des &lt;em&gt;cartes&lt;/em&gt;, des &lt;em&gt;exercices&lt;/em&gt;, des &lt;em&gt;principes&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Mais surtout : &lt;strong&gt;il t’apprend à observer&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Pas juste les users “dans la norme”.&lt;br&gt;
Mais &lt;strong&gt;tous les autres&lt;/strong&gt;. Ceux qu’on oublie. Ceux qu’on n’imagine même pas.&lt;/p&gt;

&lt;p&gt;💡 C’est pas juste un toolkit.&lt;/p&gt;

&lt;p&gt;C’est une &lt;strong&gt;invitation à devenir un meilleur humain&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Et accessoirement… un &lt;strong&gt;meilleur designer&lt;/strong&gt;, un &lt;strong&gt;meilleur dev&lt;/strong&gt;, un &lt;strong&gt;meilleur créateur d’expériences&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;🤔 T’as déjà bossé avec le Inclusive Design Toolkit ?&lt;br&gt;
Tu l’intègres à tes ateliers, à tes process de conception ?&lt;br&gt;
Ou c’est un truc que tu découvres ?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Partage ton retour ici 👇&lt;/strong&gt;&lt;/p&gt;
</content:encoded></item><item><title>Rust - Le langage qui voulait rendre impossible l&apos;impossible/</title><link>https://papydev.fr/blog/135/</link><guid isPermaLink="true">https://papydev.fr/blog/135/</guid><pubDate>Mon, 28 Apr 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;T&apos;as déjà entendu qu&apos;on pouvait avoir la vitesse du C... sans les bugs de mémoire ?&lt;/p&gt;

&lt;p&gt;Ouais, moi aussi j&apos;ai ri. Jusqu&apos;à ce que Rust débarque.&lt;/p&gt;

&lt;p&gt;Début des années 2010.&lt;br&gt;
Le monde du C/C++ règne en maître sur tout ce qui touche à la performance : OS, moteurs 3D, systèmes critiques.&lt;/p&gt;

&lt;p&gt;Mais derrière chaque projet, c&apos;est la même galère : segfault, buffer overflow, fuites mémoire... et une migraine permanente pour les devs.&lt;/p&gt;

&lt;p&gt;Les bugs de mémoire, c&apos;était pas juste chiant : c&apos;était une question de sécurité.&lt;/p&gt;

&lt;p&gt;Genre ton appli peut crasher ou être piratée juste parce que t&apos;as oublié de libérer un pointeur correctement. 🙃&lt;/p&gt;

&lt;p&gt;Mozilla s&apos;est dit : &quot;Et si on pouvait garder la puissance... sans la douleur ?&quot;&lt;br&gt;
C&apos;est là qu&apos;est né Rust.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rust a cassé les règles :&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Pas de garbage collector lourd comme en Java.&lt;/li&gt;
  &lt;li&gt;Pas de fuite de mémoire comme en C.&lt;/li&gt;
  &lt;li&gt;À la place, un truc révolutionnaire : &lt;strong&gt;le borrow checker&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Un système qui, à la compilation, garantit que ta mémoire est propre, sûre, et sans surprise.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Résultat ?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Zéro fuite mémoire ✅&lt;/li&gt;
  &lt;li&gt;Zéro crash débile ✅&lt;/li&gt;
  &lt;li&gt;Performances dignes de C++ ✅&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En gros, Rust t&apos;oblige à écrire du code sérieux, solide, fiable... même quand t&apos;as la flemme.&lt;/p&gt;

&lt;p&gt;Un peu comme un coach hardcore qui t&apos;empêche de bâcler ton travail. 💪&lt;/p&gt;

&lt;p&gt;Aujourd&apos;hui, Rust s&apos;impose partout :&lt;br&gt;
En backend (merci Tokio, Actix)&lt;br&gt;
En système embarqué&lt;br&gt;
En blockchain&lt;br&gt;
Même Microsoft et AWS y passent...&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pourquoi ?&lt;/strong&gt;&lt;br&gt;
Parce que sécurité + perfs, c’est la drogue dure des devs modernes.&lt;/p&gt;

&lt;p&gt;Envie d&apos;un langage qui t&apos;apprend la rigueur et qui t&apos;empêche de faire n&apos;importe quoi ?&lt;br&gt;
&lt;strong&gt;Apprends Rust. Ou subis-le. 😅&lt;/strong&gt;&lt;/p&gt;</content:encoded></item><item><title>Go - Un langage créé pour ne pas perdre ton temps... ni ta santé mentale/</title><link>https://papydev.fr/blog/136/</link><guid isPermaLink="true">https://papydev.fr/blog/136/</guid><pubDate>Tue, 29 Apr 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Tu penses que coder, c’est forcément galérer avec des builds interminables et des erreurs obscures ?&lt;/p&gt;

&lt;p&gt;T&apos;inquiète, t&apos;es pas le seul.&lt;br&gt;
Mais Go est arrivé avec une promesse : &lt;strong&gt;simple, rapide, efficace&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Début 2007, chez Google.&lt;/p&gt;

&lt;p&gt;Les devs en ont ras-le-bol.&lt;/p&gt;

&lt;p&gt;Java est verbeux.&lt;br&gt;
C++ est lourd et casse-gueule.&lt;br&gt;
Python est cool mais rame sévère en prod.&lt;/p&gt;

&lt;p&gt;Résultat ? Des projets lents à démarrer, des déploiements infernaux, et des burnouts à la pelle.&lt;/p&gt;

&lt;p&gt;Alors trois vétérans — &lt;strong&gt;Rob Pike, Ken Thompson, et Robert Griesemer&lt;/strong&gt; — se sont posés une vraie question :&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&quot;Et si on créait un langage qui arrête de se prendre la tête ?&quot;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Spoiler : ils l&apos;ont fait. &lt;strong&gt;Ça s&apos;appelle Go.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Go, c’est quoi ?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Un langage compilé, ultra rapide, avec une syntaxe qui tient sur un post-it.&lt;/li&gt;
  &lt;li&gt;Un écosystème minimaliste mais solide.&lt;/li&gt;
  &lt;li&gt;Et surtout : une compilation quasi instantanée, même sur de gros projets. 🚀&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Go a aussi inventé les &lt;strong&gt;goroutines&lt;/strong&gt; :&lt;/p&gt;

&lt;p&gt;Tu veux de la concurrence massive, genre 10 000 process en parallèle, sans prise de tête ?&lt;/p&gt;

&lt;p&gt;Tu lances des &lt;code&gt;goroutines&lt;/code&gt; et c’est plié.&lt;/p&gt;

&lt;p&gt;Pas besoin de gérer des threads complexes comme en C++ ou Java.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pourquoi ça a tout changé ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Parce que Go a permis à des milliers de startups (et pas que Google) de builder du solide, vite et sans galérer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Docker, Kubernetes, Terraform, Hugo...&lt;/strong&gt;&lt;br&gt;
Tous ces projets qui font tourner internet aujourd&apos;hui ?&lt;br&gt;
C&apos;est du Go sous le capot. 🔥&lt;/p&gt;

&lt;p&gt;Envie de développer rapide, propre et sans migraine ?&lt;br&gt;
Bienvenue chez Go. &lt;strong&gt;Pas de drama, que du shipping. 😎&lt;/strong&gt;&lt;/p&gt;</content:encoded></item><item><title>Elixir - Le langage qui t&apos;offre la scalabilité sans crise de nerfs/</title><link>https://papydev.fr/blog/137/</link><guid isPermaLink="true">https://papydev.fr/blog/137/</guid><pubDate>Wed, 30 Apr 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Faire tourner 10 utilisateurs ? Facile.&lt;br&gt;
1000 ? Ok.&lt;br&gt;
10 millions ? Là, beaucoup de stacks commencent à pleurer. 😬&lt;/p&gt;

&lt;p&gt;Sauf qu’&lt;strong&gt;Elixir&lt;/strong&gt; a été créé justement pour que &lt;strong&gt;rien ne casse&lt;/strong&gt;. Jamais.&lt;/p&gt;

&lt;p&gt;Début des années 2010.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;José Valim&lt;/strong&gt;, un développeur Ruby on Rails ultra chaud, bosse sur des applis qui doivent encaisser de la grosse charge.&lt;/p&gt;

&lt;p&gt;Mais Ruby, malgré tout son charme, commence à montrer ses limites :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Scalabilité compliquée&lt;/li&gt;
  &lt;li&gt;Temps de réponse qui explose&lt;/li&gt;
  &lt;li&gt;Gestion de la concurrence à l’arrache&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bref, c&apos;était pas l&apos;extase.&lt;/p&gt;

&lt;p&gt;Il décide alors de construire Elixir, en s’appuyant sur l’une des technos les plus sous-estimées du siècle :&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Erlang.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ouais, ce vieux langage créé par Ericsson dans les années 80 pour les centraux téléphoniques.&lt;br&gt;
Un langage capable de gérer des millions de connexions sans broncher.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Elixir, c’est quoi concrètement ?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Toute la solidité d’Erlang (VM BEAM)&lt;/li&gt;
  &lt;li&gt;La syntaxe douce et élégante de Ruby&lt;/li&gt;
  &lt;li&gt;Un focus total sur la concurrence massive et la tolérance aux pannes&lt;/li&gt;
  &lt;li&gt;Un framework web (&lt;strong&gt;Phoenix&lt;/strong&gt;) plus rapide que ton café ☕&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pourquoi ça a tout changé ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Parce qu&apos;avec Elixir, tu buildes des systèmes réactifs, scalables et résilients &lt;strong&gt;sans pleurer sur ta RAM ou ton CPU&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Envie de faire du temps réel ?&lt;br&gt;
Du traitement massif ?&lt;br&gt;
Construire un clone de WhatsApp ?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Elixir est ton meilleur pote.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Aujourd&apos;hui, Elixir est utilisé dans des systèmes critiques, du streaming, du paiement en temps réel, du SaaS costaud.&lt;br&gt;
Et le tout &lt;strong&gt;avec style&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Envie d&apos;un langage qui encaisse les coups sans jamais tomber KO ?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Teste Elixir.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;C&apos;est de l&apos;acier, mais en souriant. 😎&lt;/strong&gt;&lt;/p&gt;</content:encoded></item><item><title>Crystal - Écris comme en Ruby, compile comme en C/</title><link>https://papydev.fr/blog/138/</link><guid isPermaLink="true">https://papydev.fr/blog/138/</guid><pubDate>Thu, 01 May 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;T&apos;en as marre de choisir entre écrire vite ou exécuter vite ?&lt;br&gt;
&lt;strong&gt;Crystal&lt;/strong&gt;, lui, a décidé que t’aurais les deux.&lt;/p&gt;

&lt;p&gt;Début des années 2010.&lt;/p&gt;

&lt;p&gt;Les devs Ruby vivent leur meilleure vie... jusqu’au moment où leur app prend 1000 users en prod.&lt;/p&gt;

&lt;p&gt;Et là, c’est le drame :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Mémoire explosée 💥&lt;/li&gt;
  &lt;li&gt;CPU au bout de sa vie 🧠&lt;/li&gt;
  &lt;li&gt;Temps de réponse digne d&apos;un modem 56k 📞&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ruby est beau.&lt;br&gt;
Ruby est simple.&lt;br&gt;
Mais Ruby est lent.&lt;/p&gt;

&lt;p&gt;Trois développeurs argentins se posent une question simple :&lt;br&gt;
&lt;em&gt;“Et si on avait la syntaxe de Ruby... mais les perfs d&apos;un langage compilé ?”&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;Bam, Crystal est né. 🚀&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Crystal, c’est quoi concrètement ?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Syntaxe 95% compatible Ruby (quasi copier-coller)&lt;/li&gt;
  &lt;li&gt;Typage statique (mais sans sacrifier la douceur)&lt;/li&gt;
  &lt;li&gt;Compilation directe en binaire natif (comme du C)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En gros, tu codes vite, tu ship ultra-performant.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pourquoi c’est un game changer ?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Parce que t&apos;as plus besoin de choisir entre &lt;strong&gt;developer experience&lt;/strong&gt; et &lt;strong&gt;runtime performance&lt;/strong&gt;.&lt;br&gt;
Tu as les deux.&lt;/p&gt;

&lt;p&gt;Un backend web, une API REST, un microservice à la Go mais version plus sexy ?&lt;br&gt;
Crystal le fait.&lt;br&gt;
Et il compile tout ça en fichiers tout légers, tout rapides.&lt;/p&gt;

&lt;p&gt;Alors, c’est sûr, Crystal n’a pas encore la hype de Rust ou Go...&lt;br&gt;
Mais pour ceux qui aiment Ruby &lt;em&gt;et&lt;/em&gt; les perfs, c’est un petit bijou.&lt;br&gt;
(Et rien que pour le plaisir d’écrire sans lutter contre la syntaxe, ça vaut le détour.)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Envie d’écrire comme un poète et de runner comme un sprinteur ?&lt;/strong&gt;&lt;br&gt;
Bienvenue dans l’univers Crystal. ✨&lt;/p&gt;</content:encoded></item><item><title>ReasonML - Le langage qui voulait rendre JavaScript intelligent (et sans se battre avec lui)/</title><link>https://papydev.fr/blog/139/</link><guid isPermaLink="true">https://papydev.fr/blog/139/</guid><pubDate>Fri, 02 May 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;T’en as marre de casser ton appli à cause d&apos;une typo dans un objet ?&lt;br&gt;
De découvrir une erreur de &lt;code&gt;null&lt;/code&gt; au runtime à 3h du mat&apos; ?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ReasonML&lt;/strong&gt; voulait te sauver. Mais fallait être prêt.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Années 2016.&lt;/strong&gt;&lt;br&gt;
Facebook fait tourner des applis gigantesques : Messenger, Instagram, Facebook Web...&lt;br&gt;
Et JavaScript, malgré ses frameworks et ses bonnes intentions, reste... un peu freestyle :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Typage approximatif&lt;/li&gt;
  &lt;li&gt;Bugs silencieux&lt;/li&gt;
  &lt;li&gt;Débogage digne d’un escape game 🔥&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Alors Jordan Walke (le créateur de React, rien que ça) décide de remonter à la source :&lt;br&gt;
&lt;em&gt;“Et si on reconstruisait un JavaScript moderne... mais solide, typé et fiable dès la compile ?”&lt;/em&gt;&lt;br&gt;
&lt;strong&gt;Bam. ReasonML est lancé.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ReasonML, c’est quoi concrètement ?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Une syntaxe clean, inspirée d’OCaml (un vieux briscard du typage fort)&lt;/li&gt;
  &lt;li&gt;Une compilation ultra rapide&lt;/li&gt;
  &lt;li&gt;Un typage strict mais pas chiant&lt;/li&gt;
  &lt;li&gt;Une interop parfaite avec JavaScript&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En gros, tu codes en Reason, et ça te sort du JavaScript béton armé, prêt pour la prod.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pourquoi c&apos;était dingue ?&lt;/strong&gt;&lt;br&gt;
Parce qu’avec Reason, tu pouvais détecter &lt;strong&gt;99% de tes bugs à la compilation&lt;/strong&gt;.&lt;br&gt;
Pas besoin d’attendre que l’utilisateur te dise que ton bouton &quot;acheter&quot; plante.&lt;/p&gt;

&lt;p&gt;La promesse : &lt;strong&gt;coder plus vite, shipper plus sûr.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Alors, oui, ReasonML a eu une trajectoire bizarre :&lt;br&gt;
Pas assez sexy pour le grand public, mais il a inspiré la naissance de &lt;strong&gt;ReScript&lt;/strong&gt; (son fork actuel), et surtout, il a poussé tout l’écosystème JS vers &lt;strong&gt;TypeScript&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Sans Reason, pas sûr que TypeScript serait aussi mainstream aujourd&apos;hui.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Envie d’un langage qui te force à être propre dès le premier commit ?&lt;/strong&gt;&lt;br&gt;
ReasonML te regarde. Et il juge. 😎 Comme Maurice.&lt;/p&gt;</content:encoded></item><item><title>Google Analytics - Le début du tracking/</title><link>https://papydev.fr/blog/140/</link><guid isPermaLink="true">https://papydev.fr/blog/140/</guid><pubDate>Mon, 05 May 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Tu te souviens du web &lt;em&gt;avant&lt;/em&gt; Google Analytics ?&lt;br&gt;
Moi non plus. Et pourtant, c’était pas si loin.&lt;/p&gt;

&lt;p&gt;On parle d’un internet où tu balançais une page HTML,&lt;br&gt;
et tu priais pour que quelqu’un la trouve.&lt;br&gt;
Tu regardais les logs serveurs à la mano pour deviner&lt;br&gt;
si Jean-Michel était passé par là avec son modem 56k.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2005.&lt;/strong&gt;&lt;br&gt;
Google rachète Urchin Software.&lt;br&gt;
C’est la naissance de &lt;strong&gt;Google Analytics&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Un petit bout de JS posé dans ton &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;&lt;br&gt;
et &lt;strong&gt;BOOM&lt;/strong&gt; : tu voyais d’où venaient les gens,&lt;br&gt;
ce qu’ils cliquaient, combien de temps ils restaient.&lt;/p&gt;

&lt;p&gt;À l’époque, c’était une révolution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mais en vrai, pourquoi GA a cartonné ?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Parce que les autres outils étaient soit payants&lt;/li&gt;
  &lt;li&gt;Soit incompréhensibles&lt;/li&gt;
  &lt;li&gt;Soit… les deux.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Et surtout : personne n’avait vulgarisé l’idée de &lt;em&gt;« mesurer »&lt;/em&gt; ce qui se passe sur un site.&lt;br&gt;
Google, eux, ils avaient une autre vision.&lt;br&gt;
Ils te filaient ça gratos. &lt;strong&gt;En échange ? Tes datas, bien sûr.&lt;/strong&gt;&lt;br&gt;
Mais à l’époque, personne captait l’enjeu.&lt;br&gt;
On était trop occupés à baver sur nos taux de rebond.&lt;/p&gt;

&lt;p&gt;Ils ont flingué la concurrence en un claquement de doigt.&lt;br&gt;
Et au passage, ils ont redéfini ce que c’était de &lt;em&gt;« comprendre »&lt;/em&gt; ses utilisateurs.&lt;/p&gt;

&lt;p&gt;Aujourd’hui, GA s’est complexifié.&lt;br&gt;
&lt;strong&gt;GA4&lt;/strong&gt; t’envoie en PLS si t’es pas un peu dataviz dans l’âme.&lt;br&gt;
Mais faut le dire : &lt;strong&gt;c’est grâce à eux que la culture de la mesure est devenue un réflexe dans la tech&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Sans Google Analytics, le product marketing aurait 10 ans de retard.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;💬 T’as utilisé GA à l’ancienne, toi aussi ?&lt;br&gt;
Tu préférais l’UA ou t’as basculé sur GA4 sans pleurer ?&lt;br&gt;
Viens me raconter tes galères ou tes wins 👇&lt;/p&gt;</content:encoded></item><item><title>MixPanel - L&apos;engagement pas que l&apos;audience/</title><link>https://papydev.fr/blog/141/</link><guid isPermaLink="true">https://papydev.fr/blog/141/</guid><pubDate>Tue, 06 May 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;T’as déjà eu l’impression que &lt;strong&gt;Google Analytics&lt;/strong&gt;,&lt;br&gt;
c’était bien pour le trafic…&lt;br&gt;
mais &lt;em&gt;nul pour comprendre tes users&lt;/em&gt; ?&lt;/p&gt;

&lt;p&gt;C’est exactement ce que pensaient les mecs derrière &lt;strong&gt;Mixpanel&lt;/strong&gt;, en 2009.&lt;/p&gt;

&lt;p&gt;À l’époque, tout le monde était obsédé par &lt;strong&gt;les pages vues&lt;/strong&gt;.&lt;br&gt;
Mais dans les apps, les pages… ben y’en a pas tant que ça.&lt;br&gt;
Et surtout : &lt;strong&gt;ça ne raconte rien&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Savoir que 10 000 personnes sont venues, c’est cool.&lt;br&gt;
Savoir qu’elles ont cliqué sur “&lt;em&gt;Ajouter au panier&lt;/em&gt;”&lt;br&gt;
et qu’elles se sont barrées juste avant de payer…&lt;br&gt;
&lt;strong&gt;là on parle&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;👉 C’est là que Mixpanel entre en scène.&lt;/p&gt;

&lt;p&gt;Un outil pensé pour &lt;strong&gt;suivre des événements, pas des pages&lt;/strong&gt;.&lt;br&gt;
Chaque clic, chaque scroll, chaque action devient une data.&lt;br&gt;
Et toi, t’as les yeux rivés sur tes &lt;strong&gt;funnels&lt;/strong&gt;,&lt;br&gt;
à te demander pourquoi &lt;strong&gt;23%&lt;/strong&gt; des gens lâchent au step 3.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Le focus : l’engagement, pas juste l’audience.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ce n’était plus « &lt;em&gt;combien&lt;/em&gt; » de visiteurs.&lt;br&gt;
C’était : &lt;em&gt;qu’est-ce qu’ils foutent dans ton app&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Et pour les boîtes qui faisaient du SaaS ou du mobile, c’était un virage.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Tu pouvais tester une feature et voir si elle était utilisée.&lt;/li&gt;
  &lt;li&gt;Pas besoin de deviner, pas besoin d’attendre.&lt;/li&gt;
  &lt;li&gt;Un produit mort ? Tu le voyais direct.&lt;/li&gt;
  &lt;li&gt;Une feature qui cartonne ? Pareil.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Et franchement… c’est quoi le pire pour une app ?&lt;br&gt;
❌ Des gens qui partent…&lt;br&gt;
❌ Ou des gens qui restent et n’utilisent rien ?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mixpanel a donné des réponses.&lt;/strong&gt;&lt;br&gt;
Pas juste des chiffres.&lt;/p&gt;

&lt;p&gt;💬 T’en penses quoi toi ?&lt;br&gt;
Tu préfères du GA4 ou un bon vieux Mixpanel bien affûté ?&lt;br&gt;
T’es plutôt &lt;em&gt;dashboard événementiel&lt;/em&gt; ou tu restes sur tes acquis ?&lt;/p&gt;

&lt;p&gt;Et si t’es en train de builder une app mobile ou un SaaS…&lt;br&gt;
et que t’as jamais maté tes &lt;strong&gt;funnels&lt;/strong&gt;…&lt;br&gt;
🧐 T’attends quoi pour t’y mettre ?&lt;/p&gt;</content:encoded></item><item><title>Amplitude - le passage à l’âge adulte de la product analytics./</title><link>https://papydev.fr/blog/142/</link><guid isPermaLink="true">https://papydev.fr/blog/142/</guid><pubDate>Wed, 07 May 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;T’as déjà eu cette sensation chelou ?&lt;br&gt;
Genre t’as les &lt;strong&gt;chiffres&lt;/strong&gt;…&lt;br&gt;
mais &lt;em&gt;zéro réponse&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Tu sais que &lt;strong&gt;12%&lt;/strong&gt; de tes users cliquent sur ta feature.&lt;br&gt;
Mais &lt;em&gt;qui&lt;/em&gt; sont ces 12% ?&lt;br&gt;
&lt;em&gt;Pourquoi eux&lt;/em&gt; ?&lt;br&gt;
Et les autres ? Pourquoi ils &lt;strong&gt;décrochent&lt;/strong&gt; ?&lt;/p&gt;

&lt;p&gt;💡 C’est pile pour ça qu’en 2014, &lt;strong&gt;Amplitude&lt;/strong&gt; a débarqué.&lt;/p&gt;

&lt;p&gt;Parce que le “&lt;em&gt;quoi&lt;/em&gt;” ne suffisait plus.&lt;br&gt;
Il fallait comprendre le &lt;strong&gt;qui&lt;/strong&gt;, le &lt;strong&gt;quand&lt;/strong&gt;, le &lt;strong&gt;pourquoi&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;L’idée, c’est pas juste de &lt;em&gt;traquer des clics&lt;/em&gt;.&lt;br&gt;
C’est de &lt;strong&gt;cartographier des comportements&lt;/strong&gt;.&lt;br&gt;
Tirer des &lt;strong&gt;patterns&lt;/strong&gt;. Construire des &lt;strong&gt;cohortes&lt;/strong&gt;.&lt;br&gt;
Et surtout : &lt;em&gt;piger comment ton produit vit dans le temps&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Amplitude&lt;/strong&gt;, c’est le passage à l’âge adulte de la product analytics.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Tu veux savoir si les gens qui font l’onboarding le mardi à 16h reviennent plus que ceux du dimanche soir ? ✅ Tu peux.&lt;/li&gt;
  &lt;li&gt;Tu veux comparer les users qui utilisent ta feature X dans les 10 premières minutes avec ceux qui la découvrent au bout d’un mois ? ✅ Tu peux.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Amplitude, c’est l’analyse comportementale &lt;strong&gt;version product-led&lt;/strong&gt;.&lt;br&gt;
Une &lt;em&gt;machine à hypothèses&lt;/em&gt;.&lt;br&gt;
Un moyen de &lt;strong&gt;tester tes intuitions&lt;/strong&gt; au lieu de les subir.&lt;/p&gt;

&lt;p&gt;⚙️ C’est un outil pour les équipes produit &lt;strong&gt;qui pensent&lt;/strong&gt;.&lt;br&gt;
Pas juste celles qui mesurent.&lt;/p&gt;

&lt;p&gt;Et ouais, faut un peu se chauffer pour bien l’utiliser.&lt;br&gt;
Mais une fois que t’as capté la logique…&lt;br&gt;
&lt;strong&gt;ça te défonce la rétine tellement c’est clair&lt;/strong&gt;. 🧠&lt;/p&gt;

&lt;p&gt;💬 Tu t’es déjà fait embarquer dans un &lt;em&gt;tunnel de cohortes&lt;/em&gt; ?&lt;br&gt;
Ou t’es encore au stade “&lt;strong&gt;Google Analytics c’est déjà bien hein&lt;/strong&gt;” ?&lt;/p&gt;

&lt;p&gt;📊 T’es plutôt &lt;strong&gt;chiffres&lt;/strong&gt; ou &lt;strong&gt;hypothèses&lt;/strong&gt; ?&lt;br&gt;
Et si t’as jamais testé Amplitude…&lt;br&gt;
👀 t’as peut-être une feature qui dort sans que tu le saches.&lt;/p&gt;</content:encoded></item><item><title>Matomo - Ses analytics… sans vendre son âme à Google/</title><link>https://papydev.fr/blog/143/</link><guid isPermaLink="true">https://papydev.fr/blog/143/</guid><pubDate>Thu, 08 May 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;Tu veux des &lt;strong&gt;analytics&lt;/strong&gt;…&lt;br&gt;
mais tu veux pas &lt;em&gt;vendre ton âme à Google&lt;/em&gt; ?&lt;/p&gt;

&lt;p&gt;Alors t’as probablement croisé le chemin de &lt;strong&gt;Matomo&lt;/strong&gt;.&lt;br&gt;
Moi c’est ce que j’utilise pour mon site &lt;a href=&quot;https://papydev.fr&quot; target=&quot;_blank&quot;&gt;papydev&lt;/a&gt;.&lt;br&gt;
Et clairement : &lt;strong&gt;j’ai zéro envie de revenir en arrière&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Avant, ça s’appelait &lt;strong&gt;Piwik&lt;/strong&gt;, un projet open source lancé en 2007.&lt;br&gt;
Une sorte d’&lt;em&gt;OVNI&lt;/em&gt; à l’époque :&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;🔒 respect de la vie privée&lt;/li&gt;
  &lt;li&gt;📦 données hébergées chez toi&lt;/li&gt;
  &lt;li&gt;🕵️ zéro flicage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pendant que tout le monde hurlait au miracle avec Google Analytics,&lt;br&gt;
les mecs de Piwik disaient :&lt;br&gt;
&lt;em&gt;“Et si on pouvait tout mesurer… sans être espionné ?”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;C’était un peu les &lt;strong&gt;punks du web analytics&lt;/strong&gt;.&lt;br&gt;
Et franchement, ils avaient raison. ✊&lt;/p&gt;

&lt;p&gt;Avec &lt;strong&gt;Matomo&lt;/strong&gt;, tu sais où vont les données : &lt;strong&gt;chez toi&lt;/strong&gt;.&lt;br&gt;
Tu peux &lt;em&gt;auditer le code&lt;/em&gt;, le &lt;em&gt;déployer en self-hosted&lt;/em&gt;,&lt;br&gt;
et même &lt;strong&gt;respecter le RGPD&lt;/strong&gt; sans galérer.&lt;/p&gt;

&lt;p&gt;✅ Pas besoin de popup cookie à rallonge&lt;br&gt;
✅ Pas besoin de fouiller la doc pour savoir où partent les IPs&lt;br&gt;
✅ Pas besoin d’un compte Google, tout simplement&lt;/p&gt;

&lt;p&gt;Mais c’est pas juste une histoire de vie privée.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Matomo&lt;/strong&gt;, c’est aussi un outil solide :&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;📈 Analyse des visiteurs&lt;/li&gt;
  &lt;li&gt;🔥 Heatmaps&lt;/li&gt;
  &lt;li&gt;🧭 Funnels de conversion&lt;/li&gt;
  &lt;li&gt;🎯 Tracking d’événements&lt;/li&gt;
  &lt;li&gt;🔬 A/B testing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;Tout ce que tu cherches dans un GA4… mais sans la prise d’otage.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Sur &lt;a href=&quot;https://papydev.fr&quot; target=&quot;_blank&quot;&gt;papydev&lt;/a&gt;, j’ai besoin de savoir :&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;💡 ce qui marche&lt;/li&gt;
  &lt;li&gt;🚫 ce qui sert à rien&lt;/li&gt;
  &lt;li&gt;… sans transformer mes visiteurs en produit publicitaire&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Alors ouais, c’est peut-être un peu plus &lt;em&gt;roots&lt;/em&gt;.&lt;br&gt;
Mais au moins, &lt;strong&gt;c’est moi qui contrôle&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;🔍 Et toi, t’as déjà testé une alternative à Google Analytics ?&lt;br&gt;
T’es plutôt &lt;strong&gt;simplicité&lt;/strong&gt; ou &lt;strong&gt;souveraineté&lt;/strong&gt; ?&lt;/p&gt;

&lt;p&gt;👉 Si t’es dev ou maker, et que tu veux un outil d’analytics&lt;br&gt;
qui respecte ton projet &lt;strong&gt;autant que tes users&lt;/strong&gt;…&lt;br&gt;
&lt;em&gt;mate Matomo.&lt;/em&gt; Sérieux.&lt;/p&gt;</content:encoded></item><item><title>Snowplow - L&apos;artisanat des données/</title><link>https://papydev.fr/blog/144/</link><guid isPermaLink="true">https://papydev.fr/blog/144/</guid><pubDate>Fri, 09 May 2025 07:45:00 GMT</pubDate><content:encoded>&lt;p&gt;T’en as marre des dashboards imposés ?&lt;br&gt;Tu veux capter exactement ce que ton produit raconte,&lt;br&gt;au pixel près ?&lt;/p&gt;&lt;p&gt;Bienvenue dans le monde de Snowplow Analytics.&lt;br&gt;Créé en 2012, pour les data teams qui ont la dalle.&lt;br&gt;Le genre d’outil où tu collectes ce que tu veux,&lt;br&gt;comme tu veux,&lt;br&gt;où tu veux.&lt;/p&gt;&lt;p&gt;Snowplow, c’est pas un GA like.&lt;br&gt;C’est un framework pour builder ta propre stack analytics.&lt;br&gt;Tu veux tracker un clic sur le bouton “Commander”&lt;br&gt;uniquement si le user est connecté, sur mobile,&lt;br&gt;un mardi, avec une connexion 4G ?&lt;br&gt;Tu peux.&lt;/p&gt;&lt;p&gt;C’est de la donnée brute.&lt;br&gt;Pas transformée, pas interprétée.&lt;br&gt;Tu collectes les events, tu les balances dans ton warehouse&lt;br&gt;(BigQuery, Redshift, Snowflake…)&lt;br&gt;et c’est toi qui fais parler les chiffres.&lt;/p&gt;&lt;p&gt;À l’origine, Snowplow a été créé pour répondre à une frustration claire :&lt;br&gt;les outils classiques ne te donnent que ce qu’ils veulent bien te montrer.&lt;br&gt;Et souvent, c’est trop tard, mal structuré,&lt;br&gt;ou t’as pas le contexte business.&lt;/p&gt;&lt;p&gt;Snowplow, c’est pour ceux qui veulent leur propre vérité.&lt;br&gt;Pas des moyennes globales. Pas des métriques bullshit.&lt;br&gt;Tu construis ton pipeline,&lt;br&gt;tu récupères tes events en temps réel,&lt;br&gt;et tu fais ton analyse avec tes règles à toi.&lt;/p&gt;&lt;p&gt;Alors ouais, c’est technique.&lt;br&gt;Tu poses pas Snowplow entre deux cafés.&lt;br&gt;Mais si t’as une équipe data,&lt;br&gt;et que tu veux t’affranchir des boîtes noires,&lt;br&gt;c’est une pépite.&lt;/p&gt;&lt;p&gt;T’as déjà rêvé de tracker sans limite ?&lt;br&gt;Ou tu t’es déjà fait avoir par un outil qui “oublie” de te montrer un truc critique ?&lt;/p&gt;&lt;p&gt;Snowplow, c’est l’arme fatale des growth teams qui aiment la sueur.&lt;br&gt;Et si t’es prêt à plonger dans les entrailles de ta prod,&lt;br&gt;ça peut vraiment changer ta vision.&lt;/p&gt;</content:encoded></item></channel></rss>