4 ms·
I spent most of my vacation hacking on Clojure including prodding yogthos into getting Luminus ready for the outside world. I am trying, very hard, to make Clo
by codewright 14y ago
I spent most of my vacation hacking on Clojure including prodding yogthos into getting Luminus ready for the outside world.
I am trying, very hard, to make Clojure + Ring/Compojure work for my web development projects but it's just not more productive than Python/Flask. Not by a long shot.
For one thing, the debugging story isn't as good as Python or Common Lisp. I'm accustomed to having a trivially injected in-language unified debugger/REPL environment in Python and CL. Swank/CDT comes close but is abandoned/awkward, Ritz is on nREPL but it's unclear to what extent it's just using Java debug tooling.
Another problem is templating. I'm sufficing with Hiccup for now, but it's a far cry from ERb and Jinja templates. Doing something relatively simple like pagination is out-and-out irritating in Hiccup. Kicking up random template overrides like for headers, footers, title tags, etc are more annoying in Hiccup and Ring.
This is partly due to the fact that in order to have a parent with a bunch of children functions generating the HTML, the only way to override is to manually and explicitly kick a map of data from the handler to the template function and back to the parent being overridden.
The only indication I've seen that anybody in the Clojure world truly understands the needs of web development is Kiln.
https://github.com/straszheimjeffrey/The-Kiln https://github.com/straszheimjeffrey/The-Kiln
Most others I've spoken to have brushed off my concerns as trivial. Well yes, sure, from an engineering standpoint. But I still need my projects to handle the whiplash of a fickle product manager whether you think it suits your "simple" design principles or not.
I've been trying to use Clojure for my projects since '08 or '09. I was excited when MMc announced Ring and less excited when he moved to Go. I'm tired of waiting for Clojure to become practical.
I get that the Clojure community needs to have their daily 5 minutes of hate for Rails and Django, but those communities have been shipping a lot of quality websites. I even understand their distaste as I use a minimalist web framework (Flask) myself.
Shipping > aesthetics.
I'll port my current project back to Flask/Jinja/Mongo unless I have an epiphany regarding templating and managing state in Clojure.
The simplicity of Clojure's ecosystem serves only to make my own life more complicated.
I still can't get over the fact that it's a Lisp without a good native inline debugger.