I can add some more details here, because I'm still at the MailOnline :)
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.
With 30-40k LOC, could you please share the extent to which you feel protected when refactoring given that Clojure is dynamically typed? Some of my colleagues argue that often times a static compiler is the only thing keeping the ship upright in a large org with a big codebase, and unless your team is small and very smart, it would be foolish to use a dynamically typed language.
My experience can't help me much, but I sure want to try it.
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.