L'IA s'est imposée dans de nombreux domaines, y compris le développement logiciel. Beaucoup de développeurs utilisent l'IA générative pour se faire aider dans leur code. Intéressons-nous au nouveau venu, Llama 3, et évaluons son utilité pour les développeurs C++.
Selon Meta, voici une brève description de Llama 3 :
Nos nouveaux modèles Llama 3 à 8 et 70 milliards de paramètres constituent un bond majeur par rapport à Llama 2 et établissent un nouvel état de l'art pour les LLM à ces échelles. Grâce aux améliorations du pré-entraînement et du post-entraînement, nos modèles pré-entraînés et affinés par instructions sont aujourd'hui les meilleurs modèles existants aux échelles de 8 et 70 milliards de paramètres. Les améliorations de nos procédures de post-entraînement ont sensiblement réduit les taux de refus abusifs, amélioré l'alignement et accru la diversité des réponses. Nous avons également constaté des capacités nettement améliorées, comme le raisonnement, la génération de code et le suivi d'instructions, ce qui rend Llama 3 plus facile à piloter.
Certains développeurs peuvent ne pas s'intéresser aux outils d'IA générative parce qu'ils estiment que les résultats ne sont pas encore assez aboutis. C'est particulièrement vrai des développeurs expérimentés, qui repèrent vite les points où le code généré pourrait être amélioré. Néanmoins, je pense que pour la plupart des développeurs, le code généré peut servir de point de départ précieux pour implémenter, refactoriser ou comprendre du code existant.
Voyons si Llama 3 est utile aux développeurs C++.
Écrire du nouveau code
Nous avons demandé à Llama 3 d'implémenter le problème du dîner des philosophes en C++ moderne, et le résultat est intéressant. Il exploite efficacement les fonctionnalités du C++ moderne, ce qui produit un code propre et compréhensible.
Cependant, nous nous sommes demandé si Llama 3 avait été entraîné à utiliser certaines des bibliothèques C++ les plus populaires. Pour le vérifier, nous lui avons demandé d'utiliser la bibliothèque Boost pour implémenter plusieurs algorithmes, et les résultats furent impressionnants. Llama 3 démontre une forte capacité à exploiter efficacement les fonctionnalités de Boost.
De même, nous avons testé la maîtrise de la bibliothèque Qt par Llama 3 en lui demandant d'implémenter un formulaire de connexion. Là encore, les résultats furent remarquables et ont démontré sa capacité à utiliser efficacement la bibliothèque Qt.
Refactorisation de code
Après avoir testé Llama 3 sur plusieurs extraits de code C++, nous avons constaté que ses capacités de refactorisation vont au-delà des tâches suivantes :
- Renommer des variables.
- Supprimer le code dupliqué.
- Reformater le code.
- Supprimer le code inutile.
- Moderniser le code C++.
Il peut aussi améliorer la conception en scindant les grandes méthodes en méthodes plus petites, rendant le code plus propre et plus facile à maintenir.
Expliquer du code existant
Comprendre du code C++ hérité est une tâche importante, en particulier pour les développeurs qui découvrent un projet C++. Demander à Llama 3 d'expliquer un morceau de code peut s'avérer très utile : il fournit une description détaillée de ce que fait le code.
Maîtriser les fonctionnalités du C++
Invité à présenter une fonctionnalité du C++, Llama 3 fournit une documentation concise accompagnée de nombreux exemples.
Conclusion
D'après nos tests, Llama 3 peut être un excellent assistant pour les développeurs C++. Il est utile pour des tâches comme l'écriture de nouveau code, la refactorisation, l'explication de code hérité et l'apprentissage des fonctionnalités du C++. À tous les développeurs C++, je recommande donc de l'essayer — vous pourriez être agréablement surpris par ses résultats.
