LINUX.ORG.RU

common lisp в браузере


0

0

Подскажите пожалуйста, каким образом можно сделать Common Lisp серверным языком (а-ля php) для отображения html в браузере.

Я придумал только такие варианты:

1. Скрипт на пхп запускает

sbcl --script myscript.lisp
и отображает сгенеренную скриптом html'ку.

2. На lisp'е пишется http-сервер, который и принимает запросы. Вариант плох в моей конкретной ситуации, поэтому его не использую.

Что еще можно сделать?

★★

спроси у archimag на lisp@conference.jabber.ru, он этим занимается

AnDoR ★★★★★
()

> На lisp'е пишется http-сервер, который и принимает запросы.

Вариант плох в моей конкретной ситуации, поэтому его не использую.


Чем плох то?

archimag ★★★
()
Ответ на: комментарий от slovazap

> CGI можно писать на чем угодно, в том числе и на недоязыках.

Не знаю, что там с недоязыками, но писать CGI на CL точно не стоит.

archimag ★★★
()

>2. На lisp'е пишется http-сервер, который и принимает запросы. Вариант плох в моей конкретной ситуации, поэтому его не использую.

На лиспе пишется сервер и работает по FastCGI. И этот вариант всем хорош.

anonymous
()
Ответ на: комментарий от archimag

>Хм, чем FastCGI будет лучше, чем Hunchentoot?

Можно воткнуть на шаред-хостинг, Наверное проще настроить как бэкенд к быстрому веб-серверу (nginx например).

anonymous
()
Ответ на: комментарий от anonymous

А какие свойства FastCGI способствует этому? Впрочем, нормальных реализаций FastCGI для CL всё равно нет и подобные способ построения веб-приложений популярностью не пользуется.

archimag ★★★
()
Ответ на: комментарий от archimag

>А какие свойства FastCGI способствует этому?

Стандартность и привычность:) В апачах и прочих нджинксах по умолчанию есть нужная функциональность, хостеры привыкшие, мануалов в интернете много.

Хотя я ни в коем случае не говорю, что fastcgi лучше чем предложенное вами, оно просто распространёнеее.

anonymous
()
Ответ на: комментарий от anonymous

>Можно воткнуть на шаред-хостинг, Наверное проще настроить как бэкенд к быстрому веб-серверу (nginx например).

С тем же успехом можно настроить nginx как прокси для hunchentoot, только я себе не представляю шаред-хостинг с sbcl, боюсь хостер долго не протянет :)

cvb
()

И топик надо переименовать с «common lisp в браузере» на «CL на WEB сервере».

Kpoxman ★★
()
Ответ на: комментарий от anonymous

>Ещё был какой-то проект, лисп встраивался (EМНИП, ecls) в браузер, можно было клиентский код писать на CL вместо JavaScript

Kamen Lisp http://www.progmatism.com/software/kamen/index.php

обработку DOM можно писать на этом встроенном CL, вместо JS. Другое дело, нужно собирать браузер со встроенным ECLS/Kamen Lisp

anonymous
()
Ответ на: комментарий от anonymous

Другое дело, нужно собирать браузер со встроенным ECLS/Kamen Lisp

cделано .xpi расширением, коннектится к хостовому ECLS

anonymous
()
Ответ на: комментарий от Kpoxman

> Пол Грехем такое в '98 делал, а вы задаете вопрос тут... =)

Что делал Грехем было хорошо только с его слов, как известно, Viaweb переписали (на C++ и Perl) почти сразу после его ухода. Вряд ли это делали из одной только ненависти к лисп.

archimag ★★★
()
Ответ на: комментарий от anonymous

> Hutchentoot + ParenScript + CL-WHO

CL-WHO вообще годится только для небольших демонстраций, да и целесообразность непосредственного использования Parenscript тоже вызывает сомнения.

archimag ★★★
()
Ответ на: комментарий от anonymous

err, браузер таки надо патчить. Вот кто бы этот KamenЬ под Native Client спортировал бы?

anonymous
()
Ответ на: комментарий от dmitry_vk

> На parenscript, как мне кажется, должно быть неплохо писать

библиотеки виджетов и асинхронный клиентский код.


Я по-началу тоже так думал, но в итоге пришёл к выводу, что разметка должна генерироваться на основе шаблонов. И вообще, JavaScript достаточно мощный язык и получить профит от использования parenscript можно только в достаточно редких случаях.

archimag ★★★
()
Ответ на: комментарий от anonymous

> а что тогда остаётся? Hutchentoot и ucw?

Я за Hunchentoot, поверх которого строю свой фреймворк (на котором работает lisper.ru).

UCW, на мой взгляд, можно тоже выкинуть из рассмотрения, ибо он эксплуатирует порочную (для веб) идею продолжений (что бы не думал на эту тему Грэхэм). Но если хочется подобного, то лучше смотреть на Weblocks или сейчас есть ещё CoreServer (http://labs.core.gen.tr/).

archimag ★★★
()
Ответ на: комментарий от archimag

на чём осилили, на том и переписали.. Naughty Dogs тоже когда купили, GOAL переписали на плюсах, в NASA и в MIT/SICP тоже с лиспа сползли Гораздо интереснее другие соображения: вот Google в отчёте про Unlanden Swallow пишет, что питон — одни из трёх основных языков в компании.. Питон, наверняка плюсы.. а третий что — ява?

anonymous
()
Ответ на: комментарий от anonymous

> Питон, наверняка плюсы.. а третий что — ява?

Конечно, и чем дальше, тем её там больше, вы не заметили? ;)

в NASA и в MIT/SICP тоже с лиспа сползли


В MIT несколько другая ситуация , но в NASA, насколько я помню, это было после большого заваленного (по срокам) проекта, когда специалисты по интеграции (которые сводили код от разных команд) обвинили во всём лисп. Была такая история, потом ещё было большое обсуждение на comp.lang.lisp после письма от человека, который работал в NASA и рассказал эту историю, а потом ещё рассказал о том, что когда перешёл в Google и был сильно удивлён, что многие с Python оказались более производительными чем он с CL. Ссылки на обсуждение не сохранил.

archimag ★★★
()
Ответ на: комментарий от anonymous

> на чём осилили, на том и переписали..

Система Грэхэма использовала clisp в рамках cgi и при этом работала на основе продолжений. С точки зрения технологии - просто ужас. Конечно, никто такое долго терпеть не стал..

archimag ★★★
()
Ответ на: комментарий от archimag

интересно. Пруфлинк будет? А то про NASA JPL находится только про отладку 100M харда на 100M Miles растоянии

Про Java/Common Lisp вроде что-то Steve Yeggie и Eric Sсhmidt в бложиках писали

Ссылки на обсуждение не сохранил.

если вдруг

anonymous
()
Ответ на: комментарий от archimag

всё равно, лёгким движением руки можно было превратить в сервер приложений ^W^W веб-сервер. Тупо ниасилили разбираться и переписывать.

anonymous
()
Ответ на: комментарий от archimag

«более производительны» в смысле личной производительности программиста или эффективности написанной им программы? Вот он, ынтерпрайз — второе не так уж важно на самом деле, первое куда лучше масштабируется

anonymous
()
Ответ на: комментарий от archimag

в то время лиспы были жирными, железо было дохлое. Если бы эта история повторилась сейчас, выбор бы был очевиден.

CL-USER
()
Ответ на: комментарий от CL-USER

> в то время лиспы были жирными, железо было дохлое.

В 2002-году? Или когда? Ну да не суть. Я к тому, что все эти ссылки на Грэхэма и NASA, если копнуть чуть глубже, просто блеф. Как и сказки про «ацкую элиту». Common Lisp замечательный язык и в последние лет 7 получил новое развитие и именно последние результаты и представляют практический интерес, но не надо заглядывать в его прошлое, ибо там скелет...

archimag ★★★
()
Ответ на: комментарий от archimag

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

да, тот смаый, в пыльном шкафу

CL-USER
()
Ответ на: комментарий от archimag

>профит от использования parenscript можно только в достаточно редких случаях.

возможность преобразования кода (ручное преобразование кода в CPS выглядит не очень удобной), генерация клея между серверной и клиентской частью - для это ps, наверное, полезен. А саму логику клиентской части на js неплохо писать.

dmitry_vk ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.