[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