Hacker News Digest

Тег: #common-lisp

Постов: 3

Why Common Lisp is now the best programming language (vivienhenz.com) 💬 Длинная дискуссия

Common Lisp ускоряет обратную связь при разработке благодаря отсутствию чёткой границы между временем чтения, компиляции и выполнения: программа существует как живой образ в памяти, и изменение функции применяется мгновенно без перезапуска. Это критично сейчас, когда LLMs пишут код быстро, а узким местом становится проверка работоспособности — в Common Lisp ошибки не падают программу, а выводят интерактивный отладчик со стек-трейсом и переменными, позволяя LLM сразу исправить код и продолжить выполнение. Макросы, возможные благодаря homoiconicity (код как списки данных), позволяют расширять язык под домен, превращая программирование в создание специализированного языка для задачи. Это особенно ценно в эпоху LLM-поддерживаемой кастомизации: например, ERP-система на собственном доменном языке позволяет пользователям вносить правки через LLM, сохраняя согласованность с исходной концепцией продукта. Программы на Common Lisp часто в 6–7 раз короче эквивалентных на Python благодаря абстракциям через макросы, что снижает стоимость токенов при работе с LLM и увеличивает долю кода, помещающуюся в контекстное окно, уменьшая ошибки из-за частичного видения программы. Хотя стандарт не обновлялся с 1994 года, это стабильность — фундамент не меняется, а пользовательские расширения не ломаются. Недостаток библиотек компенсируется возможностью LLM писать или портировать код самостоятельно, а сложность поиска инженеров не проблема: способность быстро учиться важнее знания конкретного языка, и обучение Common Lisp в интервью отбирает тех, кто будет расти в экспертизе. Таким образом, Common Lisp предоставляет уникальное сочетание скорости итерации, безопасности экспериментов и выразительности, усиливаемое возможностями современных LLM.

by misterchocolat • 06 октября 2026 г. в 02:51 • 150 points

Оригинал • HN

#common-lisp#homoiconicity#lisp#llm#macros#python

Комментарии (199)

Преимущества Common Lisp для LLM‐агентов не уникальны: другие языки (Clojure, Rust, Go, Python) тоже позволяют быстро перезапускать код, а сильные типы и статический анализ часто дают более надёжную обратную связь. Участники отмечают проблемы макросистем Lisp, необходимость учитывать токен‐эффективность и архитектурные решения, а также предлагают измерять производительность агентов в разных языках. Большинство комментаторов согласны, что LLM‐модели работают с любыми языками, а выбор определяется доступностью библиотек и обучающих данных. Для объективной оценки стоит проводить кросс‐языковые бенчмарки, измеряя количество токенов, число повторных попыток, время до рабочей версии и объём ручных правок. Опыт @clx75 показывает, что в Clojure можно достичь похожего «живого образа» через nREPL и clj‐reload, позволяя агенту быстро менять код и перезапускать тесты. По мнению @alexjurkiewicz, современные скриптовые языки (Python, Node) тоже умеют останавливать выполнение на исключениях без развёртывания стека, что уменьшает уникальность Lisp в этом аспекте. @peri-cl указывает, что LLM‐модели часто падают при работе с макросами Lisp, генерируя синтаксически неверные формы с неправильным числом скобок. Как отмечает @onion2k, экономия токенов зависит больше от архитектурных решений и модульности кода, чем от самого языка. По мнению @WalterBright, широкое использование макросов в Lisp приводит к созданию «ад‐хок» DSL, что усложняет поддержку и снижает привлекательность языка. @drwallace напоминает, что в Common Lisp можно определять собственные типы, тем самым частично компенсируя отсутствие статической типизации. @artpar считает, что «медленная часть» разработки — не написание кода, а проектирование и мышление, поэтому ускорение за счёт Lisp не решает главную проблему. @soltanov советует сравнивать LLM‐агентов в разных языках, фиксируя метрики токенов, количество ошибок и время до решения. @sidkshatriya предпочитает, чтобы язык выявлял ошибки на этапе компиляции, а не в рантайме, считая «возобновление» программы после правки несущественным преимуществом. @Karrot_Kream предлагает комбинировать ядро на C или Rust с Lisp‐подобным языком Janet для быстрой итерации, используя живой образ в LLM‐контексте.

IDEmacs: A Visual Studio Code clone for Emacs (codeberg.org) 🔥 Горячее

IDEmacs представляет собой набор конфигураций для Emacs, созданный для упрощения входа в этот мощный редактор через имитацию интерфейса популярных IDE. Проект ориентирован на трех основных групп пользователей: программистов, переходящих с других IDE; начинающих Common Lisp и Scheme разработчиков, которым нужна функциональность Emacs без сложной настройки; а также непрограммистов, ищущих полнофункциональный редактор для Org, Markdown или LaTeX.

Ключевая особенность IDEmacs - это сочетание традиционного для Emacs управления с клавиатуры и поддержки GUI с мышью. В отличие от большинства стартовых комплектов для Emacs, здесь не скрываются графические элементы интерфейса, что значительно снижает порог входа для новичков. Проект позиционируется как временное решение ("заплатка") для текущей ситуации, когда Emacs с Sly/Geiser остается лучшей средой разработки для Lisp/Scheme, несмотря на его сложность для начинающих.

by nogajun • 16 ноября 2025 г. в 00:56 • 283 points

Оригинал • HN

#common-lisp#emacs#latex#markdown#neovim#org#scheme#ssh#vim#visual-studio-code

Комментарии (116)

  • Пользователи спорят о модернизации Emacs: одни хотят сохранить ядро, но обновить UI (giancarlostoro), другие считают устаревший интерфейс фичей (raincole), третьи критикуют производительность (koiueo).
  • Альтернативы Emacs обсуждаются активно: VS Code с плагинами (ruguo), OniVim (tiffanyh), Neovim с distant.nvim (pca006132), а также Electron-редакторы с Vim-подобными биндами (trenchpilgrim).
  • Удалённая работа через SSH/TRAMP в Emacs возможна (brendyn, v9v), но имеет проблемы с задержками, в отличие от VS Code Remote (pca006132, blubber).
  • Клавиатурные комбинации Emacs (C-x, C-c и др.) вызывают поляризацию мнений: одни считают их устаревшими (tom_), другие — неотъемлемой частью (ssivark).
  • Сообщество Emacs сопротивляется радикальным изменениям UI, предпочитая кастомизацию через "стартовые пакеты" (ssivark), хотя часть видит в этом контркультурное противодействие прогрессу (stackghost).

Lisp from Nothing, Second Edition (t3x.org) 🔥 Горячее

LISP FROM NOTHING
344 стр., 2025, Lulu Press, 6"×9", 19 иллюстраций, код бесплатно.

Купить: мягкий переплёт | твёрдый | PDF
Исходники | Превью (PDF) | Опечатки | Видео-обзор

Книга исследует минимальный LISP, способный интерпретировать и компилировать себя, и показывает, каким был хакинг в эпоху перфокарт и мейнфреймов. Во втором издании добавлена глава о связи LISP с λ-исчислением, улучшены макросы и стиль.

Примеры кода

Весь код книги (~100 КБ)
λ-исчисление в Scheme (~6 КБ)
Генератор перфокарт Postscript
Обложка главы «Let There Be LISP»

by nils-m-holm • 27 августа 2025 г. в 09:50 • 341 points

Оригинал • HN

#common-lisp#compilers#garbage-collection#interpreters#lambda-calculus#lisp#mainframes#nils-m.-holm#punch-cards#scheme

Комментарии (97)

  • Читатели восторженно отзываются о сайте и книгах Нильса М. Хольма, называя их «личной поэзией» и «культурными артефактами», созданными ради самого процесса.
  • Автор подтверждает: главное для него — красота и простота изложения, а не практическая польза или научная новизна.
  • Покупатели жалуются на выбор: «хочется всё сразу», но автор советует начать с одной книги и прислал шпаргалку «какую выбрать».
  • Обсуждаются входные требования: книга не для новичков; рекомендуют The Little Schemer, ANSI Common Lisp и A Gentle Introduction.
  • Возник спор о названии «Lisp from Nothing» при пометке «не вводная книга»; автор уточняет, что «nothing» значит «с нуля», а не «для нулевых».