[Biojava-dev] Java 1.5 (final chance to object)

mark.schreiber at novartis.com mark.schreiber at novartis.com
Sun Oct 9 21:58:34 EDT 2005


>Stability and backward compatibility are crucial to the success of 
BioJava.
>In fact, if the code is not too complex, I often have to write it myself
>rather than
>relying on BioJava. I want to write code that will still be in production
>5 years from now.

This stems from the fact that for several years package stability wasn't 
really a design goal. This was good cause often our first attempts where 
not that good. Having said that, stability is definitely a goal now. I 
beleive there has been a great reduction in major API changes between 
recent versions. Indeed many core interfaces have not changed in a long 
time. But we do need to remain vigilent. Basic rule, do not break the core 
org.biojava.* API's!

There are some reservations to that. 1) Deprecation will happen. There is 
nothing wrong with deprecation of a bad or unsupported API and as long as 
it is flagged well before releases come out. Preferably there should be 
one or two releases where a method or class is deprecated before it is (if 
ever) finally removed. 2) New packages in CVS should never be considered 
stable. If an API has not been part of a release version I don't think we 
need to guarentee stability.

When org.biojavax is released no org.biojava.* API will be removed or 
changed. Some will be deprecated as the org.biojavax APIs may give you a 
better alternative. They are not really seperate APIs, more extensions 
that give more fexibility and sometimes do things better (like swing is to 
AWT). The part where people may see problems is interactions with BioSQL. 
Previously biojava worked with bioSQL but not in the way it should 
according to the bioSQL specs. The new version will bring it into line 
with bioSQL. The old APIs will remain should people need to access legacy 
data in bioSQL DBs created with the old API.

>I say that, not because I don't appreciate the hard work of developpers,
>but because I would like the volunteer developpers to appreciate that
>the users of the toolkit need stability. We live in production 
environments
>that will not support 1.5 for a long time. I am still living in a 1.3 
world.
>Only projects that I am starting right now can use 1.4.2_08.

The major releases from the past support the following versions, 
biojava1.3 and biojava1.3.1 work with JDK1.3.x and biojava1.4 works with 
JDK1.4.2. You should never prepare production code from versions of 
biojava in CVS. The best way to make production code is to bundle all your 
application dependencies into the application JAR. This way everything is 
in one place and no external changes affect it (and keep the required 
version of the JDK available if you upgrade to a new one). It's not 
elegant but it is bullet proof. There are other approaches that work too 
but need more management.

>I beg you, Please reconsider moving to 1.5, it's only 5% more typing to 
use
>1.4.

Sure, people just need to stop dropping 1.5 dependent code into the CVS. 
Please note though, biojava1.4 will never require java1.5, it would only 
affect future versions. Richard is planning a preview of biojavax in 
december. We may revisit the issue then.

Ps, what JDK is caBIO running on now?


Mark Schreiber
Principal Scientist (Bioinformatics)

Novartis Institute for Tropical Diseases (NITD)
10 Biopolis Road
#05-01 Chromos
Singapore 138670
www.nitd.novartis.com

phone +65 6722 2973
fax  +65 6722 2910


_______________________________________________
biojava-dev mailing list
biojava-dev at biojava.org
http://biojava.org/mailman/listinfo/biojava-dev
_______________________________________________
biojava-dev mailing list
biojava-dev at biojava.org
http://biojava.org/mailman/listinfo/biojava-dev





More information about the biojava-dev mailing list