For open source libraries, I think it worthwhile to invest extra effort
to maintain binary compatibility. So, (when creating libraries in Java)
I model interfaces as a empty abstract classes, allowing more
evolutionary freedom without breaking binary compatibility.
For application code, I think that it more obvious to model an interface
with an interface. When in this mode, I lean towards prefixing with 'I'
(rather than suffixing or prefixing implementations with Impl or Default).
I see tentacles as an application, so I lean towards conventional
application coding style and am less concerned about being able to
maintain binary compatibility going forward.
Opinions? Objections?
Robert