Thanks for the reply James. Well reasoned. First, I haven’t used Engines yet, but quite probably will. I’ve hacked a “poor man’s” version of that functionality into some plugins I wrote for myself. But Engines is obviously a professional approach. So I’ll move that way in due time.
Back to theory. You write: “there aren’t many Rails developers who really need to work on more than a single application at the same time to any significant degree”. You’d know better than I. But still, I find that hard to believe. I seem to constantly stumble over Rails consulting shops in my web searches. But even if such people work on only one site at a time, every time they do a new one, there’s that huge overlap. What do they do about that overlap?
In the absence of finding a rational criticism of Engines – i.e. one that proposes an alternative solution to this uber-DRY problem – I fall back for a tentative answer I learned practicing corporate law years ago. In that world, lawyers bill by the hour. And the “optimal” lawyer is one who is somewhat inefficient, but not so inefficient as to attract the client’s attention. In other words, if you could solve your client’s problem in one day, that might make your client happy, but it’s a shitty business for you.
I hated that dynamic back then. I’d be shocked to find this is the dynamic keeping the Engines functionality – or something that does a similar thing – from seeing the light of day. But hey, humans are humans.