Clojure at a Newspaper
pitheringabout.com
pitheringabout.com
The CTO, Clifton Cunningham, did help by giving us the space to create new things. For example we also work on our own Javascript library for building the in-house CMS - https://github.com/MailOnline/milo
However, Clojure (we also use Node.js BTW) really does work for us. In the 11 months since Jon's blog post, the code has grown (I guess 30-40k LOC across several processes) but it also does much more too. I think Clojure helps because it gives more freedom to refactor/factor the code in the way the team want.
For example a decision could be made to create a microservice for a commonly used URL or API. Sure you can do that in other languages, but it just seems easier with functional languages, I think because the composed functions seem easier to lift and shift. I've no evidence for this, just gut feeling. I spent years doing Spring/Hibernate etc and really don't miss it.
We'll definitely continue to support Clojure and other functional languages.
My experience can't help me much, but I sure want to try it.
After all, the majority of sites like this are getting data from <data store>, squeezing through <template> and delivering to the user's browser. The language you do that in will have a much smaller effect than, say, your caching strategy (particularly at a high volume site like MailOnline).
Evaluating impact of tool choice requires experience and is intertwined with other factors. My experience tells me that Clojure's use is significant.
http://youtu.be/HGH66JhUkis?t=8m59s
The old system was 155,000 lines of Java and similar. The team before him tried to rebuild using J2EE and XSLT and failed to get anything working in 8 months of trying. They then reorganised and rebuilt the system in about 4000 lines of Clojure:
Some early experiments with Ruby were beset by problems the VMs - Ruby MRI vs JRuby vs Rubinius etc ... We also had strange performance issues on JRuby, but not sure we ever really tracked it down.
In comparison getting Clojure running was easy. I felt so comfortable that I even tried emacs for a while (vim user) :P
I encourage anyone used to an object oriented approach of doing this to give Clojure a try. I used to do this for years in an MVC setting - it's a huge effort for no benefit whatsoever.