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.
[edit]
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.
[edit]
See also
- Presence scalability comparisons for various protocols.
- SILC and other technologies if you like.
Categories: IRC | XMPP | Promotion | Solid


