Ask HN: What's Wrong with IRC?
With the proliferation of chat apps like Slack, Discord, Teams, etc. why don't more companies just set up their own IRC server?
The pricing for Slack seems insane for something that was essentially a solved problem 30 years ago.
Admittedly, I haven't used IRC much and I know the UI/UX isn't the best, but that could probably be fixed pretty easily and tacked on to the existing messaging infrastructure?
95 comments
[ 4.4 ms ] story [ 173 ms ] threadAlso IRC doesn't store message history, which is kinda a really important thing.
That said, all your private messages as well as any messages in public channels can be logged and will persist on your PC until you delete them.
For Matrix, you can say "go to chat.company.com" and click log in with Google.
And half of them logs in with their private Google account.
Eventually somebody starts wondering who spikeycactusplant4589 is.
And that's why people don't use IRC
[0] https://news.ycombinator.com/item?id=9224
Proprietary chat apps on the other hand go bad like cheese. When they start out there is a honeymoon period where they know they have to perfect onboarding because otherwise people won't use it, but once it gets a critical mass they fire the engineers and stop fixing bugs and keeping up with a changing environment.
The story is "want to try a meeting with Zoom?" and people would say "it's got to suck right?" and you'd reply "it works as well as Skype did 10 years ago" and then they try it and say "Wow!" but you know ten years from now it will be legendary that Zoom sucks and there will be something new that people are comparing to what Zoom used to be.
There ought to be a law mandating chat interoperability, Facebook Messenger could actually have a longer shelf life if you could talk with Microsoft Messenger because competition and the threat of exit would keep them on their toes.
> The pricing for Slack
You've answered your own question there. Because "pricing" an open (as in RFC defined) IRC server is significantly more difficult than "pricing" a proprietary protocol.
So the "companies" follow the money, and setup their own proprietary silos.
> For a Linux user, you can already build such a system yourself quite trivially by getting an FTP account, mounting it locally with curlftpfs, and then using SVN or CVS on the mounted filesystem. From Windows or Mac, this FTP account could be accessed through built-in software.
https://news.ycombinator.com/item?id=8863
I would wager it is a generational thing also.
Slack, etc. pricing is a rounding error for most companies.
I mean, you seem to understand what's wrong. IRC is meaningfully worse to use than Slack/Discord. So people use stuff that's nicer to use.
> but that could probably be fixed pretty easily and tacked on to the existing messaging infrastructure?
If it were easy, it would have already been done. "The UX isn't great" isn't a recent discovery, it's something that's been known for a very long time.
I regularly use two messaging platforms: Discord, and Element. The former is proprietary and the latter is open. Element is meaningfully worse to actually use. And it's still the best Matrix client I personally have used.
fwiw we’ve spent the last few years fixing this, starting with mobile, and Element X is the result: https://element.io/labs/element-x. it’s more of a whatsapp/imessage/signal replacement rather than a discord replacement right now, but i really hope we fixed the UX this time.
(edit: that said, at this point i’m worried that even if we made Element better than Discord, it would still have its old reputation to shake off, and I’m blanking on projects who have managed that. just like even if someone built a desktop linux env which outperformed macOS, it might have an uphill struggle for adoption.)
I don't generally use Element on mobile, but I will give Element X a try! Thanks for the pointer.
I thought the space that Matrix was intended for was group chat, similar to IRC, Slack, Discord, Mattermost, Zulip, etc.
Now you say that Element X is a replacement for WhatsApp/iMessage/Signal, which to me is a totally different kind of application.
Basically, I see WhatsApp et al as a better way to send SMS (E2EE) or send vacation pics to my family (without broadcasting them on Instagram) whereas if I would want to discuss a tricky PostgreSQL issue (or whatever) I would kind of expect the project to have some kind of presence on IRC, Slack, Discord or similar.
So now I’m curious about the change of course. Would be very interesting to hear the rationale for this.
So with Element X, we've very deliberately focused on the Messenger use case at first (also driven by the fact that we have more paying customers asking "i want to run my own decentralised WhatsApp/Signal alternative" than "i want to run my own encrypted Teams alternative") - and it is unrecognisably more polished and focused and usable than normal Element. To quote someone in one of the community Element X rooms a few days ago:
> just downloaded element x from f-droid and wowza it just.. loads instantly? can't believe i now live in the age of element being faster than discord
Once the 'messenger' use case is fully launched (aiming for "end of summer"), we'll then carefully add the team-collaboration features (spaces, threads, etc) back in - and hopefully end up with something which can be used for both.
You would think instead of creating more than 30 sub-par clients it would make sense to create one that is actually good.
And what you think, doesn't make any sense, because Matrix is an open protocol. Its like complaining about people making millions of websites, but not actually good ones.
That fundamentally doesn't work on IRC, as it's message-oriented (like XMPP, which has some elaborate bolt-ons and hacks to implement history that actually work ok), not history-oriented like e.g. Matrix.
Many s/w projects still maintain support channels on IRC.
The migration to proprietary support mechanisms isolates a number of users. Mozilla in particular is much more difficult to interact with since migrating away from IRC.
I've also worked for a company that ran it's own XMPP chat server. XMPP chat clients allow file attachments, see messages from times when client is disconnected (without a bouncer), integration of voice and video chat, whiteboard, etc. Pretty much everything slack, discord, etc offer.
This question is similar to why do companies use the cloud, when most of the time they could just run a server. My biased opinion: laziness. Mostly the laziness of following fashion instead of the technically superior solution.
Caution: That means interoperating with Okta/SAML, and seamless client-side history with administrator-set retention periods (deleted on server and all clients), and the ability to move something from a DM to a private channel to a public channel and vice versa and the hundreds of features that Slack has built because they've had millions and millions of dollars that open source doesn't have.
Businesses have different needs than IRC (or Matrix) provides. It'd be amazing if someone could build a foundation that allowed common open source competition over slack but we can see all the problems with business-focused OSS these days.
It is not too dissimilar to email, or the whole IPv4/IPv6 debacle.
• No support for server-side history, and all that comes with that (usable mobile clients, offline messaging and push notifications to mobile clients, persistent presence in channels, search, editing/deleting messages, auditability, etc). Bouncers are a poor solution, as they aren't part of the IRC server and integrate awkwardly, if at all, with clients.
• No support for attachments. (DCC SEND isn't a solution; not only does it require direct IPv4 connection between users, but it doesn't work at all in groups.)
• Poor user authentication. Connection-time auth solutions like SASL are poorly supported; after-connection auth like NickServ is hokey. Support for federated (non-password) authentication is practically nonexistent.
• Short - and unpredictable - message length limits (typically around 500 bytes).
• Crude permissions system.
That's a feature, not a bug. If you want conversations to be searchable, use email. Instant messaging is like phone calls or in person communication: transient (if potentially async).
> No support for attachments.
Good, no silly gifs cluttering up the chat. But this is a feature that's easily added.
> Poor user authentication
This one probably has the most merit. But probably easy to implement with a few server tweaks.
> Short - and unpredictable - message length limits
Brevity is a feature. It's a chat, no one wants to listen to a monologue in conversation. The unpredictability is a bit annoying.
> Crude permissions system
How fine grained do you need it to be? Read and write access for channels exist. There are plenty of bots which can grant additional permissions based on whatever criteria you set out.
But hey, I'm also that stubborn bastard who still likes text-only email.
Whatever your personal feelings on message history are, people and businesses need functionality like usable mobile clients they can receive messages in without keeping the client open continuously, or the ability for administrators to delete messages which have been sent by other users. IRC doesn't, and cannot, provide those features.
> [no attachments] Good, no silly gifs cluttering up the chat.
Also means it's difficult to discuss inherently audiovisual content like graphical designs, or to transfer files -- all things that come up in business contexts.
> [permissions] How fine grained do you need it to be?
It's not that the permissions aren't fine-grained so much as that the entire system is crudely designed. Users' permissions in a channel are mostly tied to their presence in the channel; if you leave and rejoin (or disconnect and reconnect to IRC), any permissions are lost and have to be regranted by another user in the channel. Bans are tied to nicknames (which are volatile) or connection hostnames (which are differently volatile). Invite-only channels use passwords. And so on. It's a mess.
Yes, you can add bots to handle some of that for you -- but having to rely on bolt-on components for basic functionality is a sign of a badly designed service.
Do they really, though? If Jim isn't at his desk and I still need to talk to him, I can just send him an email, or try again later. That is the part of communication that IRC excels at: fleeting conversations.
IRC chat history is old-school FOMO.
Yes. Usable mobile clients are table stakes for a modern messaging service. Caveats like "if you put your phone down for a few minutes you fall offline and any messages sent during that time are lost to you forever" are, quite simply, not acceptable.
It's not the year 2000 anymore. Not everyone is sitting at a desk in front of their computer eight hours a day. Software needs to adapt.
I do not want to see pictures in IRC at all, you want pictures, movies etc, got to one of the many pointy-clicky apps. Or you can PM and send the pic to the person who wants it via email.
No history, good for me, but you want history enable logging in your client.
User authentication - maybe a bit harder for new people, but you also have the option of turning on encryption if you want.
One missing item, with cloaking, you can have anonymity which is lacking in all the other "apps".
I see no need to change IRC at all, and I think the Freenode "owner" tried to change it and a revolt happened. Just about everyone moved to Libera chat.
> https://ergo.chat/about - Combining the features of an ircd, a services framework, and a bouncer (integrated account management, history storage, and bouncer functionality).
Putting it into SASL-only mode is a couple lines in the config. I'm not sure if you meant poorly supported in clients.
Are there any clients that don't split long messages when sending?
Search: half-remember some conversation from months/years ago? It's right there, in the app.
Persistent history: onboarding a new employee? All of the company's past communication is there to browse and search (see above point).
Inline file attachments: need to share a small file or a screenshot with someone? Drag it into the app and they can get it at their leisure. No need to mess around with DCC send or uploading to Google Drive and sharing a link, it's right there.
All of these could be solved with IRC (in fact, Slack was initially built around IRC) but they require extra infrastructure and tooling and development to make it seamless, and that takes extra development and hosting costs.
Has this improved recently?
I've never had to do that and Discord or Slack aren't the right places for that anyway they should go in some knowledge repository like a wiki.
By all means chat asynchronously to decide on something, but then get it into a wiki. I actually like Slack's auto-expiry for free accounts, as it incentivizes the mindset - if you want to keep the information around, boil it down into a readable form and put it in the right place in the company's documentation.
Sure, a curated, well-maintained repository could be better. It also requires work time that usually doesn't get budgeted for. Slack is a band-aid, but a useful one.
This is where Slack really squeezes companies. Our (barely) medium sized org has a seven figure Slack bill, and they only support 1 year of history. Going beyond that becomes absurdly expensive. It would be absolutely pricless for me to be able to go back and read older convos. But it's somehow impossible to do without spending millions of dollars. Absolutely insane.
Then that's implemented with no warning to be able to migrate important info out into a wiki or other documentation. So in the end, no better than IRC really, but I get it, not a Slack problem, but allowing that whiplash at a click of a button doesn't help. Slack seems to help paper over deep cultural problems in a way that makes it all colorful and squishy.
But as other seem to agree, it's pretty bad at keeping anything organized like you want to be as an info repo, there are tools that are geared toward that specifically. Don't crowbar one into the other.
Well that just doesn't sound legal. In fact, I'm pretty sure Google just got the book thrown at them for this. [1]
[1] https://www.cnn.com/2023/03/29/tech/judge-google-deleted-cha...
Of course stating you're doing it for the purpose of destroying evidence is stupid.
dude, we work at the same company...
The company I work for has the same chat retention policy, but despite that, even being able to go back just 90 days has proven very useful!
I don't understand what was wrong with Jabber.
It's the UI/UX you mention that seems to be the bigger blocker.
In my experience IRC was the preferred platform among software developers for a long time. Setting up a persistent shell and bouncer and managing your logs was common and preferred. It was how a good deal of the, small at the time, open source world ran (this is the 90's up through the aughts).
I recall that started to change when Slack and other alternatives started breaking into the market. A newer generation of software developers didn't care for IRC and the UI/UX around it. Open source, open protocols, free (as in freedom) software didn't matter to this generation.
And as management and executives got more interested in micro-managing developers we needed to include non-technical folks into our chat systems... which is where the UI/UX argument struck again: our friends in HR, management, etc couldn't be expected to setup their own irssi + screen client, log rotation, notifiers, etc; writing and hosting custom bots to integrate with systems became a chore and lost art, etc.
Now we have to run multi-gigabyte, resource hogging clients to post memes and emojis. But at least it's easier to administer and get folks on board. At the cost of all your data belongs to Slack I guess.
You do get a lot out of Slack than chat though. Forms, integrations, workflows, huddles, etc. It's a different ballgame from early to modern Slack.
Why don't you grow your own food? Why don't you just write your own payment processor?
I used to think this way until I started a company with employees. My opinion on the matter changed almost instantaneously.
1. One does not simply set up their own "X". Setting up X takes time and you will also have to manage it, which also takes time (and is harder to anticipate when you are fully responsible for managing it).
2. As someone making decisions on this type of stuff (eg a founder, executive, head of IT, etc), maintaining something like X is a poor use of your time and not something you want to have to even think about. So you'll be paying for it anyway even when it's "free" by having an employee maintain it or sacrificing your own time on it.
3. You may trust yourself to be able to maintain it properly, but if you delegate it to an employee, the math changes. Now you have to hire someone you can trust to do a good job maintaining it and who is willing to do that kind of work. And you need to consider things like "what if that person quits/retires/gets sick" and "what if they get hacked or go rogue" and "what do I do when they go on vacation"?
4. Businesses have a lot more requirements of their communications software than just communications. If an employee loses a device or gets hacked you need to easily revoke access to everything, so you probably want to use SSO/an identity provider to make that easy. If you get sued you need to have a way to do legal discovery.
5. If you run into a bug or make a mistake, and introduce downtime or lose chat history, you just lost a lot of productivity or valuable info - operating things like this reliably is expensive, whereas having a support contract really reduces tail risk/provides peace of mind.
So if your option is to pay someone $10k for something like chat that Just Works (99.99% at least), and you are actually trying to build/operate a business and not just play around, something like $10k for chat can be an amazing deal compared to the true costs of doing it yourself. You pay someone some money and barely think/worry about it anymore, done.
I find that usually if someone says "why don't X _just_ do Y", they haven't really considered what it takes to _just do Y_. Similarly,
> I know the UI/UX isn't the best, but that could probably be fixed pretty easily
could be expanded into 50 points of why exactly it wouldn't be _pretty easy_ to to "fix IRC UI/UX".
Honestly I don't know what answer OP expected here. If it's easy to set up/maintain Slack alternative based on IRC, with fixed UI/UX and appropriate for _most companies_, they should simply start a Slack competition for half the price and rake the profits, I guess
Meaningfully FOSS communities are better served by Zulip or Matrix.
Emoji.
Search.
Pictures.
Screensharing.
Voice calling.
Video calling.
Web clients which can join video/audio calls.
Smartphone apps.
Push-Notifications.
Colours.
Embedded inline Office365 documents, in the case of Teams.
Meeting invites built-in to Outlook, in the case of Teams.
Click thing in Teams, opens in Edge browser with the Edge sidebar open to the Teams chat place where you clicked, for context.
Email notifications of things said in Teams chats.
Integration with company directory for looking up who people are.
IRC is for people whose reaction to those is to complain or sneer about how they don't want them.
This is the real reason IRC will never achieve wide adoption. The people who use it actively don't want the features that the people who don't do.
(Contrast with HTTP where a client can declare what it accepts in the request headers on a per-request basis, and servers can declare encodings they are sending in the response headers on a per-message basis. Contrast with proprietary Slack where one company codes every client and can make them all behave the same).
[1] https://www.rfc-editor.org/rfc/rfc2812#section-2.2
It is also possible for servers to tell clients only UTF-8 is allowed: https://ircv3.net/specs/extensions/utf8-only . This is the default of some server implementations.
It really depends on your needs. IRC can work just fine, and all the "problems" become features. Decentralized everything, free choice of clients, extensible via bots, hosted or managed networks are available.
If you wanted to build your own chat thing, maybe base it on XMPP instead.
Whenever I sign up a new customer, they get a slack channel where they can talk with our team. By far the best way to do this is to connect our slacks. With anything else they'd have to log in to another system or download a new client which means it won't happen.
I would love to try any of the other open source improved chat solutions out there. But the network effect, alone, keeps me on a paid plan.
For IRC I use Quassel which fills in all the missing gaps quite smoothly but it's on the user to set that up. Thus it's not for everyone.
At work we used to have irc servers around though because it allowed us to speak freely without HR constantly looking over our shoulders. But sadly the cybersec team hates these with a passion.