Re: Starting work on a Java version of Metakit

[email protected] Thu, 12 May 2005 12:00:48 -0400
Newsgroups gmane.comp.db.metakit
Message-ID <OFE181235B.FD0F3092-ON85256FFF.0054FF9C-85256FFF.0057F7B8@glaxo.com>
Just a couple of comments that you can take for whatever they are worth, 
and not intended to start a "best language" war:

I can well imagine that relatively direct Java access to Metakit databases 
would be welcomed by a significant number of Java developers.  I encourage 
this effort.  There is more than a small possibility that we may need to 
implement some applications in Java, and I would be very happy to be able 
to use Metakit in that event.  Java has its place, and it is a very large 
place in web environments and web-delivered applications.

However, in my experience, for seriously compute-intensive applications or 
for applications requiring computing over substantial amounts of data, it 
is not the implementation path of choice.  Performance is seriously 
lacking.  I could give a few examples, but (again in my experience with 
both internally developed applications and with some very good commercial 
applications implemented as native Java apps), this can be a serious 
show-stopper.

To characterize Java performance as "really very good" is, of course, a 
relative characterization.  It is very often "good enough" for its 
intended use, and it is very often good enough that a user of a particular 
app wouldn't notice the difference if it were reimplemented in C.  But for 
other applications, this will not be the case.  I assure you, it will not.

Your observation that many Metakit uses are via a scripting interface is 
correct but, in this context, not compelling .  It is not the speed of the 
*interfaces* that is the issue since very little time is spent in the 
interface code.  Even then (in the most common case for Python, for 
example) the underlying GUI code (in such packages as wxWidgets and PyQT) 
or database code (BSDDB or Metakit) is in C or C++.  So this really 
doesn't suggest anything about the usability of a Java implementation. The 
whole idea of building these applications in scripting languages is to use 
that as a relatively thin layer to take advantage of the high-performance 
libraries that are used under the covers.  You would lose this with a pure 
Java implementation.

I've recently seen a beautifully designed and implemented system for 
interactive gene expression analysis written by a colleague.  He loves 
Java -- for GUI purposes.  The GUI is implemented in C# (which I take to 
be the (im)moral equivalent of Java), but all the work (statistical 
analysis, processing of data, graphing, etc.) is done in C.  He said he 
would not have even attempted to do that in Java since the performance of 
the resulting system would have rendered it unusable.  My concern is that 
a pure Java implementation of Metakit would have the same result -- and 
that would be a shame because it would limit its usability and use.  It 
just looks to me as though there is too much to lose and nothing obvious 
to gain.

_____________________________________________
Metakit mailing list  -  [email protected]
http://www.equi4.com/mailman/listinfo/metakit
(unnamed) (image/jpeg, 14 KB) - not displayed