WTPayne
Yesterday, Joel Spolsky talked about Software Inventory (http://www.joelonsoftware.com/items/2012/07/09.html), and mentioned a minimalistic project management tool that he would like to see made called "Five Things". Well, I think that we have a bigger problem of Intellectual Inventory - a glut of information, too many books, academic papers and articles that sit on the to-read list, all relevant, all interesting, and not enough time left in our life to digest it all. (It is true ... I did the sums - I have about 300 years worth of reading in my backlog)
So here is my problem: Intellectual Inventory management; productivity optimization; focus management.
Towards Semantic Code Search
In my mind, the difficulty lies not with OOP per se, but in the thought-patterns and practices that have grown up around modern OOP programming, and the mental confusion that we have between the construction of models, the design of algorithms, and the creation of machines to help solve a particular problem. To a large extent, we lack the intellectual tools required to understand the problem; or, at least, the use and understanding of those tools is not widespread.
Personally, I suspect that there is a significant difference between product-centric thinking (design the product, ignore all else), and product-line-centric (or capability-centric) thinking (design the machinery that will make it trivially easy to design the product). This, for me, is a more important distinction than OOP vs FP, or any other dichotomy that you might care to mention.
I am not suggesting that I am right here, mind you: this is just the way that I feel; my gut instinct ... so perhaps some Socratic questioning might be in order here:
Let me start.
What problem, as software developers, are we actually trying to solve?