banner
Maison / Nouvelles / L'avenir de la programmation : IA et interface
Nouvelles

L'avenir de la programmation : IA et interface

Jul 13, 2023Jul 13, 2023

Éric Elliott

Suivre

Scène JavaScript

--

2

Écouter

Partager

Les modèles de langage d'IA, tels que ChatGPT et Claude, permettent à quiconque de créer des logiciels. Ces modèles peuvent comprendre intelligemment les problèmes, créer des solutions et expliquer les solutions. Mais le langage naturel n’est pas toujours le meilleur moyen de communiquer avec l’IA. Si vous avez besoin de suivre des données complexes et de définir la manière dont vous interagissez avec ces données de manière spécifique, SudoLang peut vous aider.

Si vous pensez que cela ne servira qu’au code de l’IA, détrompez-vous. Vous pouvez créer n'importe quel programme dans SudoLang, puis le transpiler dans d'autres langages, comme JavaScript, Python, Rust ou C, afin de pouvoir profiter de ces fonctionnalités quel que soit le type de logiciel que vous créez.

SudoLang est un langage de programmation conçu pour collaborer avec des modèles de langage d'IA, notamment ChatGPT, Bing Chat, Anthropic Claude et Google Bard. Il est conçu pour être facile à apprendre et à utiliser. C’est aussi très expressif et puissant.

Tous les modèles de langage avancés le comprennent sans aucune invite particulière. Vous n'avez pas besoin de coller la spécification SudoLang avant d'utiliser SudoLang avec votre IA préférée.

Veuillez lire la documentation SudoLang pour plus d'informations sur le langage.

Programmation orientée interfacevous permet de structurer votre programme et de déclarer facilement ce que vous souhaitez que l'IA suive et comment vous souhaitez interagir avec elle.

Les interfaces sont un outil puissant pour encapsuler l’état, les contraintes, les commandes et les fonctions associés. Ils organisent le code de manière claire, compréhensible et réutilisable.

Les principales fonctionnalités des interfaces dans SudoLang incluent :

Voici un exemple simple :

HelloCounter est une interface avec deux variables d'état : message et count. Il a une contrainte qui maintient la valeur du compte inférieure ou égale à 10. /increment est une commande qui incrémente le compte de 1.

Voyons ce qui se passe avec ChatGPT 3.5 :

Ce programme fonctionne également dans Claude2. De nombreux autres modèles de langage d'IA ne sont pas suffisamment sophistiqués pour exécuter des programmes SudoLang. Par exemple, Google Bard oublie de respecter les contraintes, et les petits modèles OSS comme LLaMA2 ont du mal à suivre correctement toutes les instructions. Pour l'instant, je recommande d'utiliser GPT-4 pour créer et exécuter des programmes SudoLang complexes.

SudoLang prend en charge la composition d'interface pour créer des structures plus complexes. Cette approche favorise la modularité, favorise la réutilisation du code et facilite le raisonnement sur le programme. Voici un exemple de composition :

La composition permet de séparer les données de quête, les données d'histoire et les données des joueurs en interfaces logiques, tandis que State les rassemble dans la représentation complète de l'état du jeu.

Note: Certaines fonctionnalités intéressantes de SudoLang sont exposées ici. Tout d’abord, les interfaces sont typées. Si vous ne spécifiez pas de types pour les propriétés d'interface, l'IA les déduit. Dans ce cas, Player.State et Friends partagent tous deux le type de personnage (non affiché). Nous utilisons la syntaxe littérale de l'interface pour fournir un nom de joueur par défaut.

Les langages traditionnels basés sur les classes comme Java ou C# utilisent l'héritage pour modéliser « est-un » des relations. Mais "est-un"les relations sont rarement le moyen idéal pour modéliser un logiciel et conduisent souvent à de la confusion et à des complications.

D’un autre côté, la composition représente « has-a » relations et constitue un moyen de combiner des composants simples pour créer des interfaces composites plus complexes. La composition est généralement favorisée par rapport à l'héritage de classe car :

Grâce à sa nature orientée interface et compositionnelle, SudoLang permet des structures de code flexibles, modulaires et réutilisables, offrant des avantages significatifs par rapport à l'héritage de classe traditionnel.

L'héritage de classe était une expérience ratée de réutilisation de code qui se terminait fréquemment par une duplication forcée de code causée par les problèmes courants et bien connus suivants :

Pour cette raison, SudoLang n'utilise pas l'héritage de classe et le linter SudoLang signalera les erreurs et suggérera des correctifs si vous essayez de l'utiliser. Pour comprendre pourquoi, approfondissons un peu ces problèmes :