Functor-Oriented Programming
Seems to be similar to the direction taken by John De Goes (using algebras to describe your problem domain, building programs from those algebras via free monads/applicatives/etc., interpreting those programs using natural transformations).  I think there is definitely something to this kind of thinking.<p>Both authors argue that modern programming languages do not have the best ergonomics for this style of programming, albeit it is at least possible to do most of it in languages such as Haskell and Scala.<p>1. Data Structures Are Antithetical to Functional Programming [<a href="http://degoes.net/articles/kill-data" rel="nofollow">http://degoes.net/articles/kill-data</a>]<p>2. A Modern Architecture for FP [<a href="http://degoes.net/articles/modern-fp" rel="nofollow">http://degoes.net/articles/modern-fp</a>]<p>3. Modern Functional Programming: Part 2 [<a href="http://degoes.net/articles/modern-fp-part-2" rel="nofollow">http://degoes.net/articles/modern-fp-part-2</a>]