Instant Messaging over the Internet has become total chaos nowadays. We have the “hey, download Whatsapp so we can talk”, the “no, get Line, it rox moar“, and the “Spotbros FTW dude!”… tomorrow’s song will be “those are history already, get VeryCoolChat”. And next day, YourUltraNiceChat.
Don’t you think it’s about time we stopped installing every single chat app out there, just because this or that contact likes this or that program? Specially considering that “this program” is only available for smartphones, or even only some specific smartphone models, with all kinds of restrictions and zero privacy. And let’s not forget, also, that there are new apps of this kind appearing constantly, all of them incompatible with the rest.
This situation is ridiculous. When someone has a mobile phone, they know they can call any other mobile phone, or a land line, and it doesn’t matter if their contact has a Motorola, a Nokia or a Samsung, or if their line provider is AT&T, Verizon, T-Mobile, Vodafone, or any other. When someone has an e-mail account, they know they can send e-mail to anyone, and it doesn’t matter the kind of computer or phone their contact is using, and it doesn’t matter if the addressee is firstname.lastname@example.org, email@example.com or firstname.lastname@example.org.
This should be natural. In these two areas, it’s been this way for decades.
Why don’t we have those same conditions in instant messaging or “social networks”? Because of the interests of a few big companies, interested in having everyone controlled in one place, in their datacenter, and also because the general population tolerates that, for several reasons. The main reason being the “network effect”, also known as “everybody uses that so I must use it too”.
Imagine trying to call from a Verizon phone to an AT&T phone, and hearing a message like “The phone you’re trying to reach is from a different provider, so the call cannot be completed. Please tell your friend to switch to Verizon”. Would anyone expect that, and find it normal? It sounds ridiculous, doesn’t it?
The solution already exists. Using it depends on us, and it’s free of charge.
The main point of Jabber/XMPP is not ground-breaking. In fact, it’s exactly the same as what makes e-mail or standard telephony systems great and useful: it’s a decentralized, or federated, network.
What does “federated” mean? Basically, it means that email@example.com can talk to firstname.lastname@example.org, or with email@example.com. John will use program A on his mobile phone (Xabber, JTalk, ChatSecure, Beem…), Jane will use program B on her PC (Swift, Psi, Gajim…), Neal will use program C on his tablet… and nobody cares what program the other person is using, since it’s not necessary to know it, or to use the same program to talk to each other. Each person would use the program they like the most.
For instance, Google Talk, which comes preinstalled in all Android phones and tablets, and therefore, a lot of people already have, is part of the Jabber network. Nowadays, the future of this is unclear, due to the migration that Google is doing towards Hangouts, incompatible with the XMPP standard, and which doesn’t talk to the global Jabber network. Proof, once again, that we shouldn’t leave our means of communication in the hands of the big companies.
You can be part of the solution
Start changing this situation is a difficult task, but it’s in the hands of all of us, and the result would be much better options for everyone, less complications, less control by a few big companies, and more control and choice for all of us. It’s about time we put an end to the lack of concern of “well, this kinda works for me” and the ridiculous situation where everyone uses their favorite network, incompatible with those used by others, insisting they switch to ours. It will be a hard transition, but together we can do it.
You could say that we’re insisting on using “our option”, but what we’re encouraging to use here is a standard, something that will allow for a future where no one will have to tell their contacts “use this program or that program”, just like no one tells their contacts what e-mail program they should use, or what e-mail service, or what phone they should but to call them.
Lots of functionality
XMPP is a protocol with which you can do everything you’re used to see in other programs, due to the fact that it’s extensible.
- Connecting from several programs at once.
- Offline messages: if you send a message to a contact who is currently offline, they’ll see your message then they log in.
- Chatrooms, just like IRC or any web-based chat.
- Sending files of any kind.
- Sharing your computer screen.
It all depends on the functionality provided by the program you’re using. Some applications are very basic (allowing only basic text messaging), and some are very complex, letting you do all the things listed above, and more.
There are a lot of public servers worldwide where you can sign up for an account. As we’ve seen, it doesn’t matter where you create your account, since you’ll be able to talk to everyone anyway.
There is a great list of servers at XMPP.net, but if you don’t know where to begin, here are some servers you could use to sign up for your account:
- others… (WIP)
Remember, you might already have an account in some service which already provides a Jabber/XMPP service, like the WordPress.com blog service or the GMX.com mail service. We’ll post about this in the future, but in the meantime, here’s the post from our spanish counterpart.
Clients (programs and mobile apps)
There are plenty of programs and applications you can use to connect via Jabber, since on Jabber/XMPP, it doesn’t matter if you connect from your smartphone, your tablet, or your computer.
At XMPP.org you can finde a very comprehensive list of applications (there are even some for older devices), but if you don’t know where to begin, here are some recommendations for today’s most common systems:
For the computer:
- Swift. If you’re new, it’s the best option. It’s very easy to use.
- Jitsi. A very complete client. Supports video calls.
- Gajim. Specially if you use GNU/Linux. It also supports video calls, and has advanced features.
- Psi. Advanced client. Very customizable, while still being quite simple.
- Pidgin. Multi-protocol client (you can add accounts from other services, not only XMPP-based).
- Xabber. Recommended. Supports chatrooms and encrypted messages.
- ChatSecure. Centered around encrypted messaging.
- JTalk. Supports file transfer and chatrooms.
- Yaxim. More basic, but promising.
For the browser: