[Bioperl-l] RE: Bio::FeatureHolderI interface confusion

Steve Chervitz sac at bioperl.org
Thu Jun 19 16:03:49 EDT 2003


On Wednesday, Jun 18, 2003, at 01:14 US/Pacific, Ewan Birney wrote:

<snip>
>   Hilmar and others like him like interfaces being using inside of
> Bioperl development to make explicit what developers are promising
> and how things should be stuck together. Many "micro" interfaces are a
> good thing here.

I'm also in the pro-interface camp, but writing an interface and 
conforming to it in an implementation often feels like an exercise in 
futility since doesn't buy you anything in Perl. It's purely a contract 
between developers and users, so it's a good practice, but if it's not 
helping, it's worth re-thinking. (Maybe in Perl 6 we'll get interfaces?)

The other annoying thing about interface modules is documentation (here 
I go again...). Ideally, the interface would be peppered with lots of 
useful, well-maintained information and any interface-conforming module 
can rely on those docs and just document any features specific to the 
implementation. But tools such as perldoc don't automatically 
incorporate documentation for inherited modules, so we resort to 
cutting and pasting the docs or forcing users to hunt, neither of which 
are desirable.

<snip>
> Anyway - this is a convention that we should agree on. My proposal is
> to strip bioperl of the developer style interfaces, and strengthen
> the client style interfaces.

I wouldn't object to having fewer interface modules. Another possible 
route: Convert the developer-style interfaces into read-only 
implementations where all setting happens in new() and each method just 
returns the value set during construction. Developers that need to add 
mutability can do so in a subclass. This gives folks the option of 
working with immutable objects, which is not currently possible in 
Bioperl at present.

Steve

PS. I can take some of the heat for the existence of interface modules 
in Bioperl. I recall a long-ago discussion I had with Ewan where I 
brought up the idea. So I'm eager to help ease the troubles they've 
caused.



More information about the Bioperl-l mailing list