Hacker News new | ask | show | jobs
by darkpuma 2682 days ago
What's wrong with IRC? IRC is great. It's so simple you can knock together a decent client of your own in an afternoon.
2 comments

Speaking as someone who's used IRC for nearly a decade and who has developed extensively for it, it most definitely has not stayed simple, what with all the nonstandard extensions every network has brought with it. And while I dislike Discord for many reasons, its moderation tools is not one of those reasons; I'd like to see a good, open chat standard come along that adapts features such as invite tokens, rather than depending on accounts or IP addresses or someone manually inviting you into a channel.

To have a functional, modern IRC client, you have to not only implement what there is in the RFCs (which incidentally, no IRC daemon follows anymore, not even the original ircd2) but you also have to pull in IRCv3, SASL, ISUPPORT parsing, CTCP parsing, a TLS library, ... the list goes on. And for a good experience you also want scripting and the ability to abstract away the differences between services implementations (Atheme and Anope, mainly). Not to mention you have no clientside encryption option on IRC short of any number of buggy OTR implementations.

IRC is not great. It might be okay, but by no stretch is it great.

What do you dislike about Discord?

Curious because I actually haven't seen anyone that disliked it beyond the loading screen's silliness.

Memory usage, extreme lag, the bugs (apparently I need firefox 37+ to access the voicechat feature, I am at 65 though), centralized (a big issue considering the censorship that they apply), no way to use it over tor (as far as I know at least), you are not allowed to make/use a 3rd party client, the official client is closed source, no e2e encryption or authentication, etc.
Discord wastes a few seconds of my time every time my Mac boots up because it can't just open at login without stealing the focus once or twice for no good reason.
Netsplits, hilarious lack of security (nickserv identify uses plain text passwords sent over an unencrypted TCP connection), you can't retrieve channel history, no support for threads, images, basic markdown formatting... Shall I go on?
Eh, most of these seem like features to me. Slack's threading support is enraging, and I consider plaintext a courtesy. One of the fallouts of the lack of centralisation for things like chat logs was a thriving bot culture (years before it became cool and VC fundable).
Aren't a lot of these addressed with IRCv3? https://ircv3.net/

Some of these are already in place, eg. IRCCloud can render simple markdown, supports push notifications, can show inline images, supports display pictures, Slack-like threads, emojis, etc...

An example: https://twitter.com/IRCCloud/status/971416931373854721

Hopefully longer term we won't need to use IRCCloud/a bouncer to keep chat history. AFAIK an IRCv3 server should be able to offer that natively (to an IRCv3 client).

As for unencrypted TCP... a lot of IRC networks seem to offer TLS these days.

Not saying this is perfect -- far from it, but people are working on improving IRC!

Very little of that is a problem in practice, and proprietary systems like AIM had more than their fair share of problems too.

>no support for threads

That one's just wrong. You can make a threaded client if you want one, although it's not totally clear why you would since the CPU load of IRC is going to be very low in any reasonable situation.

Edit: Oh I see, threads as in forum threads.... just open a new channel. Otherwise, the concept seems to map poorly to ephemeral real time discussion. This is the first I've ever heard of AIM,etc of having forum threads.

Slack-style threads work very well for real-time discussion. It's far easier to follow a channel with them than without.

Opening a new channel wouldn't work for fairly obvious reasons (nobody would be in it, you'd effectively have to do it for every single message, etc.).

SASL auth and TLS are fairly common nowadays, threaded discussion is not really mandatory for a good modern chat (Telegram, Discord for example don't have anything like that,) image unfurling can be done by the client, and there is actually formatting and some clients will autoconvert basic markdown to it for you.

IrcCloud is an example of a client that tries to solve pretty much all the issues and you can even plug it into a desktop IRC client and get most of the functionality including history. It's not necessarily better than modern chat or anything, but I love having a modern chat experience while being able to discuss things with people and groups who virtually only use IRC.

If you aren't a fan of hosted services you can run your own BNC. Some IRC servers have built in BNC services that give you things like better security and channel history.

Let me reaffirm that I am not of the position that IRC is perfect or modern. But you are misrepresenting it a fair bit, even in 2006 I was connecting with TLS (sometimes self signed certs though.)

Nickserv identify can be encrypted from your client to the services server if the network supports it. (SSL between you and all servers)

No channel history, no threads, and no images are features.

There's formatting: bold/italic/underline and colours.

How is no channel history a feature? I think if you take a look at your reasoning you'll see that you are just defending IRC because you like it. Which is fine, but it is intellectually dishonest to pretend that flaws are not flaws.