This is the mail archive of the
java@gcc.gnu.org
mailing list for the Java project.
Re: java acedb database
Jean Thierry-Mieg wrote:
Dear java/gnu herders
I am one of the main authors of ACEDB (http://www.acedb.org), an object
oriented database system which has been used worldwide for the human
genome project (http://www.aceview.org)
The code is in C, about 250k lines, runs on any unix ever tested, and is
freely distributed under gnu-licence
Because the code is now 15 years old, and single threaded, I consider
redesigning it.
The natural choice of language may be C++, but it seems to me that Java
class hierarchy and variable scoping
are preferable to C++. However, untill recently, Java could not be
considered because a database kernel has to be compiled in native
machine code, interpreted byte code is necessarily too slow.
I might get shot for saying it here, but current commercial JVMs (like
Sun's and IBM's) are quite good, and in many cases as good or better
than native C++ compilers.
Here are my questions,
1) considering the development of GCJ (gcc-java) would you recemmend
Java to write a large code where performance is crucial. Critical
operations are sorting, hashing, string searches. How would the speed
compare to dedicated C code.
If speed is the *only* criterion, it is hard to beat C. If care is
taken, java code can come close.
2) Will Java provide a performant implementation of multi threading.
Yes.
3) Is it true that, using GCJ, Iwill be able to compile on (nearly) any
unix machine (ibm,sun,mac,hp,intel....)
Current GCJ support is somewhat patchy. I think for major platforms
(i.e. x86/linux) GCJ is fairly complete. For some of the more obscure
embedded platforms it is missing support for some things (reflection)
and some other language features (synchronization and exceptions) have
slow implementations.
David Daney