The other day I was thinking about some of the folk who had requested IRC support in the IM Gateway plugin for Openfire in the past, and how they were trying to migrate from a corporate IRC server to an XMPP server. This is apparently no small task to encourage such a change and it got me pondering what could be done to make that transition smoother. In my work with IRC support and with the Martyr IRC library, I've gained a strong knowledge of how IRC works and it occurred to me that it might not be that hard to provide an IRC server that sits on top of an XMPP server and just "translates" so to speak. So instead of taking your XMPP server and having folk log in and connect to a remote IRC server, you could replace your IRC server entirely with this XMPP server that acted as both XMPP -and- IRC. At that point you might even be able to lure some people over by saying "You know, if you simply went into pidgin and used XMPP instead of IRC for the corporate server, you'd gain a lot more cool features".
Would XMPP be hard to translate into IRC? Without having written any code for it, my best gut feeling is no, not really. You'd clearly have to sacrifice some functionality, but I think you could secretly tie the two together pretty well. Log in with an IRC username and password, you're actually logging into an XMPP account on the backend with the same username and password. MUC <-> IRC chatroom. IRC WHOIS <-> XMPP vCard. IRC ISON <-> XMPP presence check (probe?). Lots of aspects map fairly well I think.
But I'm curious about interest. I mean this seems fun and I might want to whip up a proof of concept, but what if no one wants it period? I'd be wasting my time. =) So anyone listening . . . I'd love to hear your thoughts.


It's not as easy as you may think. I usually think of making an IRC server be capable to be a muc component, but it wouldn't be easy to do either.
At first, there's the uniqueness of nicks: on IRC, your nick is unique to the network. On XMPP, your nick is unique only for a channel.
Second: off-channel private messages: I hanged around IRC for years without joining any channel, just msg-ing with people. It would be impossible to handle an off-channel private message in most scenarios.
Third: channel modes versus muc room configuration. They're pretty much diverse.
And of course, there are IRC service bots like on unreal ircd, but it'd be a long story....