Объединение Lisp и кода PHP в том же приложении
В настоящий момент я использую PHP почти для всего, что я разрабатываю для Интернета, но его лингвистические ограничения начинают меня раздражать. Однако, поскольку я разработал некоторые практики и поддерживаю некоторые библиотеки PHP, которые мне очень помогают, я не чувствую, что буду готов просто переключиться на LISP, отбросив весь мой вывод PHP. Это может быть даже невозможно на серверах, где все, к которым у меня есть доступ, является обычной учетной записью хостинга LAMP.
Эрго, мои вопросы:
Может ли код LISP просто сочетаться с PHP одним? Существуют ли решения для бок о бок LISP/PHP, интерфейс для их интероперабельности или perphaps только реализация одного для другого? Или это взаимоисключающий выбор?
Ответы
Ответ 1
Это не взаимоисключающий выбор, вы можете запускать как на одной системе, так и на Perl и php (например), которые запускаются бок о бок во многих системах.
Там есть хорошая должность здесь по аналогичной теме, в которой предлагается использовать сокеты для связи между обоими языками -
Если вы хотите перейти по пути PHP ↔ Lisp, то проще всего сделать это, чтобы заставить PHP взаимодействовать с вашим Lisp -процессом с помощью сокетов.
http://php.net/manual/en/ref.sockets.php
http://www.sbcl.org/manual/Networking.html
Этот подход по-прежнему оставляет вас с потенциальной сложностью и проблемами обслуживания, возникающими из-за наличия двух языков в вашем проекте, но может быть подходящим для вашего конкретного случая использования.
Ответ 2
Скорее всего, вы не захотите писать код на PHP после начала разработки в Lisp. (Новая капитализация с 80-х годов, между прочим)
Hunchentoot - популярный сервер, который дает вам основы с точки зрения подключения диспетчеров к запросам. Там серия screencasts при написании клонирования reddit на LispCast.com
UnCommon Web (звучит как каламбур на Питере Норвиге, описание схемы в PAIP), из того, что я могу сказать, в значительной степени по идее продолжений, так же как Seaside для Smalltalk.
Weblocks - еще одна основанная на продолжении веб-инфраструктура, которая выглядит красиво. Автор (в defmacro.org
) пишет хорошие статьи, и мне нравится то, что я видел в примере приложения для Weblocks.
Ответ 3
В настоящий момент я в той же ситуации. У меня много PHP под моим поясом, но язык действительно начинает меня раздражать. Я экспериментировал на разных языках, но недавно поработал со схемой, и я размышляю о постепенном переключении. Может быть, мы должны начать группу пользователей или что-то еще?
Исходя из фона PHP, вы, вероятно, привыкли работать с тонким уровнем абстракции по протоколу HTTP. Я думаю, что это то, что на самом деле облегчает переход на новый язык; Особенно тот, где нет ни одной доминирующей структуры. Таким образом, PHP и сообщество Lisp имеют некоторое сходство (но также другие фрагментированные платформы с открытым исходным кодом, такие как Python и Perl).
Одна проблема с Lisp заключается в том, что есть так много на выбор. Я решил, что предпочитаю Scheme over Common Lisp, так что немного сужает его. После некоторых экспериментов я теперь фокусируюсь на plt-scheme, который, кажется, является одной схемой с наибольшим импульсом. Помимо всего прочего, у него есть веб-сервер в комплекте с ним.
Ответ 4
К сожалению, я не могу думать о каких-либо библиотеках для этого, однако я был в аналогичной ситуации, где у меня был PHP-код, но устал от "попытки" кодировать логику (логику игры) в PHP, поэтому я использовал PHP сокеты для подключения к Lua, поэтому теперь я программирую всю логику серверов в Lua и использую PHP (настройки LAMP) в качестве моего внешнего сервера.
Надеюсь, что это поможет.
Ответ 5
Я рекомендую вам попробовать Weblocks.
Ответ 6
Для нормальной разработки веб-страниц в PHP Ive создал lib под названием xilla_tags.
Обзор здесь
Есть также несколько хороших методов на сайте судороги Джейкоба Хансенса.
Ответ 7
Посмотрите интересное решение для объединения Lisp и PHP
https://github.com/lisphp/lisphp