[Adium-devl] Java-based libraries... a ponder, a thought, an apology
chris at growl.info
Fri Dec 8 04:10:28 UTC 2006
Do we know where the problems with libgaim's implementation are
(adium or gaim code) and if those would be easier to correct?
On Dec 7, 2006, at 9:56 PM, Andreas Monitzer wrote:
> I agree that the Java Bridge probably has gone the way of the Dodo (I
> wasn't aware its deprecation until well into SoC 2006), and I've
> actually thought about all the implications for my code worth 3
> months of my live (that includes a canceled holiday trip and stress
> symptoms that still plague me today) for some time now.
> My plugin code has some very evil workarounds for issues related to
> the Java Bridge (mainly its inability to forward exceptions thrown in
> constructors, and the lack of a simple way to implement callbacks
> into ObjC-code). I never liked that part of the plugin, but I
> couldn't think of a better way (short of rewriting the Java Bridge).
> I'd be willing to implement a fully ObjC-based XMPP library for
> Google SoC 2007 (don't have any time before summer, sorry),
> leveraging current technologies like NSXML* and KVO to get a simple
> yet effective framework for XMPP (as long as I don't have to care
> about backwards-compatibility). The fact that this is more work than
> simply using a finished XMPP library should be made up by the fact
> that I have a much deeper understanding of the protocol now compared
> to half a year ago.
> Additionally, I used Smack only as a parser for XMPP (except for
> connection setup and file transfer), since its developers went for a
> heavily multithreaded solution, but seem to have missed "Threadsafe
> Programming 101", so most of its convenience functionality was simply
> broken -- the developers told me to insert delays all around the
> place to work around those, which is simply unacceptable. I submitted
> a lot of patches fixing some of those problems, but didn't solve all
> of them, and the most important one wasn't even accepted.
> Using an ObjC-based approach would solve many issues (including the
> ability to use non-blocking I/O, which is dead simple using
> Foundation), it would also allow me to add support for XEPs that were
> ratified after SoC 2006 (most importantly, the personal eventing
> protocol, which 90% of the new XEPs build upon), and remove/not
> implement the ones that were deprecated after last August.
> This solution would also fix the problem of the wasted 3 months,
> since it could simply be considered a learning phase for getting
> experience on how to do it in a non-optimal way (getting a complex
> thing like an IM protocol implementation right on the first try is
> pretty much impossible).
> Of course, this thing would require the contact hierarchy rewrite
> we've talked about back in September/October. Another downside would
> be, that jingle support would once again move farther into the
> future, since that would blow the frame of SoC by an order of
> magnitude (otherwise Alvaro would't have failed finishing his
> What do you think about this?
More information about the Adium-devl