フレームワーク論というより、制約と自由の関係について
インターフェースってのは、そもそもAPIの仕様を外部に公開して「呼び出してもらう」ために存在するわけです。 それをフレームワークがユーザアプリケーションを呼び出すときにインターフェースを押しつけて「呼び出してあげるから、 こーいうふうにクチを開けて待ってなさい」というのは、よくよく考えてみればなんとエラそうなことか。
ほとんどの場合、それが真実でもええと思うけど、次の2点をわりと考えたりします。
・インタフェースという制約が開発に統一感を与え、それゆえにある一定の自由を与える場合がある(制約による自由)
・インタフェースを適用しない代替手段があまりに制約が強い場合か、あまりに自由度がありすぎる場合、適切な手段とはなりえない。
アノテーションでも規約でもそうですが、覚えなくてはいけない量というのには閾値があると思っていて、
それが増えすぎるようであれば、テストのし易さが確保されている限りにおいて、インタフェースによる代替手段でも問題ないのではないかと思います。
また、矛盾しているようですが、フレームワークはミドルウェアなどと違い制約を与えるべくしてあるものです。
フレームワークの制約によって、できること・できないことがはっきりするので、自由な部分もおのずとはっきりして、
開発者が迷わず形にできることが良い点であると思います。
開発者というカテゴリが正しいかどうかわからないですが、人間あまりに自由すぎると今度は制約が欲しくなるものです。
逆に制約があるからこそ、自由な部分がある程度はっきりして、その制約内の束の間の自由に満足できればそれでよいんじゃないでしょうか。
(追記)ああ、自分でも書いてましたね。前から同じこと思ってるんだねえw