9 points par xguru 2024-04-05 | 1 commentaires | Partager sur WhatsApp

Visualisation et explication des dernières tendances dans les domaines des techniques, outils, plateformes, langages de développement et frameworks, selon quatre niveaux : Hold/Assess/Trial/Adopt

Licences de code source « ouvertes-ish »

  • L’écosystème de développement des logiciels open source s’est appuyé pendant longtemps sur l’ensemble de licences cataloguées par l’OSI (Open Source Initiative)
  • Ces dernières années, l’environnement des licences open source évolue, car il arrive que des fonctionnalités clés d’outils largement utilisés deviennent soudainement payantes
  • Payer pour un logiciel n’est pas un problème en soi, mais le fait que des fonctionnalités essentielles d’outils soutenus par un écosystème mature deviennent subitement payantes en est un
  • On voit aussi apparaître des logiciels présentés comme open source, alors que leurs fonctions de base ne sont disponibles qu’après paiement d’un abonnement ou d’autres frais
  • Il est recommandé d’accorder une attention particulière aux questions de licence
  • Il faut vérifier que tous les fichiers sont bien couverts par la licence définie au niveau supérieur

Équipes de développement logiciel assistées par l’IA

  • L’IA peut apporter progressivement des avantages dans tous les aspects du développement logiciel, et elle pousse activement l’innovation sur l’ensemble du cycle de développement
  • Les nouvelles capacités offertes par l’IA s’accompagnent aussi de nouveaux risques pour la qualité et la sécurité des logiciels ; il faut donc rester vigilant face aux risques potentiels, y compris du côté des non-développeurs

Nouveaux patterns d’architecture pour les LLM

  • Avec l’augmentation de l’usage des LLM (Large Language Models), des patterns d’architecture spécifiques commencent à émerger pour répondre aux cas d’usage courants
    • NeMo Guardrails : permet de mettre en place des politiques de gouvernance pour l’usage des LLM
    • Langfuse : améliore la visibilité sur les étapes qui mènent à la sortie d’un LLM, ainsi que sur les moyens de traiter et valider des bases de code hypertrophiées remplies de code généré
  • Dans l’écosystème enterprise, le RAG (retrieval-augmented generation) est le pattern privilégié pour améliorer la qualité des sorties des LLM
  • À mesure que l’IA générative continue de s’infiltrer dans le développement logiciel, on peut s’attendre à une explosion des patterns — et des anti-patterns inévitables

Rapprocher les PR d’une vraie CI (Dragging PRs closer to proper CI)

  • Thoughtworks soutient depuis longtemps les boucles de feedback rapides et l’intégration continue (CI)
  • Récemment, l’obligation de passer par des pull requests (PR) a conduit beaucoup d’équipes à négliger la partie CI de CI/CD
  • Les PR ont été conçues pour gérer de grandes équipes open source distribuées et des contributeurs non fiables, mais elles sont devenues synonymes de revue par les pairs même dans de petites équipes de delivery très soudées
  • Les développeurs aspirent à retrouver le même flow que celui obtenu avec une vraie CI
  • Plusieurs outils visant à atténuer la douleur du processus de revue des PR ont été étudiés, comme gitStream ou les merge queues de GitHub
  • L’augmentation du débit de code due aux assistants de code IA tend à produire des PR plus volumineuses, ce qui met encore plus de pression sur les processus de revue de code asynchrones
  • Il est recommandé aux équipes qui ne peuvent pas utiliser la CI à cause de contraintes externes de chercher des moyens d’améliorer la précision de l’intégration et la rapidité des cycles de feedback

[Techniques]

Adopt

  1. Retrieval-augmented generation (RAG)

Trial

  1. Automatically generate Backstage entity descriptors
  2. Combiner le NLP traditionnel avec les LLM
  3. Conformité continue
  4. Edge functions - Cloudflare Workers
  5. Security champions
  6. Text to SQL - Vanna.ai
  7. Suivre la santé plutôt que la dette

Assess

  1. Assistants d’équipe IA
  2. Analyse de graphes pour les chats adossés à des LLM
  3. ChatOps adossé à des LLM
  4. Agents autonomes propulsés par des LLM - AutoGen
  5. Utiliser la GenAI pour comprendre des bases de code legacy - Bloop
  6. VISS

Hold

  1. Tests d’intégration trop larges
  2. Usage trop enthousiaste des LLM
  3. Se précipiter vers le fine-tuning des LLM
  4. Web components pour les applications web SSR

[Platforms]

Adopt

  1. CloudEvents

Trial

  1. Arm dans le cloud
  2. Azure Container Apps
  3. Azure OpenAI Service
  4. DataHub - Tout sur la Data Discovery Platform (DDP)
  5. Plateformes d’orchestration d’infrastructure
  6. Pulumi
  7. Rancher Desktop
  8. Weights & Biases

Assess

  1. Bun
  2. Chronosphere
  3. DataOS
  4. Dify
  5. Elasticsearch Relevance Engine
  6. FOCUS
  7. Gemini Nano
  8. HyperDX
  9. IcePanel
  10. Langfuse
  11. Qdrant
  12. RISC-V pour l’embarqué
  13. Tigerbeetle
  14. WebTransport
  15. Zarf
  16. ZITADEL

[Tools]

Adopt

  1. Conan
  2. Kaniko
  3. Karpenter

Trial

  1. 42Crunch API Conformance Scan
  2. actions-runner-controller
  3. Android Emulator Container
  4. AWS CUDOS
  5. aws-nuke
  6. Bruno
  7. Develocity
  8. GitHub Copilot
  9. Gradio
  10. Gradle Version Catalog
  11. Maestro
  12. Microsoft SBOM tool
  13. Open Policy Agent (OPA)
  14. Runner GitHub auto-hébergé de Philips
  15. Pop
  16. Renovate
  17. Terrascan
  18. Velero

Assess

  1. aider
  2. Akvorado
  3. Baichuan 2
  4. Cargo Lambda
  5. Codium AI
  6. Continue
  7. Fern Docs
  8. Granted
  9. LinearB
  10. LLaVA
  11. Marimo
  12. Mixtral
  13. NeMo Guardrails
  14. Ollama
  15. OpenTofu
  16. QAnything
  17. System Initiative
  18. Tetragon
  19. Winglang

[Languages & Frameworks]

Trial

  1. Astro
  2. DataComPy
  3. Pinia
  4. Ray

Assess

  1. Android Adaptability
  2. Concrete ML
  3. Crabviz
  4. Crux
  5. Databricks Asset Bundles
  6. Electric
  7. LiteLLM
  8. LLaMA-Factory
  9. MLX
  10. Mojo
  11. Otter
  12. Pkl
  13. Rust for UI
  14. vLLM
  15. Voyager
  16. WGPU
  17. Zig

Hold

  1. LangChain - LangChain n’a pas de sens, Les problèmes de LangChain