[BioC] OSX location of bioconductor functions

Seth Falcon sfalcon at fhcrc.org
Fri Mar 9 16:26:48 CET 2007


"James W. MacDonald" <jmacdon at med.umich.edu> writes:

> Bobby Prill wrote:
>> As an aside, I can't imagine why the column names in ANY function  
>> would be changed.  These column names are essentially the external  
>> interface to the function.  It seems like a very bad design decision  
>> to just one day change "M" to "logFC."
>
> What has been changed is the output of a function (which is _not_ the 
> external interface to the function), and IIRC the change was made to 
> better reflect what the column contained.
>
> The version of limma that had the columns labeled M and A still does 
> exist, and a simple downgrade to R-2.3.1 and a biocLite() will get you 
> there.
>
> Anyway, I'm not sure I follow your logic. Are you saying that the output 
> of _all_ functions once written should be inviolate? So no change, no 
> matter how incremental is allowed? Personally, I couldn't disagree more 
> with this stance. You cannot improve things if you are not allowed to 
> make changes to both the API and the output.

There is a real tension between backward compatibility and forward
progress in software development.  And "progress" is in the eye of the
beholder.  I certainly understand the point of view that a code change
that breaks _my_ code is a bad design decision :-)

Perhaps it is also worth mentioning that rules for good software
design also apply to simple scripts for carrying out an analysis.
Reducing duplication and magic words can make recovering from such
nefarious changes of upstream packages much easier.

Anything in "" is a so-called magic word.  If it appears
many times, then putting it in a variable tends to be a win because if
the magic changes, you have just a single place to change your script.

More generally, any time you see the same pattern of code in your
script, there is an opportunity to create a small helper function to
remove/reduce that duplication.  Again, the idea is to have one place
to make a change, not 10.

+ seth


-- 
Seth Falcon | Computational Biology | Fred Hutchinson Cancer Research Center
http://bioconductor.org



More information about the Bioconductor mailing list