Discord vs. IRC Rough Notes
push.cx
push.cx
The biggest complaint I have with IRC is its assumption of synchronous communication. If you're not connected, you won't get a backlog. People suggest setting up a persistent proxy, but this feels like a quirky workaround that doesn't fully resolve the issue. Plus, for it to be effective, everyone needs to be configured that way, which isn't practical.
Additionally, any media other than text needs to be transferred off-band, through DCC or other file transfers.
While Discord isn't perfect, it eliminates many of the issues I experience with IRC. Ultimately, it depends on your use case, but IRC's assumptions don't work for me or my peers. That's my two cents.
But that's like complaining that the assumption of water is that it is wet.
_Chat_ by definition is right here right now. It is not mail, pager, bulletin board, forum, or... water.
And indeed we have "persistent proxies" but we call them bouncers[1] and they have plugins and stuff all figured out in the _thirty plus years_ IRC has been around.
IRC does one thing and does it well enough to be older than all the social media, and to outlive it too.
Making your own bot[2] is easy, and "persistence" can also be done by having... wait for it... public logs[3]!
And yeah I use Discord too, it's fine while it lasts. On IRC networks since... 1997, and still here and most useful.
1: https://wiki.znc.in/ZNC 2: https://github.com/drbig/catabot 3: https://github.com/drbig/chatlogger
For one thing, I chat with people not just to chat, but to communicate effectively. IRC simply doesn't provide the functionality that aligns with my use cases. It doesn't meet the expectations I have for such systems right out of the box.
Creating and maintaining bots or workarounds just to communicate effectively isn't high on my list of priorities, given everything else I have to do.
So less about chat but more about async-first exchange. Sounds like e-mail?
> mobile client sends a notification by default for any activity
This is a setting on a per-server basis, “Default Notification Settings” although it doesn’t effect “Highlight notifications” or poll notifications if the user has participated in a poll, so it leaves something to be desired.
> no active ruby bot library
I’ve used Discord.rb, and it may not meet the author’s definition of active, but it does exist.
> complicated subscription structure with unclear pricing (but probably <$20/m)
Discord is free. “Boosting” or paying at a server level is completely voluntary and unlocks mostly cosmetic features.
> mobile app is noticeably slower at everything
This one I don’t get. On my 5-year-old iPhone the Discord mobile app is pretty snappy. “slower” than what?
On the note of mobile, I do know plenty of people I talk to on Discord with Android devices dislike the native Android to React Native update which slowed down Discord to the point where people risk bans by modding the older native Android client to continue working with modern Android.
As for slower, I was comparing to than the web app and mostly concerned by how slow it is to change channels and servers, coming from the context of a TUI IRC client where changing is <20ms.
> desktop streaming (1080p)
> I want to resume streaming Lobsters coding + office hours (esp for queries)
If you are sharing your screen, you are also voice chatting.
As I've never seen a service provide this ability, it could be that I'm mistaken, and that this wouldn't be as useful in practice as it seems in theory. But, theoretically, this would provide a nice middle ground between forums (and the pseudo-forum-channels Discord supports on Community Servers) and open, IRC-style general discussion. With this feature, users could casually discuss things as usual, but then move to a separate thread once a tangent becomes sufficiently lengthy/heated/etc.
It would make more sense if it worked like Slack, but even then, you can't shove existing messages into a thread for some reason. There must be some absurd technical reason such a feature is impossible, or UX designers decided it was too complicated to design for some reason. There is no "multi-select" for messages at all in Discord, even to batch delete...
> Discord is oriented to mass-appeal to passive consumption of games, gossip, and memes
> Lobsters is about creating, learning, sharing experiences/expertise
This is not fair. There are plenty of learning oriented communities on Discord. I have run several, and they work very well.
I am not sure why the author didn't consider Matrix.
The fact that server operators of many (all?) networks refuse to enable cloaking by default just shows that IRC has a very different culture than what modern users have come to expect.
In my mind there is no reason for cloaking to not be enabled other than "it's always been that way and I like seeing ISP hostnames when people join!".
https://support.discord.com/hc/en-us/articles/12926016807575...
I can't escape Discord because of the network effect, but this recently rolled out in one of the servers I'm in and it can't even be turned off at the server level. Only at the individual level. Servers can also enforce phone verification. And at the end of the day, getting someone to click a link you control to see their IP is simple enough on any platform.
But only my software dev friends took on that offer since Freenode/Libera is really the only reason to use IRC in 2024, and their channels are generally all programming-focused.
On the one hand, for people to work on it a lot, they need to be paid. Otherwise, they will be paid to do something else. So that would seem to indicate we need a corporation.
On the other hand, for it not to fall prey to the unfortunate expansion-stagnation-collapse life cycle of social products, it would seem it needs to be steered for the benefit of the world and the users. A corporation really cannot do that: a corporation is motivated by the interests of the people owning it and the people working there. While these interests frequently coincide with the interests of the people using whatever the corporation sells, there are also frequent failures to coincide which, when we consider something that is effectively infrastructure or a public good, is a problem.
Maybe a workable solution requires two organizations: a non-profit that supervises a corporation.
There's basically three organizations worth talking about. Governments, Corporations, and non-profits. If Corporations and Non-profits are out, the remaining one to do something is Government.
This structure also shows up with non-profits. For example, a foundation wants a museum. They work with various specialized, for-profit companies to build the building, put in the art preservation system, put in the security system, &c. However, even though it would seem everything could happen with just companies, the truth is, the composition of their efforts that makes a museum would not make sense if it were animated solely by those companies pursuing profits -- it is only the beneficial purpose of the museum that brings their efforts together in that way.
This points to a consistent, repeatable composition of organizations as a solution; and it's not something so novel.
The government may be able to manage something like Postgres; but I suspect it is more like a museum: we need a certain kind of stakeholder in the governance of the organization that is simultaneously broader and more narrow than the government. For infrastructure software, social networks and similar things, we want, on the one hand, an international assortment of stakeholders -- and we also want stakeholders who have some kind of real connection to software.
I think everyone agrees that Ghidra is pretty good for example. Ironically yes this is DoD project but surely it's possible to figure out how that team is setup and build out other software teams.
Some things seem to be invariants here: people need to get paid (or they will do something else); corporations are a good way to organize people to get paid to do something, whereas government is not; corporations are not organized for the public benefit and have to be balanced out by some other institution for public goods, like roads and many others, where aligning incentives through the market is too difficult.
What do you disagree with, in all that?
Now from the example you cite, and so many others, one direction we might take is that actually DoD projects are what works and so we just need to do more of them. This actually worked okay for the early history of the internet and we got quite a few decentralized, trustworthy communication mechanisms as a result -- the core internet protocols, email, the web. That seems to be tied to a certain era, though; so that's why I'm looking for alternatives. One option would be to do something like a museum: a non-profit that takes money from the public (sometimes as tickets and sometimes as grants) and then pays people (directly or through contractors) to accomplish something in the public good.
https://github.com/NationalSecurityAgency/ghidra
I'm talking about modern software, Ghidra.
> What do you disagree with, in all that?
It seems like a balance has been achieved somewhere in the US Government. Maybe Ghidra was an accident but if it could happen once, we can analyze the team behind it, the circumstance and create new government organizations that follow it.
And it can then serve as the basis of a model for other public-good software.
A lot of video game reverse-engineerers now use Ghidra for video game analysis. Its a really good tool. I can imagine that the security / infosec / bug-hunting communities would also like a tool like Ghidra. So it sounds good for a net-positive effect for the public good.
Its just kind of unexpected, that's all. But its still US Government software that has a good niche.
------------
I've seen some other analysis like Argonne National Labs GREET (https://greet.anl.gov/), which helps analyze different supply-chain models for how much greenhouse gasses exist.
And thanks to GREET, there are large scale analysis into what kind of EVs contribute to more greenhouse-gas emissions. A subject that requires deep analysis of the various chemistries that go into different EVs: NCA vs LiFePo4 vs NCM etc. etc.. As well as hypothetical future chemistries like Silicon or Sodium batteries. So we are now better able to focus on better solutions moving forward.
GREET sucks as a UI but the features are clearly good.
--------
Whenever I think of US Government software, these are the examples that come up. I think its... fine. The Government should make more tools for the benefit of society. GREET isn't as well written as Ghidra but its still software that matches the profile of public good that you and I are talking about.
I don't think Ghidra or GREET are even relevant -- what makes you include them here? They are cases where the government has produced some open source that is useful to developers -- even good open source "...sucks as a UI but the features are clearly good" -- but that's not really a problem we need to solve. There is plenty of good open source for developers.
For "societal software", as you put it, it's actually unworkable if it "...sucks as a UI but the features are clearly good"; it takes considerable design and usability resources to get the UI to be nice, and that's why the Discord vs IRC conversation comes. On the one hand, we have a company producing a product that developers actually want to use for chat, and on the other hand we have an open system that is increasingly falling behind.
Your point about "TCP/IP" and other historical software was that "it was a long time ago". I'm trying to point out that modern projects available today show that the Government is still an entity that can create good software that absolutely does crush other commercial works and/or serves niches that society needs that commerical failed to serve.
GREET is the example of societal software that must be created and is part of the solution to future climate change... in its small way. There needs to be programs that track emissions and analyzes supply chains and different products. I don't think any commercial (or open source) program could have done similar to GREET, its something that only a well-regarded lab (Argonne National Labs) can release and immediately gain recognition as a well-regarded program that makes decent estimates.
There was a time when people (ex: TCP/IP days) thought that government software was too powerful and that it'd wreck the free market just by participating. The reason the Government (IMO anyway) held back on software design is to protect the free market, but its always been an entity that could deliver if we just had the will to ask the government to make something.
-----------
The issues you're bringing up seem to all be about how commercial needs fail to line up to societal needs. But its never really been the commercial world's goal to make society better... its instead the commercial world's goal to make money for itself (which when well regulated, can often lead to societal improvement).
For any program that directly needs to improve society (ex: reverse engineering / software security... and/or supply chain analysis for climate change planning), its 100% should be a government project and owned by the government.
> There is plenty of good open source for developers.
Open Source has a major funding problem.
If people are willing to improve society voluntarily, that's good. But we can't rely upon that for every bit of computer infrastructure we have. To get true benefits as a society, we need to actually pay people.
This has to do with an old problem we have long seen in open source: open source does a good job developing protocols and fundamental software, but good user experience is not a strength, in general. When we consider what chat software actually is, it's actually a mix of several things: it needs a protocol, it needs a social network and policies thereof, and it actually needs a lot of user experience.
The government has never delivered quality consumer software. By "societal software", it doesn't seem like you mean social networking software or other software intended to be used by consumers. The examples you're offering are not relevant.
You are correct that open source has a funding problem, but not all public benefit ventures do. Many museums are good examples of a public benefit venture that, while not organized the way an open source project is (the museum is not free), is also not organized the way a corporation or the government is.
Has never _tried_ to do so.
Think about the problem of social networks. The network itself is a public good and infrastructure. Moderators that don't make money must be funded to keep the discussion network relevant and safe. (Otherwise spam, porn, hacks, doxxing, etc. etc. can overrun a network like 4chan / 8chan). Volunteers can do some of the job but not all of the job.
The problem with commercial enterprises, like Facebook, is that they only care about keeping just enough moderators to sell advertisements. We can see the limit to the moderation ability, no commercial software will seemingly extend beyond what we see from Meta / Instagram / Twitter / Reddit offers us (ex: loose collections of moderators that are clearly insufficient at the task).
Open Source has no money for masses of moderators like the commercial enterprises.
That leaves Government, a system we honestly haven't tried yet. We know government _can_ make software, even good software. We also know that government can create enforcement regimes (see Police, FDA, etc. etc.). It seems like a reasonable match to me. But we would need the political will to get Congress to fund such a venture.
Well, I think you are making a mistake, here. There are many other possible ways to organize non-profits besides the way open source is set up.
It seems like your reply not really with reference to what I said. What does free software do with regard to "...for people to work on it a lot, they need to be paid."?
(Not that type of free)
This then caused it to sink in to the puddle of mud forming a living fossil as like of IRC.
That's gotta be one of the understatements of the year. Very complex set up, almost no useful "how to use" documentation, and numerous outages made me give up on it.
As for why there is no good open source ones, it seems simple but is complex. What is often summarised as "text chat" becomes a long list of requirements when you probe deeper. People want history, power efficient notifications, be able share stuff like pictures and PDF's and when you press they always want to talk, video chat (with a funky background please), and broadcast their desktops and cameras too. And stickers. Who can function without a personalised sticker pack? They want e2e encryption, no unencrypted messages stored on servers, rooms lots of people that implement all those features, and hey don't forget infinite chat history. Oh and public rooms, with no central server, and provision for bot automation (with an AI plugin to reduce support questions of course) but no spam please. They want hierarchies of users in those public rooms - admins, mods and regulars and newbies. They want to be able fork threads and subgroups. They want a web interface, and a app, and gateways to all the protocols they prefer using despite all the effort you put into this one. And being open source it must be a lightweight and easy to understand protocol, with trivial setup.
We've had three attempts - IRC, jabber and matrix. None are there, IRC least of all. But IRC is simple and mostly just works.