← На главную

Команда nooga представила быстрый язык go let-go

09.05.2026 17:52 · hackernews

Команда nooga представила let-go, новый язык программирования, похожий на Clojure, но написанный на Go. Проект обещает быть самым легким и быстрым в своей категории: бинарный размер всего 10 МБ, а холодный запуск занимает всего 7 мс. Приложения не требуют установленного runtime, так как весь код компилируется в один самодостаточный исполняемый файл. Команда также умеет создавать веб-приложения через WebAssembly с полной эмуляцией терминала прямо в браузере.

Разработчики сделали ставку на совместимость с экосистемой Clojure. Поддерживаются макросы, ленивые последовательности, протоколы, трансдюсеры и большие целые числа. Однако проект явно не стремится быть полной заменой стандартной интерпретации clojure/clojure. Коды работают почти одинаково, но крупные проекты могут потребовать небольших правок из-за специфических отличий в работе с потоками и точностью арифметики. Тестовый набор jank-lang/clojure-test-suite пройдён на 95,4% случаев, где провалы вызваны краевыми случаями вроде проверки переполнения чисел.

Важная особенность — интеграция с проектами Babashka. let-go умеет загружать внешние модули (pods) и пользоваться их функционалом, от работы с базами данных до общения с облачными сервисами AWS. Это открывает доступ ко всем инструментам Babashka без переписывания кода. Также реализована глубокая взаимная работа с Go. Структуры данных Go автоматически превращаются в записи let-go, а функции Go можно вызывать из кода на Clojure и наоборот. Для отправки сообщений между средами используются стандартные каналы Go.

Бенчмарки показывают, что let-go работает быстрее конкурентов в задачах на коротких промежутках времени и потребляет меньше оперативной памяти. Однако есть ограничения: отсутствуют агентские системы (agents), поддержка рекурсивных иерархий неполная, а работа с числами с плавающей точкой ограничена типами int64 и float64. Регулярные выражения работают по синтаксису Go с использованием библиотеки re2. Проект также включает сервер nREPL для удобной отладки в редакторах Emacs, VS Code и Neovim. Скачать готовый бинарник можно для Linux, macOS и Windows, а исходный код требует Go версии не ниже 1.22.

Читать оригинал →