BTW, while I do claim that you can solve the majority of the world’s problems using an arbitrary handful of operations, I never claim that actually requiring (or even recommending) the world to do so is a good idea. It’s a wonderful thought experiment, but trying to evangelize that the world only requires a fixed number of verbs is quite odd.
How to put this respectfully, and without sounding condescending, hmm… It’s tough, because as I see it, the fundamental theorem of software architecture (and design in general, for that matter) is that only through constraint is utility generated. This is what the work of luminaries such as Dewayne Perry and Alex Wolf, and Roy Fielding taught us (for software architecture, at least – others such as Christopher Alexander have done it in other fields). How do you tell somebody like Don that, without getting his knickers in a twist? I’m stumped. But it’s something that needs to be said, and as my regular readers will know, it’s not a task I shy away from. 8-)
So IMO, there’s really two separate fundamental misunderstandings going on here, and until the first – the role of constraints in design – is understood, the second – the value of the uniform interface – can probably not be fully appreciated.
It seems that well-intentioned efforts such as Dave’s latest are trying to bridge the divide via incremental progress; if only we tweaked this, or hacked that, we’d have something which could have the best of both worlds! Sorry, but successful design just doesn’t happen like that. You need the big picture, and to have the big picture you need to fully understand the architecture of the two systems you’re trying to bridge.
P.S. Peter Lindberg spotted a James Fallen poem relevant to this topic;
Every task involves constraint, Solve the thing without complaint; There are magic links and chains Forged to loose our rigid brains. Structures, structures, though they bind, Strangely liberate the mind.