[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


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

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

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.



More information about the JDev mailing list