Код
#подборки

Must read. 5 свежих статей о языке Lisp

Подобрали 5 классных статей про успехи и неудачи Lisp, про его особенности и про то, как с ним работать.

Dana Moskvina / Skillbox Media

Каждую неделю мы отбираем для вас несколько свежих материалов из англоязычного интернета. В этом выпуске — самое интересное о Lisp.

Чем так крут Lisp?

Зачем читать: понять, чем Lisp очаровал своих фанатов, и сравнить с другими языками.

Где читать: на Quora.

Интересное обсуждение для тех, кто не может понять, почему же люди любят Lisp. Это один из самых старых языков, но его активно используют и по сей день.

Самое главное качество Lisp, которое отметили в комментариях, — его гибкость и универсальность. В Lisp можно легко симулировать синтаксис других языков — его даже называют «программируемым языком программирования». Именно это делает его столь эффективным. Он позволяет каждому использовать свой подход и фактически собрать язык под свои нужды.

Другое интересное свойство — создавая программы на Lisp, можно достичь уникальной лаконичности и продуктивности.

Обсуждение будет интересно прочитать и тем, кто задаётся вопросом, какие качества языков программирования делают их по-настоящему крутыми.

Несколько причин перейти на Lisp

Зачем читать: узнать подробнее о классных фичах Lisp.

Где читать: на Medium.

Лонгрид от давнего любителя Lisp: после долгих поисков идеального языка он пришёл к Lisp и сидит на нём уже четверть века. Вот пять функций, за которые автор полюбил этот необычный язык:

  • Lisp основан на лямбда-исчислениях. Его код лаконичнее и проще, а разработчику не приходится держать в голове слишком много лишней информации.
  • В Lisp есть вызов функций по значению, а не по имени. Это особенно полезно для языков, основанных на лямбда-исчислении.
  • Разумное использование мутаций. В некоторых случаях мутации — необходимое зло. Именно такой политики придерживается Scheme — один из диалектов Lisp.
  • Динамическая типизация. Тут автор вовсю спорит с приверженцами статической типизации. Он считает динамическую типизацию огромным плюсом.
  • S-выражения. Особая структура, типичная для Lisp, которая использует лишь два вида данных: символы и списки.

Конечно же, Lisp не волшебная пилюля, у него есть минусы, которые очевидны даже давнему фанату языка. Например, он всё меньше совместим с различными SDK, и с годами ситуация только ухудшается.

Автор подробно разбирает все плюсы и минусы языка, рассказывает о том, как они устроены, и щедро делится опытом.

Проклятие Lisp: спасётся ли Perl?

Зачем читать: узнать, почему Lisp непопулярен и наступит ли Perl на те же грабли.

Где читать: на DEV.

Lisp хвалят за выразительность, гибкость и эффективность, но эти же качества его губят. Благодаря своей гибкости он подстраивается под нужды отдельных разработчиков, но в коммерческой разработке в энтерпрайзе это скорее вредит: сложно создать единую структуру, организовать и стандартизировать работу.

Более того, найти интегрированную среду разработки тоже непросто, поэтому для бизнеса Lisp далеко не самое привлекательное решение. В похожей ситуации оказался и Perl. Получится ли у него спастись от проклятия Lisp? Может быть, да. Сейчас в Perl появляются новые интересные фичи, которые могут его спасти, — но пока что хеппи-энд под вопросом. Кусаем локти и ждём финального сезона.

Зачем нужны макросы?

Зачем читать: разобраться, можно ли заменить макросы чем-то ещё.

Где читать: на Medium.

Любители Lisp могут подолгу рассказывать о макросах и о том, что в C они совсем не те… Но что это такое и на самом ли деле они настолько незаменимы?

Макросы — это макрокоманды, и в первую очередь они нужны для автоматизации. Автор реализовал один и тот же механизм (подсчёт времени выполнения функции) на Python, Java и Clojure (диалект Lisp).

В первых двух случаях код приходилось встраивать в другое выражение — по-другому измерить его было невозможно. А вот в Clojure этого делать не пришлось: макрос просто использовали вместо функции. В статье есть и другие примеры использования макросов.

Lisp в веб-разработке

Зачем читать: чтобы не потеряться, начав заниматься веб-разработкой на Lisp.

Где читать: на DEV.

С выгодами Lisp мы разобрались, но для всего ли годится такой старый язык? Что там насчёт веб-разработки? В небольшом гайде автор-фронтендер рассказывает, как создавать веб-приложения с помощью Lisp, какие фреймворки и тулы для этого понадобятся и каковы особенности процесса развёртывания в облаке, если оно не поддерживает Lisp.

Вот некоторые инструменты, которые пригодятся в работе:

  • SBCL (Steel Bank Common Lisp) — компайлер для Lisp с классными расширениями.
  • Quicklisp — менеджер библиотек.
  • Emacs — лучший редактор для кода на Lisp.
  • SLIME — мод для Emacs с отладчиком и REPL, который очень пригодится в серьёзной работе.
  • Caveman — классный фреймворк для создания веб-приложений, доступен в Quicklisp.
  • rosewell — менеджер, лаунчер и не только. Один из лучших инструментов для работы с имплементациями на Lisp, отличный помощник в работе с облаком.
  • Clack — слой абстракции для веб-сервера.

Проверьте свой английский. Бесплатно ➞
Нескучные задания: small talk, поиск выдуманных слов — и не только. Подробный фидбэк от преподавателя + персональный план по повышению уровня.
Пройти тест
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована