Lisp - Это хорошо для веб-программирования / приложений (интерактивных)? Как выглядит рубин? Путь php есть? - PullRequest
7 голосов
/ 30 апреля 2011

Хорошо ли Lisp для веб-программирования / приложений (интерактивных), как ruby ​​и php?

Что следует принять во внимание:

  • Удобство использования
  • 1008 * готовность к развертыванию *
  • Сложность (особенно для начинающих программистов)

(Edit) Особенно я имел в виду Common Lisp после прочтения эссе Пола Грэма . Был бы мой первый язык программирования. В этой связи. Это подходит для этого?

Я слышал, что макро-функциональность Clojure не такая мощная, как у Common Lisp, и поэтому я пытаюсь изучить Clojure. Он учит программированию и очень мощный.

Ответы [ 5 ]

12 голосов
/ 30 апреля 2011

Lisp - это языковая семья, а не один язык. Чтобы хоть как-то ответить на ваш вопрос, да, существуют веб-фреймворки для различных диалектов Лисп, например, UnCommon Web для Common Lisp и PLT Racket (диалект схемы) также есть учебник на их веб-сайте:

http://docs.racket -lang.org / продолжить /

Но одним из диалектов Лиспа, на котором в настоящее время вы увидите довольно много веб-разработок, является Clojure, поскольку он может использовать существующие библиотеки Java и инфраструктуру. Вот список проектов, и он не является исчерпывающим:

  • Икота - представляет HTML в Clojure
  • Ring - HTTP-абстракция, похожая на Rack in Ruby
  • Enlive - шаблонизатор на основе селектора и многое другое
  • ClojureQL - библиотека интеграции SQL
  • CongoMongo - оболочка для MongoDB

Их было бы намного больше, но я думаю, вы поняли идею. Что касается веб-приложений Clojure, то в качестве примера можно привести учебный сайт Clojure 4Clojure, и вы можете проверить исходный код на GitHub (я иногда помогаю этому):

Как вы можете видеть, с точки зрения Clojure и веб-разработки происходит довольно много событий. Это не всегда может быть гладко, но люди работают быстро, чтобы сделать опыт лучше. Использование существующей инфраструктуры Java имеет свои преимущества, такие как возможность развертывания в Google App Engine и т. Д.:

http://www.infoq.com/articles/deadline-clojure-appengine

Надеюсь, что это несколько отвечает на ваш вопрос ...

7 голосов
/ 30 апреля 2011

У меня почти нет опыта работы с PHP или Ruby. Тем не менее, я могу сказать, что написать веб-приложение довольно просто, используя Hunchentoot, CL-WHO и одну из многочисленных баз данных (Postmodern, CL-SQLite, CLSQL или даже простую библиотеку сериализации, такую ​​как USerial или Rucksack).

Существуют также фреймворки, такие как Uncommon Web или Weblocks, но я еще не пробовал их.

2 голосов
/ 28 февраля 2013

Есть забавная цитата из Кента Питмана

"... Пожалуйста, не думайте, что Lisp полезен только для анимации и графики, AI, биоинформатики, B2B и E- Коммерция, интеллектуальный анализ данных, приложения EDA / Semiconductor, экспертные системы, финансы, интеллектуальные агенты, управление знаниями, механические САПР, моделирование и моделирование, естественный язык, оптимизация, исследования, анализ рисков, планирование, телекоммуникации и веб-авторинг только потому, что ониединственное, что им довелось перечислить. "

И, смотрите," веб-дизайн "даже попал в список!

Lisp хорош для веб-программирования, потому что он очень гибкийи s-выражения, составляющие формы Lisp, имеют некоторые сходства с HTML.Чтобы понять, что я имею в виду, посмотрите Lisp для Интернета .Обратите внимание, как он пишет макрос, чтобы в основном создать предметно-ориентированный язык для создания веб-страниц - вместо определения функций он теперь определяет страницы!Эта концепция DSL также очевидна в используемой им библиотеке CL-WHO, которая позволяет вам писать Lisp, который превращается в HTML.

Пол Грэхем успешно развернул свое собственное решение, создав то, что позже стало Yahoo!Хранить в Common Lisp (и даже больше успеха писать об этом впоследствии), и с тех пор появилось много пакетов .

Weblocks isвеб-фреймворк Common Lisp, который, как мне кажется, набирает наибольшую популярность на данный момент. видео об этом обсуждается в группе пользователей Twin Cities Lisp .UCW очень похож, но сейчас я не вижу в этом особых действий (извините, если я просто смотрю в неправильных местах). Сообщение в блоге о том, почему создатель сделал Weblocks довольно поучительно: он написал достаточно Lisp, чтобы ему больше никогда не приходилось иметь дело с HTML, AJAX и JavaScript.Это может быть преувеличением, но тот факт, что он мог даже кое-что из этого сделать, должен ответить на ваш вопрос.

0 голосов
/ 07 марта 2014

Для веб-приложения фреймворк важнее, чем язык. Если язык очень мощный, но не имеет хорошего веб-фреймворка, разработка веб-приложения сразу же становится сложной и сталкивается с множеством известных сложностей.

Подумайте о рубине без рельсовых рамок, людям это начинает нравиться из-за рельсовых рамок. Это то же самое, что и Java, использование только сервлета без Jsp или другого веб-приложения для разработки фреймворка будет ужасным.

Теперь перейдем к вашей точке зрения, простой в использовании, всегда относительный - я не смог найти какой-либо сквозной фреймворк в семействе LISP, такой как ruby ​​или python. Но я обнаружил, что Clojure значительно снижает сложность на стороне сервера. Развертывание - это зависит от сервера, а не от языка, как Java-серверу нужен файл war или ear. Обучение - это также относительно, но инструменты иногда помогают, например, отладка или иде. Но большинство семейства LISP не имеют хороших возможностей отладки.

0 голосов
/ 07 марта 2014

Это само собой разумеющееся, но такова природа вопроса, поэтому вот мое мнение.

Я бы не рекомендовал бы новичку в программировании начинать с функционального языка, особенно с Лисп.

Понятия T на функциональных языках и особенно на Clojure более продвинуты и обладают мощью, которую вам, возможно, не понадобятся на первых этапах веб-разработки.

Так как вы новичок, тогда мой ответ будет нет , Лиспс не такой же простой в освоении и использовании, как Ruby и PHP.

...