Hi everyone,<div><br></div><div>Lee sent an informative response regarding the CellProfiler/Bio-Formats integration, but his message got bounced, so I'm forwarding it.</div><div><br></div><div>-Curtis<br><br><div class="gmail_quote">
---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Lee Kamentsky</b> <span dir="ltr"><<a href="mailto:leek@broadinstitute.org">leek@broadinstitute.org</a>></span><br>Date: Wed, Oct 6, 2010 at 8:22 AM<br>
Subject: Re: [ome-devel] Fwd: Bio-Formats/C++/Python<br>To: Curtis Rueden <<a href="mailto:ctrueden@wisc.edu">ctrueden@wisc.edu</a>><br>Cc: OME Development <<a href="mailto:ome-devel@lists.openmicroscopy.org.uk">ome-devel@lists.openmicroscopy.org.uk</a>>, Michael Held <<a href="mailto:michael.held@bc.biol.ethz.ch">michael.held@bc.biol.ethz.ch</a>>, Jason Swedlow <<a href="mailto:jason@lifesci.dundee.ac.uk">jason@lifesci.dundee.ac.uk</a>>, Adam Fraser <<a href="mailto:afraser@broadinstitute.org">afraser@broadinstitute.org</a>><br>
<br><br> Hi all,<br>
<br>
The CellProfiler team chose the JNI route to limit dependencies, specifically, the Boost build system. Each package we add to CellProfiler comes with a risk (it might not compile on a given platform = Mac / 32/64 Windows / Linux flavors) and a cost in terms of support. Direct access to JNI only had the risks and dependencies associated with Java and we would be exposed to these risks with any in-process solution. Our solution is efficient enough for our needs: image loading/storing uses a small fraction of our CPU time, so the extra memory copy involved is not too expensive.<br>
<br>
Jace might be a better choice for C++ integration. There's a good chance that any C++ project already has Boost as part of its build. Python requires an additional bridge step from C++ / Jace to Python and this isn't required by C++. You all should probably disregard our experience with Jace unless you are working in Python yourselves. Our javabridge is available via SVN at <a href="http://www.broadinstitute.org/CellProfiler/trunk/CellProfiler" target="_blank">http://www.broadinstitute.org/CellProfiler/trunk/CellProfiler</a> (packages = cellprofiler.utilities.javabridge / cellprofiler.utilities.jutil / bioformats) for the curious or anyone who is doing Python development.<br>
<br>
BioFormats represents a great deal of work. I for one am more than pleased to use it for CellProfiler and not have to reimplement the whole thing. I think our collaboration has eliminated the pitfalls of a C++ implementation, specifically the difficulty of accessing AWT Java classes from a UI Mac application. Loci is extremely responsive to our concerns and I have the greatest confidence that BioFormats will be the community's highest quality solution going forward.<br>
<font color="#888888">
<br>
--Lee<br>
</font></div><br></div>