- I get too much spam, so I tend to check email less.
- It's not as "real time" as I sometimes need it to be. Sill feels more like mail than like conversation.
- I like to know when people read my messages (I know there's apps that allow this, but it's not ubiquitous)
- I like to know when people are typing (aka, are currently in the conversation)
- Different email programs send/format emails differently. Some seem to keep all the replies attached to the bottom of the latest message in a way my email program can't figure out and collapse.
I'm a fan of email tbh, and I wish more resources were invested in making it better, but I just don't think it lies in the same "space" as instant messaging.
There are so many apps available for messaging right now. I use SMS, Hangouts, Twitter. Many people like Snapchat and Allo. You can try asking your friends which ones they use.
Every free centralized messaging service at some point needs to find a business model that finances the platform. Right now the (IMO) best choice are decentralized messaging protocols such as XMPP (https://xmpp.org/) or Matrix (https://matrix.org/). Similar to email you can (i) run your own server or decide which server to use (ii) communicate with people on other servers, and (iii) choose from multiple independent client and server implementations.
For Matrix Riot is the best client implementation which runs on multiple platforms (https://riot.im/). The (afaik) only usable server implementation is the reference implementation (https://matrix.org/), but at some future point the currently pre-alpha Rust-based Ruma implementation (https://www.ruma.io/) could be a good choice too.
A nice thing about XMPP is that server-based transports can provide gateway-functionality to other networks. For example with Spectrum (http://spectrum.im/) it's possible to use your XMPP client of choice to chat with your friends that use Facebook Messenger.