Webjure vs compojure?

Я слышал о двух платформах веб-приложений на основе Clojure: Webjure и Compojure. Может ли кто-нибудь сообщить мне, что лучше?

Ответ 1

Теперь вы можете добавить Ring в список. Все эти структуры очень новы и могут быстро развиваться (или умереть), но Compojure, по-видимому, наиболее активно развивается на основе последних 6 месяцев или около того.

"Лучше" - слишком субъективный вопрос, чтобы получить окончательный ответ. Попробуйте их все и посмотрите, что работает.

Ответ 2

Compojure работает очень хорошо для меня до сих пор. Мне нравится простота дизайна, гибкость и тот факт, что он поощряет приятный идиоматический функциональный стиль.

Пример сервера:

(use 'compojure)

(defroutes my-app
  (GET "/index.html"
    (html 
      [:h1 "Hello World!!"]
      [:body "This is some text"]))
  (ANY "*"
    [404 "Page not found"]))

(run-server {:port 80}
  "/*" (servlet my-app))

Обратите внимание, что Compojure использует Ring внутри.

Ответ 3

Вторая рекомендация Райна по Усы.

Сейчас мы используем Ring (базовый уровень, промежуточное ПО), Mustache (маршрутизация), Hiccup (генерация html). Мы только начали использовать Compass for CSS (http://compass-style.org/). До сих пор я доволен этой коллекцией небольших библиотек, а не большой структурой "полного стека" (Django, Rails, ect...).

Ответ 4

Теперь есть еще один, называемый Noir на вершине compojure. Настоятельно рекомендуется, особенно с Heroku.

Ответ 5

Compojure, похоже, сейчас получает наибольшее удовольствие. Не обязательно указывать на качество, но тот, у кого больше всего глаз, вероятно, будет быстрее развиваться.

Ответ 6

Существует также Moustache, что я использую в TryClojure, вместе с Ring. Это довольно удивительно.

Ответ 7

Compojure основан на Ring, который представляет собой низкоуровневую структуру, которая не пытается скрыть большую часть HTTP. Он похож на WSGI (Python) или Rack (Ruby). Ring имеет концепцию промежуточного программного обеспечения, небольшие фрагменты кода, которые могут сделать что-то значимое с HTTP-запросом и/или ответом, например, информация заголовка dump, управлять кукисами и т.д. Compojure - это структура более высокого уровня, несколько похожая на Ruby Sinatra. Его цель - предоставить удобный API (или DSL, если хотите) для большинства задач, с которыми сталкивается разработчик веб-приложений. Он обычно используется вместе с библиотекой генерации HTML, такой как Hiccup.

Я не много слышал о Webjure за последние несколько месяцев, я не уверен в активной разработке (но мне было бы интересно узнать больше). Он предшествует Ring, AFAICT, который, похоже, стал стандартом для веб-фреймворков Clojure.

Ответ 8

Я строил проект для собственного использования с помощью Compojure, и он отлично справился. Это не очень сильно мешает и позволяет сосредоточиться на том, что важно, вашей проблемной области. Проект составляет около 1100 строк clojure, чтобы дать вам представление о размере.