Why buddy lists in toolbars #fail
Facebook and imitations like Toksta are presenting users with a new chat user interface paradigm where the buddy list opens on demand from a non-very-web-typical toolbar at the bottom of the page.
Why don't they just show the buddy list in a content box on each page? There is a reason. It is hardly ever accurate. The web surfing paradigm of clicking from page to page is profoundly contrary to the principles of chat. Every time people click from here to there within Facebook, the browser reconnects to the server over and over.
By some heuristics servers guess whether a user is still watching the page, is thus reachable by the builtin messaging feature, or not. By consequence, there is a continous flux of login and logout events being generated by best guess. The buddy list has people coming in and out all the time, even if they are actually using Facebook throughout.
And even then, you can never be sure, when you click on someone in the buddy list, that you will actually be able to talk, as the logout event is sent to you only after a certain time period. So, while you type your greeting message, the person may already be gone.
We have had pretty decent webchats on the Internet ever since the invention of frames, Javascript and Netscape's server push, sometime in 1995. They would either pop-up in an extra window, or occupy a web page predominantly. By continously staying in contact with the server, they are both more reliable for communication as they may even be less bandwidth consuming as they don't have to poll the server all the time, like AJAX approaches do. Server push is smarter than AJAX.
So, given the restriction that messaging is intended to be just a side feature of a regular website, you can't have an accurate buddy list, so you might as well hide it away in a toolbar. But, does such an unreliable means of communication make so much sense? Wouldn't it be better to have all of your Facebook contacts in a real messaging application?
An idea for a solution would be to have the chat interface in an HTML frame outside of the actual surfing activity, then use modern deep linking techniques to continously update the location bar of the web browser as you surf in the surfing frame. This would also be a much better excuse for Facebook to wrap a frame around external pages - they would actually serve a useful purpose, keeping you logged into Facebook chat, instead of just being annoying and invading privacy.
Update: Nevermind the technological implications, the dirty webchat style deployed by Facebook is now the largest chat system on the planet.