프로그래밍의 미래: AI와 인터페이스
에릭 엘리엇
따르다
자바스크립트 장면
--
2
듣다
공유하다
ChatGPT 및 Claude와 같은 AI 언어 모델은 누구나 소프트웨어를 만들 수 있도록 지원합니다. 이러한 모델은 지능적으로 문제를 이해하고, 솔루션을 만들고, 솔루션을 설명할 수 있습니다. 그러나 자연어가 AI와 소통하는 가장 좋은 방법은 아닙니다. 복잡한 데이터를 추적하고 특정 방식으로 해당 데이터와 상호 작용하는 방법을 정의해야 하는 경우 SudoLang이 도움이 될 수 있습니다.
이것이 AI 코드에만 도움이 될 것이라고 생각한다면 다시 생각해보세요. SudoLang에서 모든 프로그램을 작성한 다음 JavaScript, Python, Rust, C 등의 다른 언어로 변환할 수 있으므로 어떤 종류의 소프트웨어를 구축하든 이러한 기능을 활용할 수 있습니다.
SudoLang은 ChatGPT, Bing Chat, Anthropic Claude 및 Google Bard를 포함한 AI 언어 모델과 협업하도록 설계된 프로그래밍 언어입니다. 쉽게 배우고 사용할 수 있도록 설계되었습니다. 또한 표현력이 뛰어나고 강력합니다.
모든 고급 언어 모델은 특별한 메시지 없이도 이를 이해합니다. 즐겨 사용하는 AI와 함께 SudoLang을 사용하기 전에 SudoLang 사양을 붙여넣을 필요가 없습니다.
언어에 대한 자세한 내용은 SudoLang 설명서를 읽어보세요.
인터페이스 지향 프로그래밍프로그램을 구성하고 AI가 추적하기를 원하는 내용과 AI와 상호 작용하는 방법을 쉽게 선언할 수 있습니다.
인터페이스는 관련 상태, 제약 조건, 명령 및 기능을 캡슐화하는 강력한 도구입니다. 명확하고 이해하기 쉽고 재사용 가능한 방식으로 코드를 구성합니다.
SudoLang 인터페이스의 주요 기능은 다음과 같습니다.
간단한 예는 다음과 같습니다.
HelloCounter는 메시지와 개수라는 두 가지 상태 변수가 있는 인터페이스입니다. 카운트 값을 10 이하로 유지하는 제약 조건이 하나 있습니다. /increment는 카운트를 1씩 증가시키는 명령입니다.
ChatGPT 3.5를 사용하면 어떤 일이 일어나는지 살펴보겠습니다.
이 프로그램은 Claude2에서도 작동합니다. 다른 많은 AI 언어 모델은 SudoLang 프로그램을 실행할 만큼 정교하지 않습니다. 예를 들어 Google Bard는 제약 조건을 준수하는 것을 잊어버리고 LLaMA2와 같은 소규모 OSS 모델은 모든 지침을 올바르게 따르기 위해 고군분투합니다. 지금은 복잡한 SudoLang 프로그램을 빌드하고 실행하려면 GPT-4를 사용하는 것이 좋습니다.
SudoLang은 보다 복잡한 구조를 생성하기 위한 인터페이스 구성을 지원합니다. 이 접근 방식은 모듈성을 촉진하고 코드 재사용을 촉진하며 프로그램에 대한 추론을 더 쉽게 만듭니다. 다음은 구성의 예입니다.
구성을 통해 퀘스트 데이터, 스토리 데이터 및 플레이어 데이터를 논리적 인터페이스로 분리할 수 있으며, State는 이를 전체 게임 상태 표현으로 통합합니다.
메모: 여기에는 SudoLang의 몇 가지 멋진 기능이 표시되어 있습니다. 먼저 인터페이스가 유형화됩니다. 인터페이스 속성의 유형을 지정하지 않으면 AI가 이를 추론합니다. 이 경우 Player.State와 Friends는 모두 Character 유형을 공유합니다(표시되지 않음). 기본 플레이어 이름을 제공하기 위해 인터페이스 리터럴 구문을 사용합니다.
Java 또는 C#과 같은 기존 클래스 기반 언어는 상속을 사용하여 "is-a"를 모델링합니다. 관계. 하지만 "is-a"관계는 소프트웨어를 모델링하는 이상적인 방법이 아니며 종종 혼란과 복잡성을 초래합니다.
반면에 구성은 "has-a"를 나타냅니다. 관계를 형성하며 단순한 구성 요소를 결합하여 보다 복잡한 복합 인터페이스를 만드는 방법입니다. 구성은 일반적으로 다음과 같은 이유로 클래스 상속보다 선호됩니다.
인터페이스 지향적이고 구성적인 특성 덕분에 SudoLang은 유연하고 모듈식이며 재사용 가능한 코드 구조를 가능하게 하여 기존 클래스 상속에 비해 상당한 이점을 제공합니다.
클래스 상속은 다음과 같은 일반적이고 잘 알려진 문제로 인해 강제 코드 중복으로 자주 종료되는 코드 재사용 실험에 실패했습니다.
이러한 이유로 SudoLang은 클래스 상속을 사용하지 않으며 SudoLang Linter는 이를 사용하려고 하면 오류를 보고하고 수정 사항을 제안합니다. 이유를 이해하기 위해 해당 문제에 대해 좀 더 자세히 살펴보겠습니다.