[ome-devel] Existing client side code in C
Zachary Pincus
zpincus at stanford.edu
Fri Aug 6 00:08:15 BST 2004
Hello folks,
So, as mentioned on the list recently, I'm working on a C or C++ client
library for interacting with OME remotely.
Clearly, this library will need to deal with OMEIS as well as the data
server; but for now I'm concentrating on talking to the data server,
and then will either integrate that with someone else's OMEIS client
(hint), or do it myself.
Before I get in too deeply with the implementation, though, I've got a
few questions about what people would like out of the library.
Basically, I'll try to capture the main functionality of the Java
client library. If there's anything more someone needs, etc., let me
know.
One question that I'm trying to answer is whether people would prefer
the code to be in C or C++. I had initially thought C for broad
portability and compatibility, but now that I've done a bit of work on
this, it's clear that using C will take me more time and the resulting
library would be more of a pain to learn and use.
Here are various advantages and disadvantages to each approach. If any
of these would be deal-breakers, I'd like to know, so as to better
inform my decision.
C:
- should compile on most anything
- harder/nastier library to use
- longer dev. time on my part
- can be called from any C program
- will provide SWIG wrappers to call from any other language
C++:
- no guarantees about it working with anything less than GCC 3.1 or a
fully patched MSVC++ 6 or above. Should be fine otherwise though: code
will be ANSI C++, for which we finally have decent compilers.
- simpler library to use (using C++ language features for objects are
nicer than implementing/using equivalents for abstract data types in
C.)
- shorter dev time
- can not be called from a pure C program.
- will provide SWIG wrappers to call from any other language
Zach Pincus
Department of Biochemistry and Program in Biomedical Informatics
Stanford University School of Medicine
More information about the ome-devel
mailing list