Comparison of XMPP Jabber IRC and PSYC


Reasons to use Jabber
An open IM system, good for holding private conversations with chosen people using OTR encryption. Jabber has a scalability issue which limits you to reasonable amounts of friendships and makes large chatrooms tricky. Other than that it is a pretty nice technology, very flexible with a huge choice of implementations and extensions.
Reasons to use IRC
IRC is politically quite uncool, as it requires operator hierarchies and makes users dependent of them. Still, for many, the historic IRC technology is still the tool of choice to implement large and very large chatrooms. IRC networks run into scalability limits somewhere above 100'000 users and require tricky administration and optimization along the way.
Reasons to use PSYC
Since it can provide most of what you would expect from IRC, you should certainly consider psyced before starting an IRC network. PSYC solves IRC's political, authentication and scalability issues and comes with a huge choice of extra features that go beyond what you would expect from an IRC server, still psyced can be used with all the IRC clients you are accustomed with. psyced is notorious for changing frequently, but if your intention is to replace IRC, you can simply stick to a stable version on your hosts. Up to a certain degree PSYC and psyced also support things you would expect from Jabber, and even XMPP itself, but you may run into problems depending on your special requirements. psyced is also an XMPP server and gateway at the same time.

This chart may be of any help or none at all, it's up to you. It tries to summarize what we know about the three involved protocols. Some of the summaries will make you go But why? and the explanation for them is usually within the IRC and Jabber pages themselves or other linked material. Of course you may as well ask over there in psyc://psyced.org/@welcome.

Comparison of Decentralized Chat Protocols

IRC XMPP (Jabber) PSYC
Native Client Support regular extended beta ¹
Server-Side Intelligence minimal regular extended ½
File Transfer DCC out of band experimental ¹
Telephony none Jingle experimental ¹
Presence Notification poor & kludgy rich rich
Authentication kludgy/async (NickServ) yes yes
Directory Services integrated integrated limited (by choice)
Profile Exchange minimal (/whois) regular (vCard) extended (even custom style)
Social Network Functions none minimal extended/experimental
Gateways & Transports kludgy bots & services services, protocols, kludgy JIDs services, protocols, integrated
Network Politics closed/oligarchic open/federated open/federated
Entity Addressing one nickspace entity@host.domain uniform, multi-protocol
Scalability Limitations shared dynamic database massive unicasting intentionally none
SPAM Protection ² medium risk structural risk, planned strategy ¼ medium risk, extended strategy
Network Reliability netsplits desynchronizations, improper closing of TCP less desynchronizations
Network Vulnerability high medium low
One-To-Many Distribution Strategy single-tree multicast per network none (very inefficient) per-channel multicast
Conference control large choice, secure only with kludgy ChanServ MUC (kludgy) programmable
Protocol Syntax ³ hard to extend, kludgy, no binary data XML-like: extensible, no binary data extensible but optimized, framed, transparent
Server Software Structure ircd: efficient, compact, legacy typically modular, multiple processes and SQL, funny language optional psyced: modular on the fly, likes decentralization, funny language
Choice of Implementations large large small
Protocol Specification RFCs and a lot of divergent flavors RFCs and a broad choice of extensions specification in progress
Popularity vs Centralistic smaller small smallest


¹) Since PSYC can act as a routing backend for both IRC and Jabber clients, many functions of their native protocols should also function across PSYC networks.
²) On IRC a SPAMbot is quickly killed and banned off the network. Jabber (intentionally) lacks this kind of centralized administrational power. PSYC too, but it has a technological plan in the fight against SPAM (see the document for details, also concerning the related Jabber extension proposals).
³) None of the protocols are really easy. IRC seems simple at first, but all the kludgy extensions added over the years make it quite complex. XML may give you a chance to make use of an existing parser software, in exchange you get less performance and XML's specific weaknesses. PSYC finally has its own syntax which is very much optimized to the task at hand, but you will have to spend some time getting a parser to work properly. framed means easy to buffer up before parsing. transparent means capable of carrying embedded binary data.
½) psyced has the ability to emulate the entire functionality of a minimal PSYC client within itself, this allows you to use any sorts of dumb client apps like telnet or simple applets to join PSYCspace. This opens up for all sorts of atypical gatewaying capabilities when psyced offers functions as rich as lastlog, personal nickspace - yes even HTML rendering of certain user interface elements (Profiles etc) - which would normally be provided by a client. This also offers client programmers the chance to leave several boring jobs to the server (for later or for good) and focus totally on user interface and presentation, making it a much easier task to write a client for psyced than to write a client for IRC or Jabber.
¼) There is an architectural risk in XMPP due to the impossibility for servers to distinguish a legitimate unicast from one person to another from a broad unicast from a massive sender to many people. It is however planned to address these issues with captchas and such. PSYC uses its multicast-based subscription logic to autodetect SPAM instead, which is less intrusive to the users. See the SPAM document for details.

See also