53 karma · joined January 27, 2013
We ended up deciding that with the move to component based front end frameworks (react, storybook etc) that the overhead of this wasn't worth the benefits - every developer needs it running, along with lots of services etc.
I'd love to understand what others are thinking about composition on the front end these days. I guess the fact this just got created means that the problem we were trying to solve in 2014 still exists - so perhaps I have my answer?
Is there a way to turn off all the skeuomorphic design elements? Paper background? Lots of sliding panels, it's really hard to navigate around and very busy, even on a big screen. I think they need to completely cut it back and simplify, and I'd use it in a heartbeat.
The API based separation is a good idea for real sites (vs blogs), I think it will catch on and is a much better design than the all in one CMS design behind things like Wordpress, Drupal or Ghost.
A functional map is definitely analogous to a visitor pattern, but don't underestimate how much of a productivity boost arrives by being able to see all of the code in a small set of terse statements in one place, vs having a set of fairly abstract classes with accept/visit scattered all over the place.
We just found that the OO solution resulted in more code and it was more difficult to hold the resulting model in your head as the number of things that could be visited grew - we run a very big site.
The other big enabler vs a traditional CMS approach is that we have a very clear separation between the part of our stack that allows editors to create content, and the part that renders it (connected via messaging) - so we aren't mixing r/w domains and our rendering pipeline isn't burdened with the additional complexity of having to understand how content changes, it just renders what it is given as fast as it can.
The REPL made the first week of exploring the problem and solution space really effective, and even as a node guy I was impressed with what could be done.
I can say that there is definitely a big productivity boost, but as others have said it isn't purely the language, but rather thinking about the problem in a completely new way that really did it. I do credit clojure though with giving our engineers the ability to think differently, as that is often the hardest part.
There was a comment I made in a speech recently about functional programming being frictionless for content management system design, this is what I was alluding to.
I don't want to start a flame war, but we built an earlier version in ruby (with one of the best OO guys I know leading it), and it was much more complex through attempting to model our home page as a set of inter related objects, using visitor patterns to traverse etc., than the clojure version.