3 ms·
Of the listed frameworks I only have (limited) experience with compojure, but here is my advice. I love functional programming, but i think that we've over-hype
by pavelludiq 16y ago
Of the listed frameworks I only have (limited) experience with compojure, but here is my advice. I love functional programming, but i think that we've over-hyped it a little. As you know(i hope), there are no silver bullets. I wouldn't worry about a language being impure, purity is over hyped as well, clojure is also impure. What I used to do with clojure was to take a bunch of components(compojure, sandbar, hiccup etc.) and glue them together to make an app. I haven't been following the clojure scene for a while, but i believe thats the idiomatic way to write web apps, not the full stack style of rails or django, where you just fill in the blanks.
- ibdknox 16y agoI wrote the majority of my startup's code in Clojure using compojure et al. and that is indeed the way you end up doing it. These pieces that you use together, however, didn't require any glue for me. Like all functional programming, you use the pieces that you need in your application. In general, compojure and hiccup will take care of just about everything you need. If someone wanted a full service rails-like package, though, conjure can give that to you. The benefit of not using a one sized fits all kind of framework, is that you have immense flexibility. Want to write your templates in more of a PHP style? Use string template instead of hiccup. Want to do it like JQuery on the server, use enlive. You have tons of options. That being said, it's definitely new territory and not for the faint hearted. You will have to feel your way around a bit, but at the same time there is an extremely active and helpful community. The guy who works on compojure, for example, often responds in a matter of hours. Now having written a fairly sizable app in clojure, I'll happily say it's by far the best experience I've had writing a web app. Once past the rough edges, there's just something to be said for generating your html in manipulable clojure structures that can be mapped over and all sorts of other fun things.