Обложка канала

☕️ Мерлин заваривает чай 🐌

1206 @teamerlin

Чай, гикнутые штуки и птички

☕️ Мерлин заваривает чай 🐌

4 года назад
Открыть в
Понравилась статья от @aorst о гибридном программировании с типами и ChatGPT andreyorst.gitlab.io/posts/2…y-around tl;dr Описываем на очень-очень высокоуровневом псевдокоде предметную область, а ИИ-помощник синтезирует для нас и доменные модели. По идее получается, гибко и быстро в написании, à la динамические языки типа Clojure. С другой стороны, ИИ-помощник может написать код и типы для языка довольно низкого уровня, после чего "классический" компилятор оптимизирует программу и выплюнет ещё более быстрый байт-код. Частично такой синтез типов из кода уже есть, правда не настолько продвинутый. Ниже на скриншотах есть пример как синтезирует type spec эликсировский dialyzer и Copilot. Причём dialyzer - это чисто алгоритмический инструмент, который выводит спецификацию по известным формальным правилам. Как по мне, это действительно перспективный подход, схожий с парным программированием: один участник генерирует идеи, а другой тут же их прототипирует. Генератор идей корректирует свои концепции, писатель подправляет свой код и так далее. В общем и целом, своё взаимодействие с ИИ-помощником я вижу вот так: есть код, а сбоку открыта помесь чата и REPLа. Для каждой строки кода я могу открыть свой экземпляр такого REPLа и обсудить её с помощником. И это обсуждение обязательно нужно сохранить в текстовый файлик в систему контроля версий :3
Compilers should write types for programmers, not the other way around

Note: I’m not an expert in type systems, and my knowledge of compilers is limited. This is more of an actual random thought I had for some time, and I’ve just decided to capture it here, not to be used as an argument on static vs dynamic types.

andreyorst.gitlab.io