3 ms·
I've used it in a few projects years back, haven't used it in a while, then came back to it recently. The difference is night and day, to say the least, and tha
by dizzystar 10y ago
I've used it in a few projects years back, haven't used it in a while, then came back to it recently. The difference is night and day, to say the least, and that "day" is much brighter than it ever was before.
Back then, you did lein new compojure app then you had to figure out what to change in your handler file to get the thing up and running. Today, build, run, and everything just works.
Security has seen a massive improvement, ring comes with CRSF by default, and the libraries have improved dramatically. The Bedra talk was on point, but no longer as relevant.
A constant is the few libraries, and I'm pleased to see that they have been relatively stable. This could be seen as a good or a bad thing, but I personally don't want a lot of diametric and constantly new choices when I'm trying to build projects. JavaScript has flavor of the week, Clojure tends to be very conservative.
With all that said, I don't mind using it in production because it is just me alone working on my own projects. I've interviewed with a few places that use it in prod and they are a) very happy using Clojure and b) are on polyglot stacks. I'm not aware of anyone using Clojure completely alone.
The inherent problem with Clojure is that, rightly or wrongly, the perception from many programmers is that it is too hard to learn, so there is no selection of programmers, and the perception matches from the hiring companies. Companies will be much more picky on who they even talk to. You also have to consider that the common stacks are large framework / ORM / a lot of things baked in / etc. Clojure strips away all of this magic. It appears that many programmers just aren't comfortable working this close to the metal (have no opinion on this and don't want to get into it).
Since there is a dearth of programmers, I would never build a project that I intended to hire more people to work with, so really, I'd choose any of the more-known languages to build very large projects.
My recent project is here: https://www.butternotes.com/ https://www.butternotes.com/
I'm using Clojure / Compojure and using a lot of XML generating code for this. I'm happy with the speed of development and happy with how easy it is to make major changes and expand them globally. So, what you lose in defaults you gain in flexibility, which is the trade-off you are required to take on when working with Clojure. There is no analog to Rails, Django, etc.