Что такого хорошего в Lisp?

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

Так что же это за Lisp, что так здорово и почему его больше не используют? Есть ли что-то просто плохое о Lisp (кроме непрекращающегося количества скобок)?

Ответ 1

Lisp - это Чак Норрис из языков программирования.

Lisp - это бар, на котором измеряются другие языки.

Знание Lisp демонстрирует просвещение разработчиков.

Я слышал о 3 слабостях (и их встречных аргументах):

  • Динамическая типизация.

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

    В этой статье рассматривается динамическая типизация наряду с большим количеством тестов: Сильная типизация и сильное тестирование.

  • Трудно подобрать.

    На самом деле есть две части: обучение и инструменты.

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

    Я читал The Little Schemer и читаю "Практический общий" Lisp, которые оба превосходны.

    Далее следуют инструменты. Я нахожусь на Mac, поэтому я обнул в Aquamacs Emacs (делает Emacs приемлемым для новичков) и Steel Bank Common Lisp (SBCL).

  • Отсутствие библиотек.

    Я пока не могу сказать наверняка, но я в этом сомневаюсь. Для создания веб-сайтов, похоже, Hunchentoot и Elephant предоставляют хороший набор инструментов. Но на самом деле я не вижу, чтобы Lispерс жаловался на нехватку библиотек (возможно, потому что Lisp настолько мощный, что они просто не нужны?).

Ответ 2

"Lisp - программируемый язык программирования."
- Джон Фодераро, CACM, сентябрь 1991 года.

Вот мое мнение:

На поверхности Lisp - хороший, простой язык программирования. Theres почти никакого синтаксиса, и все части сочетаются логически.

Если вы копаете немного глубже, прочитайте SICP и напишите метакрикулярный оценщик, вы обнаружите две вещи: одну, целую интерпретатор (только с несколькими примитивами) - это всего лишь страница кода, а два, взаимосвязь между кодом и данными, позволяет использовать элегантные методы программирования.

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

Ответ 3

Lisp хорош тем, что имеет очень минимальный, простой и регулярный синтаксис.

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

Ответ 4

"Любая достаточно сложная программа C или Fortran содержит специальную, неформальную, ограниченную ошибками, медленную реализацию половины Common Lisp.

Десятое правило Greenspun

Ответ 7

Программа A Lisp имеет тенденцию обеспечивать гораздо более четкое сопоставление между вашим идеи о том, как работает программа, и код, который вы на самом деле пишете.

Источник: http://www.gigamonkeys.com/book/introduction-why-lisp.html