iMessage always works very well for me and I love that it's integrated with SMS so cleanly. It also provides read receipts so I know if a message has been received.
I don't use WhatsApp but a competitor of its called Viber which also does calls and it works well and includes delivered and seen receipts. It also tells me if the user is online which is very useful.
Facebook messenger also works great imo and is one of my most used communication methods.
10 years ago I was also using IM a lot. I'd come home from school every day and use it until I went to bed. MSN was the Facebook of the day. Fortunately everyone I knew used MSN (it was ubiquitous with IM here). I used Adium on Linux and thought it was a nice client but I think today we're in a much better position than before. Fragmentation seems to be much worse today but handling that is as simple as installing an app for the service a specific friend uses. The fact we have push notifications means I don't need to check in with 10 apps to see if I got a message - I'm alerted when a message is received and who it's from and in what app I can view it. It would be nice to use one app but I don't think the fragmentation is too big of a user experience problem.
Personally I wish everyone would just use SMS! Most plans for smartphones come with unlimited SMS nowadays. I hate having to send my communications through so many companies with questionable privacy practices. The only place SMS is problematic is when messaging abroad but I doubt that's a major concern for most people (and they can use one of the plethora of other methods for messaging abroad anyway).