Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Doesn't change the point that a Discord “server” is not a server.


They're called servers because we wanted to pick words that were familiar to what we were originally competing against, which was team-speak/ventrilo/mumble servers.

Picking words people are familiar with in order to convey a concept is a generally smart thing to do. A discord server was meant to be analogous to a ventrilo server. Calling them servers made that idea clear to our users, which helped users understand our product and what purpose a server served. I would say that the term has served its purpose well.

Internally we call them guilds, because having a "server server" is a bit ridiculous.


> a computer or computer program which manages access to a centralized resource or service in a network.

I think by definition you're wrong. By layman's terms you're wrong too. A server serves things, either content, chat text or your meal. Discord servers serve a collection of text channels located on a centralized resource.

Now, for the real lesson: take yourself and everyone else less seriously.


A Discord “server” is neither a computer nor a computer program. All “servers” are serviced by a single program distributed across many actual servers, presumably without any direct mapping.


From what Discord employees have previously said, a guild server is a single Erlang process that's usually fixed to a single host. Voice is handled separately, but again by a single process assigned to that guild server.


I'm not sure what distinction you're trying to draw here. Calling the process that handles communication between users a "server" was already common practice back when IRC was standardized in 1993 (where discord gets the term from). It even appears in the original jargon file, so that definition was common long before even that.


Yes, I don't disagree with this definition. But a Discord “server” is not analogous to an IRC server.


An IRC server has a collection of channels. A discord server has a collection of channels.

It is simple as that. IRC servers don't refer to a single physical server either since IRC servers supported federation allowing multiple servers to act as a single server. There is no need to be so strict on the definition of server considering how loose its usage was already with IRC.


No: an IRC network is a collection of channels. A network is then made up of numerous servers. In IRC parlance a server always in fact did explicitly mean a specific individual server and I would be shocked if you found anyone who hadn't used IRC for more than even a day or so that tried to call, say, EfNet a "server".


<moleman>I call EfNet a server.</moleman>


In fact I see this block in my .irssi/config:

    servers = (
      ...
      { address = "irc.efnet.net"; chatnet = "EFNet"; port = "6667"; },
      ...
    );


That is a specific hostname and is in essence a "server" (though the existence of irc.efnet.net is special in that it is a DNS load balancer address that selects a random server) and isn't EFNet; the concept of "EFNet", in contrast, is being called a "chatnet" in that configuration file, not a server. You might have multiple servers configured for the same network, and irssi will attempt to round-robin the connection between them if they fail. If you want a list of networks in irssi, you use /network list; if you want a list of servers you use /server list.

FWIW, IRC barely exists anymore. To the extent to which to does it has been massively simplified. It used to be that there were massive collections of servers for most networks run by tons of different people, and often if you ran an isolated server for a single-server network people would show up ply you to add their server to your network. I can see how someone who only casually uses IRC and only semi-recently (in the past decade or two) might be left with a really limited or even confused understanding of the lingo.

So like, sometimes networks did have these DNS round-robin load balancer addresses, and I could see someone getting confused by that for a bit. But, they weren't used all that often other than as a server discover mechanism, because--for a number of reasons I will list a few of--it mattered greatly what server you were actually on... enough so that, if you were to actually to use IRC much at all, it would become very very clear that a network and a server are not somehow interchangeable terms.

1) The Internet itself and the software we were using was flakey enough that you would routinely encounter a "netsplit", wherein people who were on one half of the network could still talk to each other but people on the other would see you all disconnect.

(This was also used by people to try to attack and take over channels by denial of service attacking specific servers in the network as the behavior of re-merging channels often gave you moments where you could take chanops.)

2) The latency across the Internet was sometimes higher--particularly if you had to do multiple hops to get to the right server the user was on--and so people who were on the same server as each other had a lot better experience talking to each other.

3) The channel namespace using # was global to the network but many networks supported server-local channels that were prefixed with ##. If you were on a different server you would thereby not be able to see the same server-local channels.

Nowadays, you wouldn't bother with most of this as, administratively, this is madness. The usual server-to-server protocol forms a DAG and so it doesn't actually provide any form of redundancy: your network feels about as stable as the least stable server (weighted by how close it is to the center of the graph). You also don't need lots of servers to try to distribute the connection load, and the core Internet latency isn't a big deal anymore.


Oh it was immediately clear that your original comment was right in the first half. The irssi example isn't intended to rebut that. I was rebutting the second half: that it was obvious. As someone who has thought about IRC for a couple of hours over the course of a decade, it's not obvious. The .irssi example is merely me trying to debug why I might have had that impression.

(It's also not clear to me why people in this thread are getting so pedantic about the distinction between server and service. I'm just here to exercise my pet peeve: nothing about computers is obvious.)


OK, so my argument here is that users aren't using IRC in a bubble: they are connecting to IRC to talk to a bunch of other people; and, because servers mattered SO MUCH, and the clients you were using--including irssi--are so consistent with the terminology split between "server" and "network", they wouldn't have continued to use the wrong term for very long because someone else would have corrected them or they quickly would have needed to do something more complicated with their client and discovered the difference in either the documentation or the output from basic commands like /connect.

Like, what server you were on was a near daily discussion among just about everyone on EFNet in particular, because EFNet was notorious for experiencing netsplits as it was simultaneously enormous and almost entirely unprotected: some networks (I think the big one being Undernet? it's been 25 years so I am likely remembering this poorly... I did a quick search for this and maybe I'm thinking of DALNet?) had come up with this idea of "services" like chanserv and nickserv that would help you register your stuff so it couldn't get stolen; but, on EFNet, every channel worth a damn had to be protected by redundant bots spread across the topology.

https://m.slashdot.org/story/13791

https://m.slashdot.org/story/19167

FWIW, the reason why the Discord usage of "server" kind of pisses me off is because it actively makes it more difficult for users to come to the correct understanding of terms in general parlance: it trains them to use a term "server" in a way that actively makes them understand the term less because exactly one popular service--Discord--has decided to misuse the term... and they do so with the excuse "we just wanted to be analogous to IRC"; but, somehow, they even got that wrong, and so the whole thing comes across as so incompetent as to be negligent and (thereby) passively malicious :/.

(I also probably am a bit more frustrated about Discord than a random commentator because, in addition to having been screwed during the username upgrade last month, a long time ago I was working on a similar service and even had a similar architecture--hell: I was even building it using Erlang; I don't think it was in Elixir, but I was an early user of that also and it might have been... I had two projects: one in Erlang and one in Elixir, and I don't even remember what the other one was--but then Slack came out and I thought I would never be able to compete against them as they had epic UI people... but then Slack chose a target market I found limited and after a couple years of feeling they would have to enter this space, Discord suddenly became popular and I was all like "damn it why the hell didn't I just assume Slack would be stupid?!".)


Ok that makes sense once you bring up netsplits. (Are they still as prevalent as they used to be? Or did the network grow more robust over time? Or is just the reduced usage of IRC that makes them matter less?)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: