Using Clojure for Web Apps
Some of my favorite Clojure libraries in this space:<p>- instaparse: takes EBNF (and other formats) as a string and gives you a parser instantly (!!!) <a href="https://github.com/Engelberg/instaparse" rel="nofollow">https://github.com/Engelberg/instaparse</a><p>- re-frame: React-Redux alternative that IMO is much easier to work with <a href="https://github.com/day8/re-frame" rel="nofollow">https://github.com/day8/re-frame</a><p>- reagent: React wrapper <a href="https://reagent-project.github.io/" rel="nofollow">https://reagent-project.github.io/</a><p>- ring <a href="https://github.com/ring-clojure/ring" rel="nofollow">https://github.com/ring-clojure/ring</a><p>- fulcro <a href="https://github.com/fulcrologic/fulcro" rel="nofollow">https://github.com/fulcrologic/fulcro</a><p>More than any library, though, what keeps bringing me back to Clojure is its incredibly blissful set of persistent data structures. It's a pernicious accident of history that we are taught to accept references to mutable objects as normal, inevitable, and desirable in most CS curricula. It is much easier to develop, debug, and maintain immutable data structures instead, and I consider my good fortune every time I get to debug something in Clojure rather than in some reference-laden OOP soup.