The universal messaging standard
Tried and tested. Independent. Privacy-focused.
XMPP has some similarities to E-mail. In the sense that no one has complete control of it, everyone can use it freely (without any restriction), and no matter who your service provider is, you can still talk to everyone else. Unlike E-mail, XMPP can be extended without breaking compatibility (unless done intentionally). Despite the fact that different servers and different clients may support a different set of features, they are still interoperable because of that.
One of the useful extensions is OMEMO Encryption. It is designed to prevent server administrators (and of course anyone else other than the intended recipient) from reading your messages.
XMPP is implemented in two parts, server and client. A client is what you use to connect to a server. XMPP servers are able to talk to each others when necessary (if the person or group you are trying to contact is not located on the same server). Depending on your needs, you may simply use a public server that allows registration (it means they are free of charge). Or, you can host your own server.
The easiest way is to pick one from the public XMPP server directory on xmpp.net.
Another way is to host your own. ejabberd has good XMPP compliance and performance, and is thus recommended.
For desktop computers, Gajim is recommended. It has a plug-in system. There are two essential plug-ins for a complete experience, OMEMO Plugin for Gajim and Url image preview Plugin. Unix-like operating systems that run GNOME may prefer Dino. Since it may be considered more visually appealing. If you want a ncurses based client, Profanity is a joy to use.
For iOS devices, Siskin IM is recommended.