Lately I’ve been noticing people on Facebook having a tendency to use the social networking site’s built in chat feature. And some of you might wonder, why I am never on facebook at all and out of nowhere I blurt things out on facebook. There is a reason behind it: Facebook chat sucks. Period.
So some of you might wonder what is IRC. IRC is well… Old school MSN, ICQ, YIM or whatever Instant Messaging network you used to use before Facebook came out. IRC is similar to talking with strangers and meeting them online. The idea of talking with strangers is the reason why many school districts/administrations ban this nice method of communication. Want to know more about IRC? Go on Wikipedia please, I won’t explain it anymore in depth here. I assume you know what IRC is before you continue reading this article. I would also assume that you know how TCP works. If you don’t, please don’t waste your time reading this rant. Just know that I never use Facebook’s chat. That is all.
Okay, on to the ranting part. Why do I hate Facebook chat? It’s not real time and even if it is, it can be resource demanding on the user’s browser. The current chat platform can take up to 5 minutes or so to get your message across to the intended recipient; Sometimes longer if a system administrator decided a transparent caching proxy is the best way to conserve on bandwidth. However, the idea behind any live chat sessions is to get your message across as fast as possible to your intended recipient. And getting it across as fast as possible means you have to get it there in real time, or at the very least within a delay timeframe of 100ms to 500ms.
Now we all know that facebook is completely runs on a web browser; running such chat sessions on facebook can cause the user’s browser to wobble or crash if the coding is inefficient. However, so far I haven’t seen a facebook chat session can potentially crash a web browser. So how does one make a browser based chat protocol as realtime as possible? Well, you tell the browser to keep refreshing that chat dialog, or use dirty AJAX hacks that might work on one browser and completely unusable on another.
Compared to IRC, a chat session is a persistent TCP connection between your client and the server that is hosting the network. What is the advantage for a persistent TCP connection? It doesn’t put too much strain on the user’s computer. Why does it work better than the non-persistent nature of the normal web browsing protocols? Because the computer doesn’t have to make new connections every single time the user receives/sends a message over the chat session. All the computer has to do is resume the stream of data that’s being sent between the server and the client. Simple as that.
However there are advantages between IRC and Facebook’s bulit in chat, and I won’t go into detail with them. With facebook’s AJAX chat, the chat session will never get lost somewhere due to a problem in the network connectivity or a problem with the ISP’s routing. This advantage allows users to use the chat regardless of the operating conditions of the connection. On the other hand with IRC, the persistent nature forces the user to require a reliable connection in order to use the network. Any interruption between the client and the server can cause the user to lose the chat session entirely. A restrictive or poorly designed firewall with a short timeout period can cause IRC sessions to become disconnected.
So there you have my rant. In my opinion IRC is far much more superior than facebook chat because it requires very little resources on my computers or web browsers. Now move on and have a nice day.