The moment you have a publicly facing API you are saying "these are the rules to talk to us". It doesn't matter what the client is, if it follows the rules then it should work.
A website is a publicly facing API and if two different browsers can talk the HTTP protocol and implement all the other APIs the website requires then you shouldn't be blocked from accessing the website through one of them
You're not really answering my question. "One of the rules of this API is that you exclusively use this client" is an expressible rule. What gives you the right to dictate the terms that other people build by? I don't understand the principle here.
I'll explain why I want the right to dictate the terms by which software on my computer talks to software on other people's computers. It's because it's relatively easy to customize local software to work in ways I and other people want it to, and the only thing stopping us from doing so is arbitrary draconian laws and rules. This results in situations where you can't access a lot of straightforward websites and services unless you download an "app" that's actually just a wrapper around a web browser and a bunch of spyware, and it makes it impossible for people with various minor disabilities to use a lot of services comfortably.
The rule right now is "Any jerkoff can dictate what is and isn't allowed to run on my computer" and I would like to change that rule to "I'm in charge of what runs on my computer, you're in charge of what runs on your computer".
You are in charge of what runs on your computer, nobody is forcing you to use Discord.
There's no jerk dictating what is allowed to run on your computer, there's someone offering a piece of software that you can willingly install on your computer if you want.
If you don't want that, you're always free to not use the software or use workarounds to avoid the things you don't like.
I, for example, hate ads and use adblock always. But I don't think it's fair for me to go and say that everyone should forced to not put ads on their stuff.
I'm not a fan but I understand that I have no right to dictate what people do with their software
This is not true for platforms. If a community decides they're going to use Discord, then you, the individual, are out of luck. You either use that or miss out on the community or convince the entire community not to use Discord.
How is that different from, say, being forced to buy a PS5 or an X-whatever to participate in a gaming community, or to get a Spotify membership to hear a particular podcast?
They aren't very different. With Spotify we actually gave up a lot of power that custom clients had for the lowest-common-denominator sort of stuff, which is really sad.
With each of these products we keep giving up more and more of the powerful variety that was available before. While the average person doesn't lose much, the average person doesn't really exist and we've really lost a lot of long tails of value.
I feel a lot of laws dictate what private companies provide us. For example a butcher's meat cannot be covered in rat poison. A hyperbolic example but for giant chat services like this where the wield an incredible amount of power because of scale they are still subject to restrictions by the government for the benefit of the people. The government totally has that overriding right because your companies operating in there county. Don't like it the same way the user has no choice but to not use your interface the company has the right now to operate in the country. Personally I think the api format is a little ambiguous but it's incredibly naive to think that companies cannot be subjected to laws on how they do business just because they built a computer service. With adoption comes regulation to protect both users and companies
I agree of course, it's not a violation of any laws. I just thought you were asking for some moral principle to justify pressing a developer to make an API available
As the world changes, we can't always expect new behaviors to ideally fit existing moral principles.
Is there a moral principle preventing a power company from providing you with all your electrical appliances and forbidding you from using those not provided by them?
There are a LOT of jerks coercing people into being used by Discord. Not only that, actively defending it.
FOMO on "community" is a considerable factor. The regular person is quite likely a social being. They will care and value being able to use the same platform.
It is a personal sacrifice to resist it while it remains. Even when a Free Software alternative becomes wide-reaching enough for an exodus, it'll be years too late.
> I, for example, hate ads and use adblock always.
> But I don't think it's fair for me to go and say that everyone should forced to not put ads on their stuff.
You can use ad blocking software because browsers are on our side. Our browsers support uBlock Origin whether webmasters like it or not and they don't have the power to force us to switch.
What companies like Discord and WhatsApp do is akin to contractually requiring us to use a specific browser that does their bidding on pain of banishment from the platform. That's how they get away with advertising, spamming, surveillance, DRM and countless other abuses: by forcing us to run their software on our computers if we want to use their service. If we could run our own clients, they would be powerless.
The terms of service are just Discord being transparent about what they’re doing.
The thing actually stopping you from using Discord with a third-party client is that Discord’s server software responds differently to the way the third-party clients talk to it.
You’re in charge of what runs on your computer, and they're in charge of what runs on theirs.
It reminds me of being a little kid growing up in a house without any channels on TV which had been my parent's deliberate decision (to shelter us from all the advertising and presumably, help us become more active and creative). All of my friends would be talking and joking about some show they saw the other night, and I'd be out of that loop. Asking them to explain what they saw would annoy them a little, but I might get a begrudging explanation. For a solid couple of years, my friends' favourite characters from shows like South Park and Family Guy were mysterious figures from apocryphal legends, whose personalities I understood fragments of without actually ever seeing them.
Maybe sometimes I could pick up on a meme without knowing the source material and sort of fit in for a bit. That's what not participating directly can be like, when you're caught at the fringe of your community because you don't use <platform>.
Or maybe we can just have interoperability and open systems so all users can be happy, and don't have to choose between being obnoxious social outcasts or bow down in total obedience to the surveillance capitalists?
The problem is that all users aren't happy. Having used federated services for years, they're never in synch, and some users always have access to some features that other users don't have.
In fact, the problem is chiefly that a certain group of assholes never upgrade their clients, ever, and disingenuously try to keep everyone on an old version of the protocol, because they don't see a need for new features. Period. I've been through this gauntlet with some long-running open-source projects, and basically these guys were like "plain text and command-line should be sufficient for everyone (and shame on you if it's not!)".
Of course, that's fine if you're a programmer, but then these guys were SHOCKED - shocked, I say, that people's whose primary working medium was images rather than text - you know, UI designers and artists - found it a struggle to work on their project and quickly gave up.
This kind of bigotry constantly stifles progress in the OSS community.
---
There's a damn good reason no federated service even comes remotely close to Discord, and it's because despite all of those features being developed for other clients, repeatedly, there is always heavy social pressure not to leave people out, so "newfangled" features get swatted down by communities, and people are forced to only use the features that everyone supports.
You can have IRC that supports pasting images just fine, but some asshole's client doesn't support it, so you're back to using a shithole solution like external pastebins or personal FTP servers, again. Otherwise you're dealing with a constant "I don't see anything! Why can't you just use something that works on my client!"
---
So no, "interoperability and open systems" doesn't mean all users can be happy. It's a trojan horse to let luddites force obsolete versions of the protocol on everyone because they don't want to update.
While I understand your sentiment, no jerkoff is dictating what is and isn't allowed to run on your computer. You're always welcome to use something other than Discord.
How can a server know I'm using a different client if all the features are implemented? The condition that you may not use a third party client cannot be imposed by the API but is stipulated externally.
A website is a publicly facing API and if two different browsers can talk the HTTP protocol and implement all the other APIs the website requires then you shouldn't be blocked from accessing the website through one of them