Accéder au contenu
  • Blogue

Innovations clés en développement logiciel : perspectives de ConFoo 2024

20 mars — 2024

Cesar Cipelli
Développeur logiciel

Notre participation à ConFoo 2024 nous a offert une fenêtre sur certaines tendances du développement logiciel, mais plus qu'un simple compte-rendu d'événement, cet article vise à explorer les implications de ces innovations pour l'avenir du développement logiciel.

De l'intégration avancée de l'intelligence artificielle avec des outils comme GPT et les avancées dans les protocoles de communication avec QUIC et HTTP/3, à l'exploitation du potentiel de WebAssembly pour des applications web plus performantes et l'adoption d'architectures web modulaires et observables, ces sujets tracent un chemin vers une transformation du développement. Ces avancées ne sont pas isolées ; elles s'entremêlent pour façonner un avenir où la rapidité, l'efficacité, et la flexibilité du développement logiciel ne sont plus des atouts, mais des nécessités.



Renforcement des réponses LLM avec RAG et routeurs sémantiques : une nouvelle ère d'intégration

Dans le secteur du développement logiciel, l'exploitation des modèles de langage à grande échelle (LLMs) se distingue par deux méthodologies : le fine-tuning et le Retrieval Augmented Generation (RAG). Le RAG enrichit les réponses des LLMs en intégrant un contexte spécifique via une base de connaissances, améliorant ainsi précision et pertinence. Néanmoins, la propension des LLMs à produire des réponses erronées sans contexte adéquat pose problème. L'innovation des « semantic routers » offre une solution en vérifiant la présence du contexte nécessaire avant de traiter la requête, évitant les réponses inexactes et économisant des ressources.

La plateforme LangChain facilite cette intégration, permettant la connexion à divers LLMs tels que ceux d'OpenAI ou des versions locales comme Mistral ou Llama. Cette approche souligne l'importance de l'expérimentation dans un domaine en évolution rapide, où l'adoption de nouvelles technologies est essentielle pour créer des applications plus adaptées et efficaces.

Source : LangChain - LangChain helps connect LLMs to your company’s private sources of data and APIs to create context-aware, reasoning applications.

QUIC et HTTP/3 : surmonter les limites de TCP pour une performance web accrue

Le passage de HTTP/2 à HTTP/3, avec l'adoption du protocole QUIC, représente une évolution pour les usagers des réseaux avec une bande passante réduite. Bien que HTTP/2 ait apporté des améliorations significatives, plusieurs défis demeurent en raison de sa dépendance au protocole TCP. Ces problèmes incluent :

  • Blocage en tête de file (head of line blocking) : Ce phénomène limite les performances en cas de perte de paquets, affectant la fluidité de la navigation.
  • Latences lors des changements de réseau : Lors d'un changement de réseau, des périodes de latence nuisent à l'expérience utilisateur, particulièrement dans un contexte de mobilité accentué.
  • Mise à jour difficile de la pile réseau : La pile réseau, étant intégrée à l'OS, est complexe à mettre à jour, freinant l'adoption de nouvelles normes.
  • Problèmes de contrôle de congestion : Le contrôle de congestion de TCP peut être inefficace dans des environnements réseau fluctuants, réduisant ainsi la performance globale.


Ces limitations ont stimulé le développement de QUIC par Google, une ré-implémentation de TCP sur UDP visant à surmonter ces obstacles. En se situant dans l'espace utilisateur plutôt que dans l'espace géré par l’OS, QUIC facilite les mises à jour et améliore la flexibilité et la sécurité des échanges sur le web, marquant une étape significative vers une expérience utilisateur optimisée.

Source : https://http.dev/3

QUIC apporte des améliorations significatives :

  • Résidence dans l'espace utilisateur : Contrairement à TCP, QUIC est géré hors de l'espace noyau, simplifiant les mises à jour et améliorant la flexibilité.
  • Intégration avec HTTP/3 et TLS 1.3 : QUIC fonctionne de concert avec HTTP/3 pour des requêtes plus efficaces et sécurisées, utilisant la compression QPACK et assurant un cryptage dès la première requête.
  • Amélioration des performances sur appareils lents : Les tests montrent une augmentation de performance jusqu'à 14% sur les appareils plus lents, un avantage notable dans un écosystème de plus en plus connecté par la 5G.


Cependant, il est important de noter que les améliorations de performance entre HTTP/2 et HTTP/3 ne sont pas toujours évidentes sur des appareils plus rapides. Dans un monde où les changements de réseau deviennent plus fréquents, notamment avec la 5G, QUIC et HTTP/3 offrent des solutions adaptées pour une meilleure expérience web.



WebAssembly : élargir les horizons du développement web et de l'efficacité logicielle

WebAssembly (WA), depuis son avènement, a transcendé son rôle initial de cible de compilation pour devenir un standard reconnu par le W3C. Cette évolution marque un tournant significatif, non seulement dans le développement web, mais aussi dans l'intégration de technologies web dans des environnements plus vastes. L'introduction de WASI (WebAssembly System Interface) par la ByteCode Alliance est particulièrement notable. WASI élargit le champ d'application de WA au-delà des navigateurs web pour inclure des plateformes telles que NodeJS, Docker, et Kubernetes. Cette extension permet des innovations majeures, telles que la création d'images Docker considérablement réduites en taille – mesurées en kilo-octets plutôt qu'en méga-octets – en éliminant le besoin de bases de classes Linux standard.

L'impact de WA sur le web est significatif, en permettant l'accès à des opérations SIMD (Single Instruction, Multiple Data). Cela ouvre la voie à des applications web gourmandes en ressources, comme les applications graphiques et scientifiques, qui bénéficient directement de cette capacité accrue à effectuer des calculs parallèles. Cette avancée technique signifie que les développeurs et développeuses peuvent maintenant créer des applications web plus performantes, efficaces et avec des exigences matérielles réduites.



Bonus : Flexibilité architecturale et observabilité approfondie

En complément des tendances majeures identifiées lors de ConFoo, deux autres sujets ont également capté notre attention.

L'évolution vers des architectures web composites marque un tournant décisif dans la manière de concevoir des expériences numériques. En séparant le contenu (via des Headless CMS comme Contentful) de la présentation et en adoptant des technologies serverless et des frameworks avant-gardistes (Nuxt, Next.js, Netlify), on assiste à une nette progression vers une plus grande modularité et agilité. Ce mouvement vers des architectures plus flexibles et évolutives permet une réponse rapide aux changements, tout en offrant une expérience utilisateur améliorée.

Par ailleurs, l'accent mis sur l'observabilité à travers l'adoption d'outils compatibles avec OpenTelemetry, tels que Jaeger et Zipkin, révèle une prise de conscience quant à l'importance de la surveillance et du traçage dans le développement logiciel. Cette approche améliore significativement la capacité à surveiller, diagnostiquer et résoudre les problèmes au sein des applications, renforçant ainsi leur fiabilité et performance.


Notre passage à ConFoo 2024 a agi comme un catalyseur, nous permettant de saisir l'importance des dernières innovations en développement logiciel. Un grand merci à tous ceux et celles qui ont contribué à faire de Confoo une source d'inspiration riche en découvertes qui nous rappellent l'importance de rester connecté·es avec la communauté et ouvert·es aux nouvelles idées. Nous sommes impatient·es de mettre en pratique les connaissances acquises et d'explorer comment elles peuvent enrichir et orienter nos projets à venir.

00:00
00:00

Switching to English