Я начал свой путь к Lisp уже чуть больше года назад. Я делал ежеквартальные дайджесты новостей, в основном из ленты Reddit:

Пришло время сделать годовой обзор! Что случилось в мире Common Lisp? Существуют ли (или новаторские, многообещающие полезные развлечения) проекты, статьи, обсуждения, учебные пособия?

Нет необходимости говорить, что я не буду ссылаться на все, что мы находим в ежеквартальных публикациях, в которых не перечислены все новые проекты, появляющиеся на Quicklisp (мы можем найти их в ежемесячных выпусках Quicklisp) или Github.

Я надеюсь, что этот обзор заострит ваш интерес к тому, что, на мой взгляд, является недостаточно продаваемым и все еще очень многообещающим языком и платформой, которые мне нравятся все больше и больше (и ооочень больше, чем Python;)).

Счастливых открытий.

Документация

Электронная документация Common Lisp могла бы быть более полной и приветливой. К счастью, некоторые из нас возродили некоторые проекты и поработали над ними - мой любимый - Common Lisp Coobook. В этом году у нас есть учебники по:

наряду с множеством улучшений на других страницах, таких как начало работы и поддержка редактора.

Это подводит меня к следующему: ситуация с редакторами гораздо более открыта, чем вы думаете:

  • Выбранный редактор по-прежнему Emacs со Slime (или Sly),
  • Тем не менее, мы можем начать работу с Emacs и Lisp за 3 клика с помощью Portacle, автономного портативного Emacs с включенным sbcl и включенным батареями, адаптированного для CL,
  • Для Vim и NeoVim у нас есть SLIMV, VLIME, и плагины для NeoVim могут быть написаны с помощью cl-neovim.
  • Или, если нам нужен редактор, написанный на cl, есть автономный редактор Lem, который также работает для Python, Go, Rust, Nim, Scheme, HTML, JSX, наряду с режимом каталогов, экспериментальный режим LSP, режим расчета и многое другое,
  • Не забывайте, что пользователи Mac Os X могут использовать Clozure Common Lisp IDE
  • Все редакции LispWorks (включая бесплатную) включают LW IDE
  • Для пользователей Eclipse IDE есть плагин Dandelion
  • Популярные редакторы очень хорошо знакомы с Atom, а популярный Visual Studio Code можно заставить работать с CL с помощью cl-lsp.
  • У нас есть ipython-подобный REPL (cl-repl),
  • а для интерактивных блокнотов у нас есть ядра Jupyter и еще один блокнот (Darkmatter).

Очень долгожданным улучшением является веб-сайт фонда Common Lisp: https://common-lisp.net/. Он получил масштабное обновление и теперь стал привлекательным. У нас был http://lisp-lang.org/ (не пропустите его раздел с историями успеха (знаете ли вы, что pgloader был переписан с Python на CL? :))), но common-lisp.net был горшок с медом гуглеров.

На этом веб-сайте используются два «потрясающих» списка, которые были созданы или массово обставлены в прошлом году:

  • список Awesome-CL, обновленный сотнями коммитов, который, мы надеемся, сделает экосистему более доступной и привлекательной, и
  • Awesome Lisp Companies: это было необходимо, потому что Lispers не знали многих компаний, использующих CL appart от IRobot, Google ITA (на базе Kayak, Orbitz и других), Grammatech, YCombinator, Siscog или других мертвых.

Другие места для изучения Common Lisp:

У нас также регулярно появляются новые скринкасты:

  • много от Baggers: он делает следующее и транслирует в прямом эфире почти еженедельно
  • Маленькие кусочки Lisp: короткие видеоролики для изучения основ Lisp
  • Много кусочков Лиспа: длинные видеоролики для углубленного изучения продвинутых предметов (макросы, CFFI,…)
  • Выталкивание пикселей с помощью Lisp: в основном работа с OpenGL
  • и более" !
  • У Шинмера тоже много видео, мы можем увидеть, как он работает над игровыми движками, играми, своими библиотеками, приложениями Qt и многим другим,
  • Группа изучения CL (здесь введение в Screamer, библиотеку недетерминированного программирования)

Реализации

Время подходит для реализаций Common Lisp. Большинство из них возникло несколько десятилетий назад и уже доказали, на что способны (помните, SBCL является потомком Лиспа, отправившегося в космос). Отсюда отсутствие ажиотажа, ИМО. Тем не менее, многие из них находятся в активной разработке и продолжают улучшаться. Как заметил /u/defunkydrummer:

Нам повезло, что мы живем в то время, когда разработка Lisp все еще продолжается, и многие команды носят флаг Lisp с открытым исходным кодом:

SBCL (новый выпуск сегодня)

SICL (последняя фиксация 2 часа назад)

ECL (последняя фиксация, вчера),

CLASP (последняя фиксация 2 дня назад)

CCL (последняя фиксация 7 дней назад),

CLISP (две недели назад),

CMUCL (1 месяц назад)

ABCL (3 месяца назад)

SBCL выпускает ежемесячные выпуски. Если вы читаете примечания к выпуску, вы можете беспокоиться:

количество изменений в каждом выпуске в эти годы уменьшается

но, как отмечает /u/baggers:

Я думаю, что коммиты говорят немного о другом. Всегда есть много предыстории, чтобы «сделать что-то лучше», чем не появится, поскольку объяснение будет либо сверхвнутренним и конкретным, либо будет очень расплывчатым и очень похожим каждый месяц (например, «материал работает немного быстрее»).

Для того, чтобы быть слишком конкретным, этот может стать хорошим примером. Это грандиозная работа, но она не проявляется ни в одной конкретной функции шепелявости, просто лучше.

Кроме того, сопровождающий:

Или разработчики лень описывать свои изменения.

что не является уважительной причиной;)

У нас есть новый выпуск Corman Lisp, высокопроизводительной реализации для Windows / 32bit со встроенной IDE,

у нас есть CLASP, ориентированный на C ++ через LLVM (см. Извлеченные уроки по реализации Common Lisp с LLVM), построенный с помощью компилятора Cleavir, части SICL, очень новой реализации Common Lisp со свежими идеями,

у нас есть ABCL, ориентированный на JVM, Embedable Common Lisp, не забывая об активных коммерческих, таких как LispWorks и AllegroCL. Пока я занимаюсь этим, вы можете взглянуть на MOCL для IO, Android и OSx.

Сопровождающий Clozure Common Lisp приятно побеседовал с нами: Этот старый Лисп (это может быть вторая по популярности реализация, особенно хороша для разработки - сверхбыстрое время компиляции (я слышал, что он компилируется за секунды), совет, Наблюдаемые объекты, собственная IDE).

Последнее замечание, сопровождающий SBCL запустил порт RISC-V: Первые шаги RISCy - перенос SBCL на RISC-V

Итак: добро пожаловать в этот новый мир. Это точно больше, чем я думал.

Проекты

Я перечисляю только некоторые проекты, которые могут кого-то заинтересовать. Полную информацию смотрите в постах за квартал!

Новые проекты

Интернет

Информацию о веб-библиотеках см. На странице https://github.com/CodyReichert/awesome-cl#network-and-internet.

GUI

для библиотек GUI: https://github.com/CodyReichert/awesome-cl#gui

Управление пакетами

Quicklisp - это де-факто менеджер пакетов, но новые проекты дополняют его и обходят его ограничения:

  • Доступна вторая версия Ultralisp - Ultralisp - важный проект, заполняющий пробел. Это быстрое распространение, которое обновляется каждые 5 минут. Это также приложение Weblocks!
  • Quicksys - устанавливает системы из нескольких дистрибутивов Quicklisp.

Дополнительные параметры см. В разделах Qlot (локальная установка и закрепление библиотек, например virtualenv Python) и Roswell.

Развертывание

Мы также можем развертывать приложения в Digital Ocean, и нет нужды говорить, что развернуть автономный исполняемый файл легко, как и подключиться к удаленному экземпляру.

Музыка

см. также ПО для создания аудио и музыки

(пере) Открытия

Статьи

а также

По играм:

Другие скринкасты

Обсуждение

Изучение Лиспа

Common Lisp VS…

Наслаждайтесь материалом, и до скорой встречи!

Спасибо /u/defunkydrummer за вычитку.

Исправьте или улучшите эту статью на Gitlab.