Разработчик создает язык программирования GALA с помощью Claude Code, отмечая, что строгая типизация повышает надежность кода, сгенерированного ИИ.

Что такое GALA?
GALA — это функциональный язык программирования, который транслируется в Go, разработанный с использованием Claude Code на протяжении всего процесса. Транспайлер написан на Go, а GALA добавляет несколько функций к Go, сохраняя совместимость с библиотеками Go, отладку с delve и профилирование с pprof. Проект является бесплатным и открытым исходным кодом под лицензией Apache 2.0.
Ключевые особенности GALA
- Запечатанные типы (алгебраические типы данных)
- Исчерпывающее сопоставление с образцом
- Неизменяемость по умолчанию
- Монады:
Option[T],Either[A,B],Try[T] - Транслируется в обычный код Go
Как Claude Code помог в разработке
Claude Code написал значительные части транспайлера, включая:
- Преобразование дерева разбора ANTLR в AST Go
- Правила вывода типов
- Генерацию кода для запечатанных типов
- Вывод типов параметров лямбда-выражений
Claude также реализовал сценарии боевого тестирования, где он писал программы на GALA (HTTP-серверы, конвейеры данных, пулы воркеров), чтобы нагрузить транспайлер и выявить ошибки. Более 40 ошибок были найдены и исправлены таким образом, причём Claude Code писал как тестовые примеры для воспроизведения, так и исправления.
Ключевое наблюдение о строгой типизации и Claude
Разработчик заметил, что когда Claude пишет код на GALA, компилятор обнаруживает ошибки, которые в Go прошли бы незамеченными. Например, с определением запечатанного типа:
sealed type Result[T any] {
case Ok(Value T)
case Err(Message string)
}
Если вы напишете сопоставление, забыв вариант:
val msg = result match {
case Ok(v) => fmt.Sprintf("got %d", v)
// Ой — забыли case Err(msg)
}
Компилятор GALA сразу же отклоняет это. В Go switch с отсутствующим случаем скомпилировался бы нормально. Claude иногда пропускает случаи при генерации кода на Go, но в GALA компилятор немедленно обнаруживает эти ошибки.
Почему это важно для пользователей Claude Code
- Исчерпывающее сопоставление: Компилятор сообщает Claude, когда случай не обработан
- Неизменяемость по умолчанию: Меньше случайных ошибок мутации в сгенерированном коде
- Вывод типов: Claude пишет
list.Map((x) => x * 2)вместо многословных аннотаций типов, уменьшая поверхность для ошибок - Монадическая обработка ошибок:
Try[T].Map().FlatMap().Recover()вместо цепочекif err != nil, которые Claude иногда ошибается
GALA доступен для тестирования с предварительно собранными бинарными файлами для Linux/macOS/Windows или через онлайн-песочницу в браузере.
📖 Read the full source: r/ClaudeAI
👀 Смотрите также

Расширение Chrome Cowork автоматизирует удаление личных данных у брокеров данных
Пользователь Reddit сообщает, что использование расширения Cowork для Chrome с подключением Gmail позволило автоматизировать заполнение форм, написание писем и проверку запросов на удаление личных данных у крупных поставщиков данных всего за несколько часов.

MOOSE-Star: Модель на 7B параметров и набор данных из 108 000 статей для открытия научных гипотез – ICML 2026
MiroMind выпускает MOOSE-Star на Hugging Face: модель на 7B параметров (дообучение DeepSeek-R1-Distill-Qwen-7B) для открытия научных гипотез вместе с набором данных TOMATO-Star из 108 тыс. статей. Бенчмарк показывает, что MS-7B достигает 54,34% точности поиска вдохновляющих работ, превосходя GPT-5.4 и приближаясь к Gemini-3 Pro.

OpenClaw Client добавляет отслеживание стоимости API в реальном времени, лимиты расходов и детальные настройки агентов
В клиенте OpenClaw теперь доступен интерфейс отслеживания использования в реальном времени с круговыми индикаторами прогресса, лимитами расходов на агента, управлением подчиненными агентами, переключением навыков и сменой моделей от разных провайдеров.

Clavis MCP Server: Безопасное управление учетными данными для Claude Desktop
Clavis — это MCP-сервер, который управляет API-ключами и OAuth-токенами для Claude Desktop, храня учетные данные с шифрованием AES-256 и обеспечивая автоматическое обновление токенов, чтобы предотвратить ошибки из-за их истечения в середине разговора.