[jdev] Re: The State of Our Code-bases

Ames Andreas (MPA/DF) Andreas.Ames at tenovis.com
Tue Aug 31 11:06:15 CDT 2004


Hello,

as someone who would really like to see a reference implementation of
the jabber protocol(s) and as someone who writes software in C as well
in Python, I'd like to add my € 0.02.

I think a reference implementation could be really useful, if

1) it's fairly complete (i.e. in regard of protocol coverage,
   maintenance etc.)

2) it's usable; an implementation which is only meant to be looked at
   is almost worthless IMHO.  So many reference implementations of
   different standards are in fact the standard
   implementation/ubiquitous and they are doing very well (tomcat
   etc.).

3) it's stable; most people don't want to deal with wire protocols; if
   there is a stable api, life seems to get easier for them (that's a
   Microsoftism: they almost never document protocols, just apis).
   The others, who like fiddling with protocols, will do so anyway.

4) it's the best implementation you can 'buy' without spending money
   ;-)

5) it's also used on the server side; this makes client side
   programmers feel faithful about it.

Peter Saint-Andre wrote:

> I suggested Python because it easier to read and understand than C
> or C++, thus helping others write their own versions of the
> protocols.

Please don't get me wrong, I really like programming in python.  But
all language wars aside:  it's just the wrong tool for the task at
hand.

If you admit that usability is a requirement or at least on the
wishlist, there is no alternative to providing a C implementation, at
least IMHO (not to speak of flexibility, performance, availability of
quality libs for the server side etc.).  And supporting a well written
C-api within another language is even easier than learning python (for
example using http://www.swig.org/; it supports all the languages
you'll probably want ever).

From my own experience I can assure that wrapping a C-api for python
is almost a bliss ;-).  Take subversion as an example: the last time
I've looked, the core implementation was C and they had wrappers for
python, java and perl, AFAIR, all wrapped by swig.


cheers,

andreas



More information about the JDev mailing list