<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2653.12">
<TITLE>Implementing Jabber Server in other Languages (Was RE: [JDEV] Customizing Jabber server)</TITLE>
</HEAD>
<BODY>
<P><FONT SIZE=2>> I've been wondering why the Jabber Server hasn't been implemented in other languages such as Java or Python with</FONT>
<BR><FONT SIZE=2>> C calls to the appropriate libs. It seems that multiple server platform implementations could only help in the </FONT>
<BR><FONT SIZE=2>> adoption of Jabber.</FONT>
</P>
<BR>
<P><FONT SIZE=2>This is something I've been thinking about for a</FONT>
<BR><FONT SIZE=2>while, and would like to open up to some discussion.</FONT>
<BR><FONT SIZE=2> </FONT>
<BR><FONT SIZE=2>I really don't see implementation of Jabber in other</FONT>
<BR><FONT SIZE=2>languages as being that practical or necessary. I</FONT>
<BR><FONT SIZE=2>must confess, I really don't like changing server code</FONT>
<BR><FONT SIZE=2>to change server behavior (registration, I'm looking </FONT>
<BR><FONT SIZE=2>at you). But, I really can't see how/when/where/why</FONT>
<BR><FONT SIZE=2>a server in, say Python is all that advantageous,</FONT>
<BR><FONT SIZE=2>save for its multiplatform capabilities. But, I must</FONT>
<BR><FONT SIZE=2>say, given the speed Jabber must work to route messages,</FONT>
<BR><FONT SIZE=2>I don't see a Python (or any other language of your choice)</FONT>
<BR><FONT SIZE=2>server as </FONT>
<BR><FONT SIZE=2>a) useful</FONT>
<BR><FONT SIZE=2>b) practical</FONT>
</P>
<P><FONT SIZE=2>This demands the inside-out reworking of the Jabber server</FONT>
<BR><FONT SIZE=2>in a variety of languages, and the development of alternate</FONT>
<BR><FONT SIZE=2>servers that can "anticipate" future changes to Jabber </FONT>
<BR><FONT SIZE=2>internal protocols and such.</FONT>
</P>
<P><FONT SIZE=2>Now - the ability to change certain server behaviors does</FONT>
<BR><FONT SIZE=2>make itself attractive, and is a pretty compelling argument</FONT>
<BR><FONT SIZE=2>for implementing Jabber in other languages, but I'm not </FONT>
<BR><FONT SIZE=2>sure there aren't simply better ways around this, particularly </FONT>
<BR><FONT SIZE=2>ones that don't require wholesale server rewrite whenever</FONT>
<BR><FONT SIZE=2>fundamental changes in the default Jabber server occur.</FONT>
</P>
<P><FONT SIZE=2>I think the focus of current server developers should be</FONT>
<BR><FONT SIZE=2>to first document all internal protocols - (s2s and xdb</FONT>
<BR><FONT SIZE=2>being fine examples), and then to worry about making</FONT>
<BR><FONT SIZE=2>Jabber as portable as possible. I've got a pretty hefty</FONT>
<BR><FONT SIZE=2>RS6K sitting next to my desk begging to run Jabber, but</FONT>
<BR><FONT SIZE=2>even IBM's porting efforts have only been partially </FONT>
<BR><FONT SIZE=2>successful. </FONT>
</P>
<P><FONT SIZE=2>Which, in many ways - is a pretty strong argument for</FONT>
<BR><FONT SIZE=2>much more platform-agnostic languages (perl, python,</FONT>
<BR><FONT SIZE=2>java), but I think we need to look at Apache as a good</FONT>
<BR><FONT SIZE=2>model. </FONT>
</P>
<P><FONT SIZE=2>Yes, I know that Apache is only a server (well not so</FONT>
<BR><FONT SIZE=2>much these days) and Jabber is a set of related technologies, but </FONT>
<BR><FONT SIZE=2>I feel that making the current Jabber server as fast/friendly/portable </FONT>
<BR><FONT SIZE=2>as possible is the real key here, and maintaining a variety of</FONT>
<BR><FONT SIZE=2>separate server implementations would be...</FONT>
</P>
<BR>
<P><FONT SIZE=2>On second thought - David Waite's right - we have to look at separating protocol</FONT>
<BR><FONT SIZE=2>from server implementation.</FONT>
</P>
<P><FONT SIZE=2>You know - I just contradicted myself. </FONT>
</P>
<P><FONT SIZE=2>Matthew D. Diez</FONT>
<BR><FONT SIZE=2>matt@vedalabs.com</FONT>
</P>
</BODY>
</HTML>