In practice, the most general classes are the most likely to be found
useful, and they are also the ones with the fewest dependencies. This is
intentional: as you point out, the core Bioconductor infrastructure
attempts to capture most use cases, while introducing few dependencies.

There is always a desire in software engineering to mitigate coupling
between components. It is best practice then to isolate dependencies behind
abstract interfaces so as to reduce coupling. This makes your code easier
to maintain, because if such a package were to change (or even go away),
the code changes would be relatively minimal.

As for the expectations on package authors, I would argue it comes down to
the specific case, with the above guidelines in mind.

Michael

On Fri, Feb 22, 2013 at 10:32 AM, Stephanie M. Gogarten <
sdmorris@u.washington.edu> wrote:

> Following up on the discussion this morning about refining the guidelines
> for using existing classes and generics, I am wondering if there is such a
> thing as too much dependency.  Say there is a package that has a useful
> class, but it depends/imports 10 other packages (none of which I would
> import otherwise), each of which import other packages, and so on.  If I
> wanted to use that class in my package, I am thus introducing a dependency
> tree of, say, 20 additional packages.  If I could easily write my own
> version of the useful class, would it ever be worth it to avoid all the
> dependencies?
>
> I know R and especially Bioconductor is designed so that managing all the
> dependencies should be easy (just use biocLite and everything you need is
> there), but in practice it is not always so easy.  For example, I import
> package A to get a single function, but package A depends on package B
> which gets removed from CRAN, so the installation of my package is broken
> until the author of package A deals with the sudden loss of package B.
>
> I known one should always use the "base" Bioconductor classes (GRanges,
> DataFrame, SummarizedExperiment, etc.) if at all possible, but I'm curious
> about the experts' opinion on the limitations of package dependency.
>
> Stephanie
>
> ______________________________**_________________
> Bioc-devel@r-project.org mailing list
> https://stat.ethz.ch/mailman/**listinfo/bioc-devel<https://stat.ethz.ch/mailman/listinfo/bioc-devel>
>

	[[alternative HTML version deleted]]

