clojure - webjure vs compojure?
(8)
Ahora, también hay una nueva llamada Noir build en la parte superior de compojure. Realmente recomendado, especialmente con Heroku .
He oído hablar de dos frameworks de aplicaciones web basados en Clojure: Webjure y Compojure. ¿Alguien me puede decir cuál es mejor?
Compojure parece estar recibiendo más rumores en este momento. No necesariamente indicativo de calidad, pero el que tiene más ojos probablemente evolucione más rápido.
Ahora puede agregar Timbre a la lista. Todos estos marcos son muy nuevos y es probable que evolucionen (o mueran) rápidamente, pero Compojure parece ser el más desarrollado de forma activa en los últimos 6 meses aproximadamente.
"Mejor" es una pregunta demasiado subjetiva para obtener una respuesta definitiva. Pruébalos y ve lo que funciona.
He estado construyendo un proyecto para mi propio uso usando Compojure y ha funcionado muy bien. En realidad, no interfiere mucho y te permite concentrarte en lo que es importante, el dominio de tu problema. El proyecto tiene alrededor de 1100 líneas de clojure solo para darle una idea del tamaño.
Compojure ha estado trabajando muy bien para mí hasta ahora. Me gusta la simplicidad del diseño, la flexibilidad y el hecho de que fomenta un agradable estilo funcional idiomático.
Servidor de muestra:
(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))
Tenga en cuenta que Compojure usa Ring internamente.
También está Moustache , que es lo que uso en TryClojure , junto con Ring. Es bastante impresionante.
Compojure se basa en Ring, que es un marco de bajo nivel que no intenta ocultar gran parte de HTTP. Es similar a WSGI (Python) o Rack (Ruby). Ring tiene un concepto de middleware, pequeñas piezas de código que pueden hacer algo significativo con una solicitud y / o respuesta HTTP, como volcar información del encabezado, administrar cookies, etc. Compojure es un marco de nivel superior, algo similar al Sinatra de Ruby. Su objetivo es proporcionar una API conveniente (o DSL, si lo prefiere) para la mayoría de las tareas que enfrenta un desarrollador de aplicaciones web. Por lo general, se usa junto con una biblioteca de generación HTML, como Hiccup.
No he escuchado mucho sobre Webjure en los últimos meses, no estoy seguro de que esté en desarrollo activo (pero me gustaría saber más). Precede a Ring, AFAICT, que parece haberse convertido en algo así como un estándar para los frameworks web Clojure.
Seguí la recomendación de Rayne sobre Moustache.
En este momento, estamos usando Ring (capa base, middleware), bigote (enrutamiento), Hiccup (generación html). Acabamos de comenzar a utilizar Compass para CSS ( http://compass-style.org/ ). Hasta el momento, estoy contento con esta colección de pequeñas bibliotecas en lugar de un gran marco de "pila completa" (Django, Rails, etc.).