I started to learn in bits and chunks about Clojure. While reading, it made me think how a non-trivial system in it will look. There are solutions to common problems, but it would be nice to see it manifest.

I plan to write more, but these are interesting links that I picked up on the topic.

I was interested in answering your question : “How would you write code in Clojure?” Or, how would you write a really big system in it.

http://blog.ionelmc.ro/2014/09/22/ramblings-about-data-structures/

This is about dealing with the balance of the utility of a specific data structure/class vs. a general data structure, such as a list, and the engineering balance/consideration you have to deal with

http://www.smashcompany.com/technology/object-oriented-programming-is-an-expensive-disaster-which-must-end

This is a very long and very long-winded diatribe against OOP. I like reading diatribes against OOP, because they are geeky fun reads. But he had some interesting thoughts along the way; his counter-examples all use Clojure, so this got me into looking into Clojure more.

http://loup-vaillant.fr/articles/deaths-of-oop

An article on the many ways OOP is failing.

Application architecture in Clojure: http://matthiasnehlsen.com/blog/2014/09/24/Building-Systems-in-Clojure-1/ http://matthiasnehlsen.com/blog/2014/10/06/Building-Systems-in-Clojure-2/ http://matthiasnehlsen.com/blog/2014/10/30/Building-Systems-in-Clojure-3/ http://matthiasnehlsen.com/blog/2014/11/07/Building-Systems-in-Clojure-4/

These articles are a little tough, since it tackles complex topics, but it’s interesting nonetheless.

https://github.com/stuartsierra/component

This library addresses large-system dependency injection in Clojure applications. The README in it is interesting, in perspective.