Why Not Skype?
Skype is a classic example of why we should prefer open standards over proprietary protocols. The Skype protocol is proprietary, secret and does not allow a Skpye user to connect to people using anything other than the official Skype client. Pratically speaking this is not a problem for Windows users, since the Skype client for Windows is full-featured and reliable.
On the contrary the Linux client lags behind by many versions (only several years later than the Windows version has it achieved video chat, for example). For a couple of years it did not even work for voice calls!! since Skype chose to use an outdated interface to the sound card. If the Skype protocol were open, the open source community could have written a working (at least for voice calls) client so that our Windows-using friends could Skype us.
The choice of skype to develop their own secret protocol is even more baffling when one considers that there was already at least one well developed open standard for VOIP with pretty good cross platform software support. That standard is SIP. Much like email, with SIP you can be connected to one server/provider/network and contact a user on a different server/provider/network. Just like I can send email from me@gmail.com to you@hotmail.com. You can use a SIP client to make PC-to-phone calls (A.K.A. SkypeOut), except since this is an open standard, there are multiple PC-to-phone providers available to choose from.
Another sucky thing about Skype is that they use a peer-to-peer protocol, which means that Skype might be suing your computer and network connection to route other people's information around. Over time this can use up significant amounts of bandwidth and once led to a major system outage that lasted for days.
The other great thing about SIP is that there are hardware phones available which can plug into your home network and call other SIP users for free (or do a SIP-to-phone connection for a fee). So why Skype?