The whole reason the Slacks and Hipchats and Discords of the world exist is that IRC is a terribly limited protocol that many people have tried to hang enhanced functionality on top of and none have succeeded.
Personally, I'm in favor of letting the better product win. IRC has been objectively superseded in nearly every way that matters.
IRC is not a limited protocol. What is happening is that people are using limited computers and networks (smart phones) that aren't capable of the same thing a 1990s computer was.
Let's see, in addition to what's above, off the top of my head:
* Video chat / screen sharing
* Audio chat
* First class support for connectors to external services (i.e. not a fake client connected to each room)
* First class support for permissions, registration, etc (rather than a fake god-client service package)
* REST API
Compared to IRC, Slack is more beautiful, more usable, more flexible.It's a great microcosm of the free-vs-proprietary debate that's been raging so long. Slack is winning the fight because it wins in ways that are visible to everyday users, while not being philosophically better.
You know what else IRC can't do? Be a version control system. And it can't be a webserver, or do GPU accelerated machine learning, or act as a spreadsheet.
As for "First class support" I'd argue that those kind of things make for a less flexible chat system. It's like having a strongly typed classes instead of everything as strings; like Powershell vs a unix shell.
REST API? Ah yes, in 2016 everything needs to be HTTP, I forgot.
I'm very curious how you think user registration and an API make for a less flexible system. What exactly are you wanting to do with Slack that the existence of an API and a registration system prevent you from doing or get in your way of doing?
And considering that Slack is generally accessed via HTTP, it kind of makes sense for it to have a sane HTTP interface, something for which every language has decent tooling for...
Matterbridge connects Mattermost with IRC, XMPP, Slack, Discord, and Gitter: https://github.com/42wim/matterbridge