Возможно ли это сделать (серьезно) веб-разработку в Лиспе? [закрытый]
11 95
11 ответов:
да, веб-разработка является одной из сильных сторон Common Lisp сегодня.
в качестве веб-сервера используйте Hunchentoot, ранее известный как tbnl, д-р Эдмунд Вайц.
вы можете запустить его как серверную часть Apache, используя mod_proxy в качестве обратного прокси-сервера или в качестве автономного сервера.
доступны различные решения для генерации HTML, от шаблонов PHP-стиля до макро-хаков Lisp до XSLT. Просто возьми свой выбирать.
HTML-TEMPLATE это один из примеров.
закрытие XML доступно для синтаксического анализа XML, сериализации, XPath 1.0, XSLT 1.0. Существует также закрытие HTML для разбора HTML-тегов супа.
(полное раскрытие: я сопровождающий закрытия XML и закрытия HTML.)
Если вам нравится Parenscript может сделать ваш опыт JavaScript более шепелявым, но вы также можете написать простой старый Сам JavaScript, конечно.
еще одно классное решение для улучшения JavaScript в jwacs, который написан на Common Lisp и преобразует JavaScript для добавления поддержки продолжения.
для проектов веб-служб может потребоваться HTTP-клиент в дополнение к серверу.
Drakma библиотека, чтобы использовать для этого сегодня.
Пури полезно для манипуляции URI.
и там еще! Одной из отправных точек является cliki, например cliki.net/web.
в интернете никто не знает, что ваш сервер написан на Common Lisp : -)
Веб-разработка в Common Lisp одновременно эффективна и увлекательна.
примеры:
КЛ-КТО позволяет писать HTML, не забывая закрывающий тег когда-либо снова.
Weblocks позволяет определять формы декларативно со встроенной проверкой:
(defview signup (:type form :caption "Sign up") (username :satisfies #'valid-username) (password :present-as dual-password :parse-as dual-password) (receive-newsletter-p :present-as checkbox :parse-as predicate))
Он также поддерживает AJAX в полностью автоматическом режиме, возвращаясь к обычным ссылкам, если браузер не поддерживает оно.
СL-Распространенность это невероятно простая альтернатива SQL.
довольно много людей используют эти технологии в последнее время для критически важных приложений-с успехом.
наиболее важные проекты CL с открытым исходным кодом на самом деле имеют отличную поддержку сообщества.
есть несколько фреймворков для веб-разработки. Взгляните на:
Если вы хотите хорошо поддерживаемые инструменты lisp, то вам нужно будет заплатить за них. Там просто не очень большое сообщество вокруг инструментов с открытым исходным кодом, поэтому у них нет такого же уровня документации/принятия, как, скажем, Django на Python.
вот некоторые коммерческие продукты сюсюкать:
также стоит отметить, что Reddit изначально был построен в Lisp, но позже авторы перешли на Python, ссылаясь на отсутствие хорошо используемых и документированных библиотек. (ссылке)
Я не могу говорить с другими фреймворками, но мне очень повезло с использованием Hunchentoot для веб-сервера (он отлично работает сам по себе, или вы можете положите его за Apache). Что действительно заставляет его сиять (это, вероятно, станет шоком для некоторых) - это библиотеки!
- использовать КЛ-КТО чтобы написать легкий HTML в синтаксисе lisp-стиля
- Parenscript позволяет писать код, который компилируется в javascript
- для подключения к базе данных используйте постмодерн поговорить с PostgreSQL
Что мне действительно нравится в использовании CL для интернета, так это то, что вы можете настроить его все, как он работает. У вас всегда есть REPL и работает ваш серверный код, вы можете подключиться к этому REPL и изменить или проверить, как работает код, все без необходимости останавливать что-либо. Я переопределил функции во время работы сайта, в следующий раз функция называется, он просто подбирает новый код и работает.
чтобы еще больше развеять миф о том, что нет веб-фреймворков Lisp, вот те, которые еще не были упомянуты:
очевидно, что многие люди, похоже, думают, что Lisp достаточно хорош для написания многих веб-фреймворков.
Я не использую какой-либо фреймворков. Я предпочитаю строить веб приложения путем объединения ортогональных инструментов (Дэвид Лихтеблау упомянул некоторые хорошие), используя шаблоны проектирования таким образом, который фактически соответствует приложению, которое вы создаете, и это подход, который я рекомендую. Common Lisp предоставляет как богатство таких инструментов, так и непревзойденную способность их комбинировать.
Адам Петерсен опубликовал отличный вводный учебник о том, как начать создавать веб-приложения Lisp в этом стиле в последний раз год:
Я думаю, что можно сказать, да без hazzle.
одним из первых HTTP-серверов был cl-http
схема людей вокруг DrScheme потратили на это замечательное количество времени:
www.franz.com работает на собственном веб-сервере (AllegroServer) и webframework (webactions)
Если вы сомневаетесь, проверьте пакеты common lisp от Edi Weitz. Они обычно работать.
Так что да, можно сделать "серьезное" веб-программирование с помощью Common Lisp. Я, со своей стороны, в настоящее время не определился с тем, чтобы следовать какому-то общему маршруту Lisp или Ruby on Rails. Я предпочитаю оба над чем-нибудь .NET....
Пол Грэм компания Viaweb написала продукта в Common Lisp, который впоследствии стал магазинами Yahoo. По-видимому, Yahoo впоследствии переписал его на C++. Существует довольно много веб-ресурсов для программирования Lisp.
вы можете найти некоторые вещи об инструментах для веб-приложений Lisp в этот вопрос.
возможно, также стоит послушать Переполнение Стека Подкаст 27 где ребята Reddit немного рассказывают о своем опыте работы с сайтом runnig на Lisp (и их переключении на Python).
мнения меняются. Общая мудрость заключается в следующем: лучше использовать другой язык или, скорее, другой веб-стек, такой как LAMP, .NET, Ruby on Rails, Java. Известным успешным веб-проектом в lisp стал Paul Graham's ViaWeb. Reddit первоначально был реализован в lisp, но затем переключился на python. Если вы все же решите использовать lisp, попробуйте книгу Сейбеля: Практический Common Lisp.
похоже, что много Orbitz был или пишется на LISP.