Obviously, we are pretty split in the code base. I think the majority of the interfaces inside NetUI use the 'I' and outside of NetUI there may not be any. I think we should just punt on this one and say "consistency" within a set of code overrides consistency across Beehive. New interfaces should probably not use 'I', but in areas where it is used extensively, they may (for example the tags).
No way do I want to deprecate interfaces and change them to the other version. If we want to do that we should do it now and just replace them before we finalize 1.0. This would require I believe a vote to go forward with because it does affect anyone subclassing things (I know there are at least some tag sublcasses out there). That said, I'm a strong supporter of 'I' on interfaces. Having written a lot of C#/CLR in the last 4 months, I think this makes things very readable and understandable when you are unfamiliar with the code. (This is the same argument for the '_' on module level variables.) On 6/8/05, Eddie ONeil <[EMAIL PROTECTED]> wrote: > The "I" naming convention is applied to only Java interfaces like: > > public interface IFoo {...} > > It's not meant to be used on abstract base classes -- which aren't > interfaces -- just an API. > > It's really meant to make very obvious in code what is and is not an > interface without having to consult the Javadoc. > > It's a convention both Daryl and I used a bunch, but I'm not wedded > to it and would be fine if we agreed to move away from it. Doesn't > seem that common in Java land anyway... > > Eddie > > > On 6/8/05, Jeremiah Johnson <[EMAIL PROTECTED]> wrote: > > > [9] We name interfaces with a 'I' at the beginning of them... > > > > Is this point about Java interfaces or conceptual interfaces? > > > > For example, PageFlowConstants is a Java interface, but not really an > > 'interface' in my opinion. While constants inside of PageFlowConstants > > may be part of the API between two entities, the PageFlowConstants file > > itself does not define any methods so it isn't really an API between two > > entities. > > > > On the other hand, SQLSupportConfig does fit my definition of interface > > but it isn't a 'Java interface'. It is defined as 'public abstract > > class SQLSupportConfig'. > > > > Or does something need to be a Java interface and be externally visible > > to be a big-I interface? > > > > Something else? > > > > - jeremiah > > > > >