5 ms·
Not OP, but I've got 5 years experience writing a Clojure web app from scratch. It began as kind of as a knee-jerk reaction to using Rails for a few years. All
by _sdegutis 9y ago
Not OP, but I've got 5 years experience writing a Clojure web app from scratch. It began as kind of as a knee-jerk reaction to using Rails for a few years. All the reasons you mentioned are reasons we chose Clojure to implement CleanCoders.com: it was a simpler language, immutability caused fewer weird bugs, the community favored transparency over Rails-esque magic, it was fast, and everything felt very composable since mostly it was just functions. Overall it was nicer than using Rails. But honestly I wouldn't say it was much different of an experience than using Sinatra or Express.js. We had to plug a lot of tools together, which was kind of the real benefit over Rails, but it also came with its own cost, namely that you have to plug everything together, even if they don't fit well together, and half the time you just had to write some things yourself that you would have gotten for free in Rails (for better or worse). These days I personally am just fine writing in modern JS. Destructuring, lambda syntax, and object literals almost make it a tie with Clojure's terse syntax. And in practice mutation isn't really something that happens too often now that people have mostly learned that you should generally prefer returning new objects.
- Scarbutt 9y agoThese days I personally am just fine writing in modern JS. Destructuring, lambda syntax, and object literals almost make it a tie with Clojure's terse syntax. So isn't there anything you wish you had or missed from Clojure? Not even the JVM?
- _sdegutis 9y agoWith how many libs I've been able to find on NPM, I don't miss the libraries of the JVM really. Most (if not all) of them have been rewritten by now. And the speed and concurrency of the JVM itself is great when you want to scale vertically, but there are plenty of decent ways these days to scale horizontally instead. The only thing I kind of miss is REPL-driven development, but for the most part that's only really a crutch for Clojure's slow launch, and it's just as easy in Node to write some experimental code at the top of your main file with an early exit, auto-reloading it using nodemon, and outputting whatever you're trying to see. You lose the ability to have live objects, but 99% of the time that's a non-issue.