Ruby developer. CTO. Swimmer. Always trying to write more
Today, I was googling away for Jabber and J2ME stuff when I came across a post by Bill de h?ra in response to my post last month, JXTA or Jabber?. I’d missed this completely. And the follow-up post. So now I google again for JXTA Jabber and find some more pieces which weren’t there last month. Cool.
So do I have anything to add? I like Jabber. I’ve read the spec, a couple of articles and used the IM clients (and snooped on them a bit too) and I’m beginning to think it’s quite a nice protocol. JXTA is much more complicated than Jabber but it’s also younger and obviously lacks the protocol and community maturity.
Recently, Diego wrote a one-minute intro to JXTA (but allow 2mins!) which captures the main ideas. The problems with JXTA occur when a) you try to understand each protocol in further detail, b) you try to use the example applications, c) you try to read the source code and d) when you try to write your own application. This is not encouraging. One problem which causes me major headaches is the source distributions of jxta are all cvs checkouts instead of exports. This means there are tons of empty or half-empty, abandoned directories which you have to sort through to findthe “real” sourcecode. nuts!
In some cases I believe the choice between JXTA and Jabber should be obvious. Does anyone use Jabber to connect devices over IrDA or Bluetooth? No. Could you use JXTA? Well, maybe/probably - it would certainly be better. But as soon as your application moves away from a pure P2P architecture (i.e., some peers become more important than others) and it has access to the Internet, Jabber becomes a better looking alternative. After all, what is the difference between JXTA rendezvous’ and Jabber servers?
The key thing JXTA can do which Jabber can’t, is Discovery (Jabber browsing and any other Jabber discovery specs aren’t really up to the task as far as I can see). But then Jabber has presence information, permanent user addresses and the facilities to handle 1 user, multiple devices, all of which would have to be built on top of JXTA.
So my current thinking is:
Use JXTA for…