- On a demandé à GPT-4 une théorie unifiée du développement logiciel, ce qui a permis d’en extraire 10 principes directeurs (Tenets), ainsi que des exemples concrets
- Si l’on créait un langage de programmation à partir de cette idée, à quoi ressemblerait sa syntaxe ?
- Ce langage, baptisé directement par GPT-4 "TenetLang", combine une syntaxe de type Python avec des fonctionnalités issues des langages fonctionnels et orientés objet
- Une portée fondée sur l’indentation, similaire à Python
- Un typage fort grâce à l’inférence de types de TypeScript et Kotlin
- Des fonctions de première classe et des closures proches de JavaScript
- Des structures de données immuables par défaut, avec option mutable
- Une syntaxe lambda concise pour les fonctions anonymes
- Le pattern matching et la déstructuration de Haskell et Rust
- La prise en charge native de la concurrence avec
async/await et des threads légers
- Une FFI (Foreign Function Interface) pour l’interopérabilité avec d’autres langages
- Et si on l’améliorait pour l’adapter au calcul distribué ?
- Prise en charge d’une communication asynchrone et non bloquante grâce à des acteurs légers de type Erlang et Akka, ainsi qu’à des algorithmes intégrés de transmission de messages
- Bibliothèque ou framework intégré prenant en charge des protocoles RPC populaires comme gRPC et Apache Thrift
- Sérialisation et désérialisation via des formats comme JSON, BSON et Protocol Buffers
- Prise en charge de structures de données distribuées comme les tables de hachage distribuées (DHTs) ou des bases de données distribuées, pour le partage et la manipulation entre plusieurs nœuds
- Tolérance aux pannes via des arbres de supervision, des nouvelles tentatives automatiques, des timeouts, etc.
- Ajout de fonctionnalités au niveau du langage pour intégrer facilement des LLM comme GPT-3 ou ChatGPT
- Demande explicite sur la manière d’intégrer directement ce type de systèmes au niveau même du langage
- Questions sur d’autres fonctionnalités à ajouter : autocomplétion dans l’IDE, outils de refactoring, traduction code-vers-code, conception par reconnaissance de motifs, etc.
- Demande également sur la manière d’implémenter ces fonctionnalités
- Les 10 Tenets : modularité, abstraction, scalabilité, maintenabilité, testabilité, adaptabilité, performance, sécurité, collaboration, amélioration continue
1 commentaires
Pour être vraiment pratique, il faudrait sans doute que l’IA aille jusqu’à créer le compilateur. Dans ce cas, serait-ce encore une autre singularité ?