LISP сообщества и веб-фреймворки

В интервью reddit с Питером Норвигом, он говорит

"По различным причинам набор веб-сайтов библиотеки и протоколы были медленнее развиваются в LISP, чем в других языки"

и, следовательно, принятие в сети веб-сообщества снизилось, и люди пошли за языками с более богатыми наборами библиотек.

Есть ли причина для этой медлительности в создании веб-фреймворков сообществом LISP?

Ответ 1

г. Замечание Норвига показалось мне более историческим, чем оценка нынешней ситуации. Возможно, в середине и конце 90-х годов веб-связанные библиотеки не появлялись так быстро в Common Lisp, как в других языках, таких как Java.

Но, конечно, сегодня это не так. Я могу назвать не менее пяти общих веб-серверов Lisp с верхней части головы (CL-HTTP, Hunchentoot, S-HTTP-Server, Araneida, AllegroServe), не говоря уже о mod-w132 для Apache. Должно быть около десятка различных веб-фреймворков (KPAX, Weblocks, UncommonWeb и др.). И есть общие библиотеки Lisp для каждого веб-акронима, который вы можете назвать: SOAP, XML, XLST, FTP, XML-RPC, S3, AJAX.... ad infinitum. И есть инструменты, которые не имеют аналога на других языках, таких как чудо чудес ParenScript.

Смотрите общий каталог Lisp для полного списка веб-библиотек: http://www.cl-user.net, многие из которых поддерживаются в http://www.common-lisp.net

Ответ 2

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

Примерно год назад мне пришлось читать и писать CSV в Clojure. Стандартным советом было использование любой из нескольких хорошо известных, хорошо протестированных библиотек Java. Мне было труднее определить, какая библиотека была наиболее подходящей и узнать ее API, чем просто написать мой собственный в Clojure. Это 50 строк, и он красиво обрабатывает мой предназначенный прецедент. Однако это не совсем хорошая библиотека CSV; есть много случаев, которые он не поддерживает, поэтому я не упаковал его как библиотеку, положил его на Clojars или как. Я полагаю, что я часть проблемы.

Половина недавних практических учебников Lisp в Интернете сегодня включает пример макроса генерации HTML. Большинство из них - качество производства и немного больше, чем экранный код. Это вряд ли стоит упаковать и вызвать библиотеку; это тривиальный код, который любой достойный программист Lisp мог написать через несколько минут. Конечно, стоит упаковать библиотеку, а Edi Weitz выпустил кучу кода в этих строках.

Ответ 3

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

Интересно отметить, что:

первый HTTP-совместимый сервер и [тот], который используется W3C для отладки эталонной реализации HTTP 1.1

был записан в Lisp.

Ответ 4

"Lisp сообщество" представляется широким термином. Но для Common Lisp у вас есть Hunchentoot, который используют многие люди. Dr. Scheme поставляется с встроенными веб-сайтами.

Мой любимый, Clojure имеет много классных активно разработанных библиотек для создания веб-приложений, Ring, Compojure, Enlive, Clutch, чтобы назвать несколько интересных.