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, чтобы назвать несколько интересных.