IRC is also bad because it is too client-side. There is no history: if you're not connected or not in the room, you miss all the messages there. IRC Cloud and similar things half-solve this problem in the ideal situation (eg: nothing fails, such as IRC Cloud connecting to the IRC server), but they are a kludge on top of what is really an inadequate protocol if you want to compare to Slack/Hipchat/etc.
Frequently we will @mention someone in a room that the are not currently in, saying something like "Hm, maybe @person can help with this?" and then they'll get the notification, join the room, read the last bit of conversation, and often provide a solution or something useful. That workflow simply doesn't exist on IRC.
There are a handful of other features that range from really-freaking-nice-to-have to essential, such as user avatars, away status, formatted code blocks, inline image display (upon seeing url), @mentions, @mentions that go to e-mail when you're away, synchronized notifications across multiple platforms, file/image upload (via copy/paste).. Some of these CAN be done with the right IRC client, but they're not universal or standardized.
Frequently we will @mention someone in a room that the are not currently in, saying something like "Hm, maybe @person can help with this?" and then they'll get the notification, join the room, read the last bit of conversation, and often provide a solution or something useful. That workflow simply doesn't exist on IRC.
There are a handful of other features that range from really-freaking-nice-to-have to essential, such as user avatars, away status, formatted code blocks, inline image display (upon seeing url), @mentions, @mentions that go to e-mail when you're away, synchronized notifications across multiple platforms, file/image upload (via copy/paste).. Some of these CAN be done with the right IRC client, but they're not universal or standardized.