Объединение 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.

Обзор здесь

Есть также несколько хороших методов на сайте судороги Джейкоба Хансенса.