On Wed, 20 May 2009 09:47:51 +0100
Nicolas Rodriguez <email@example.com> wrote:
> Stefan Hoops wrote:
> > Hello Mike,
> > I think you are addressing 2 different issues here. The first is
> > whether its is desirable/feasible to provide a pure java version of
> > libsbml. Whereas the second is whether official extension need to
> > provide libsbml support.
> > I think the later is easier to decide. The reality is that we can
> > not enforce it, especially not the constant maintenance of such a
> > support library. Thus the existence of an libsbml extension for
> > SBML packages as a requirement for an official SBML L3 package
> > should not be made.
> I agreed that it would be hard to require that. But in practice, if
> there is not such an extension, the
> SBML L3 package will be less used/supported I think.
This correct but we must not confuse libsbml which is an SBML enabling
tool and SBML. I agree that it is in the best interest of any package
to provide an libsbml extension.
> > Regarding the pure Java support. In another thread you said that
> > portability would be a benefit of such an implementation. My
> > personal experience is that the gain is minimal. We have less
> > problems compiling the C++ version of libsbml on any platform as to
> > getting it to work with the different java installation.
> I think, you are exactly speaking about one of the problem here, it
> is difficult to make the libsbml bindings works properly.
> And you have to compile first (or ask the users to compile) libsbml
> for the different platforms before trying to setup the java bindings.
> With a pure java implementation, all of that is gone.
This is correct however the availability of libsbml installation
packages would relieve this issue considerably and is far easier to
achieve than providing pure java bindings. Additionally this approach
would benefit all the user of other language bindings too.
> > In theory the latter should be
> > trivial but it is not. A pure java implementation will face similar
> > problems. This is why most larger java based application ship with
> > their own particular java version.
> Wrong assumption here, the jre is often ship with an application to
> be sure it is available to run the application and
> that the user do not need to do anything else that click a button to
> launch and run it properly.
> May be Oracle is one of the only one that ship their own JVM in
> purpose but it will probably change in the near future.
No, I have seen multiple commercial software package which ship a
particular version of the JVM. This is not necessarily a modified
version, i.e., it comes directly from SUN (now Oracle since you mention
it). This leads to the fact that you have multiple JVM installed. The
assumption that all java software works with all JVM is definitely
> > In a world with unlimited resources a pure java implementation is
> > nevertheless desirable. But we have limited resources and I would
> > prefer to spend them on increasing the reliability and improving the
> > java bindings or making them more java like. This seems to me a far
> > more efficient approach.
> There is no certainty that this path will be the less time consuming.
Yes, but it is very likely. The only thing which the addition of a pure
java binding would remove from the libsbml development tasks is to
maintain the java bindings. I think it is very unlikely that the
maintenance of the bindings is more time consuming than developing and
maintaining a pure java implementation.
> > Another often mentioned concern is the ability to deal with large
> > models. I think that java is not the ideal way to address this.
> Again, an other misconception, most applications dealing with
> terabytes of data developed at EBI are written in Perl or Java.
> And, the most important point is that java application are tolerant
> to errors and reliable and performance is not anymore a problem this
As long as you stream the data I agree that Perl and java will do a
sufficiently good task. However, the memory overhead of holding the
data is far larger than in C (or C++). As far as I recollect is most of
the EBI terabytes of data in databases and the Perl and java programs
handle only the return of SQL queries.
The error tolerance of any software is not depending on the programming
language. It is depending on the error handling the developers
implement and the amount of quality insurance (testing) part of the
development process. The libsbml has done a fantastic task to develop
and maintain a huge amount of tests to assure the quality of libsbml.
Stefan Hoops, Ph.D.
Senior Project Associate
Virginia Bioinformatics Institute - 0477
Bioinformatics Facility II
Blacksburg, Va 24061, USA
Phone: (540) 231-1799
Fax: (540) 231-2606
To manage your libsbml-development list subscription, visit
For a web interface to the libsbml-development mailing list, visit
For questions or feedback about the libsbml-development list,