From: Peter Murray-R. <pm...@ca...> - 2005-02-15 09:41:12
|
[Crossposted to several lists - suggest we only reply on CDK] We are about to release JUMBO4.6 - effectively a major release - but came across two problems which we think need communal agreement. It affects most of the Java Open Source community. I suggest we reply ONLY on CDK to limit traffic We develop on both Java 1.4 and 1.5 and discovered yesterday that byte code *compiled on 1.5* will not run on 1.4 systems (even simple programs like HelloWorld). It fails with an incompatible version number (actually requires version 49.0 (sic) of Java). Therefore if we compiled and released JUMBO on 1.5 machines it would fail anywhere with 1.4. [We assume that J1.4 bytecode runs on 1.5 systems] Q. what strategy do the various groups have for this? Do you have any idea of the rate of take up of J1.5? javac 1.5 has a switch -target 1.4 which we assume generates byte code compatible with J1.4 systems. Q does this work? Q. have you used and deployed code of this sort? Q is it a good strategy? Q should our community (Jmol, JCP, CDK, QSAR, Octet, JOElib, JUMBO) have a communal view? If we all do the same thing we are limited by the slowest. I assume that Jmol, for example, need to retain considerable backward compatibility ========================= We have also now developed a large communal library. Thus JUMBO includes Jmol, JCP, CDK and therefore all their libraries. (We are delighted with this functionality - Billy has a very nice CML document viewer based on this) However... This can mean 2 or even 3 copies of things like Xerces in the distrib. The size is bad enough but since Xerces is now in the JVM 1.5 and also seems to change its signatures with every new moon the chance of incompatible versions is high. There are also copies of CDK libraries in JCP and so on. We also found that when we installed a recent CDK a method in CDK had disappeared which led to a compilation problem - we've managed to kludge round but this will be an ongoing problem. Whenever there is a new (even minor) release of any of our libraries we all have to clean and rebuild in case of these problems. Q How do we manage our libraries? If all of us use everyone else's libraries then these problems will increase. For example we'd like to use JOELib but not necessarily as part of our distributed system. If the performance is not time-critical then we can use web services as a means of insulating the APIs and libraries. For example we might move to running a CDK 2Dlayout server. This could be distributed so that connections to the web wouldn't be needed. However it would necessarily increase the complexity and is incompatible with, say, lightweight applets. P. Peter Murray-Rust Unilever Centre for Molecular Informatics Chemistry Department, Cambridge University Lensfield Road, CAMBRIDGE, CB2 1EW, UK Tel: +44-1223-763069 |