Skip to content

Commit 3d59ac4

Browse files
dicknetherlandsandreasprlic
authored andcommitted
/* Major problem areas */
1 parent d10851b commit 3d59ac4

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

_wikis/BioJava3_Proposal.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,16 @@ Major problem areas
147147
Quad cores are common on servers. If code is threaded the JVM can
148148
easily make use of these extra cores. Additionally many parts of the
149149
code base are currently not thread safe.
150+
7. Most of the code is not bean-like and therefore cannot easily be
151+
used in any of the modern Java EE frameworks such as Spring or
152+
Hibernate.
153+
8. Equals, compareTo and hashCode methods are inconsistent and often
154+
inaccurate, e.g. customised to suit a certain behaviour pattern
155+
(e.g. the BJX extensions assume that nulls are allowable for the
156+
purposes of Hibernate, whereas really they shouldn't be and
157+
Hibernate doesn't need them either). Changing these would change the
158+
behaviour of the object model particularly when it comes to
159+
collections and maps.
150160

151161
Categories of Improvement
152162
-------------------------

_wikis/BioJava3_Proposal.mediawiki

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ It is suggested that development stop on the existing BioJava/BioJavaX/BioJava2
5454
#In general, most operations require a Sequence object underlying whatever object you are manipulating. At the time BioJava was designed and written, this was fine as most biologists were interested in sequence manipulation. Now they have moved on and are more interested in sequence meta-data such as features or protein structures or microarray experiments or phylogenetics. To enforce having to load the sequence for every feature in a region of interest before doing even basic analysis is wasteful of resources, and illogical. BioJava needs to lose the Sequence-centric view of the world.
5555
#Interfaces that have already been deprecated in the 1.5 release need removing entirely. Many of them are heavily used within the existing code base, e.g. Sequence. To remove them would require a rewrite of almost the entire codebase anyway, and also a rewrite of most client code (e.g. to use RichSequence as the default replacement for Sequence, which would no longer exist).
5656
#The code base doesn't take advantage of the possibility of threading for multiple CPU's. Dual core cpu's are now standard on everything. Quad cores are common on servers. If code is threaded the JVM can easily make use of these extra cores. Additionally many parts of the code base are currently not thread safe.
57+
#Most of the code is not bean-like and therefore cannot easily be used in any of the modern Java EE frameworks such as Spring or Hibernate.
58+
#Equals, compareTo and hashCode methods are inconsistent and often inaccurate, e.g. customised to suit a certain behaviour pattern (e.g. the BJX extensions assume that nulls are allowable for the purposes of Hibernate, whereas really they shouldn't be and Hibernate doesn't need them either). Changing these would change the behaviour of the object model particularly when it comes to collections and maps.
5759
5860
==Categories of Improvement==
5961

0 commit comments

Comments
 (0)