Bots are, on a platform level, presented as bots. It's not a courtesy rule of "please name bot accounts as _bot" or something.
You can do actual payments with the API, it's possible to earn money with a bot.
Custom inline keyboards you can use to operate bots instead of parsing commands like ye olde IRC bots. Like a home automation bot could reply with a list of rooms when you ask for a room temperature, then you just tap the button for that room.
Closed source, walled garden yadda yadda, but it just works.
Discord bots are a bit less robust, but can still do a ton of things "natively" Matrix bots can't.
I think I saw the Rust based implementations sometimes used a separate thread for background tasks like statistics reporting. Not much additional in the way of "directly" using threads, but I wonder how many could actually be any faster with direct threading.
call me out if I am wrong, but isn't history dependent on the server of the chatroom creator, and doesn't every server have different history settings and does it not handle encrypted messages fully?
Yes, XMPP server implementations typically give admins full control over data retention. Different use cases demand different settings, so it's quite adaptable to whatever needs you have.
I'm not sure what you mean by not handling encrypted messages fully, it handles encrypted messages fine.
> so it's quite adaptable to whatever needs you have.
as a user you cannot, even if you self host, because you are not the one controlling message storage
> I'm not sure what you mean by not handling encrypted messages fully, it handles encrypted messages fine.
you can load encrypted messages (including keys if they are needed to decrypt them if necessary) using a fresh login such that you can read them again?
> As for the second point, Matrix's ever-moving target of a protocol makes selecting a client or server that covers all of your needs a massive pain. Currently, Matrix's primary server software, Synapse (which is also at the base of the matrix.org server many people default to when joining the network), is violating the Matrix protocol, making it impossible to invite users to chat if they are on compliant Matrix servers.
This will be referring to enforcing MSC4311 (https://github.com/matrix-org/matrix-spec-proposals/pull/431...) stripped state validation. Synapse announced a 1 year compatibility window to avoid ecosystem fragemtnation: https://github.com/element-hq/synapse/issues/19943. However, due to MSC4311 not better outlining how to handle compatibility, another server implementation chose to enforce the MSC more rapidly, breaking compatibility with everyone who hadn't yet implemented the MSC - including Synapse, which hadn't actually implemented it yet. Speaking as the lead of the Matrix Spec Core Team, we should have handled this better. https://github.com/element-hq/synapse/pull/19723 is the Synapse implementation which is now in the process of landing.
nothing is optimized away, it's just not executed - e.g. the program including semantics of the language is just designed such that it is not executed.
e.g. for Rust/tokio printing B is skipped, because the process exits and cancels the future before the task can print B
That's what I thought. But then what is the point when no other async function is executed while the caller sleeps for 1 second (presumably, or is it ms?)?
What does the Telegram Bot api have, what Matrixes API doesn't have?
reply