[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