Gitter seems to have moved to being a Matrix instance (or maybe it always has? it didn't look like Matrix when I used it circa 2016), but matrix feels half-baked and is just a bunch of hacks put together. For example
- Can't "mark all as read" on a space. probably because rooms within a space are only tangentially related,
- No custom emojis or sticker packs (their proposal for this is to create rooms to house custom emojis/sticker packs[0])
Ah, the joys of open source: where "nobody has implemented 'mark all as read' on a space yet" is extrapolated to "half-baked and just a bunch of hacks".
Custom emojis & sticker packs exist as per MSC1951 (thanks for linking it), and implemented in various clients. The fact the data is stored in a room shouldn't exactly be a surprise, given 'rooms' (i.e. persistent decentralised pubsub topics) are the main primitive for storing data in Matrix, much as everything is a file in unix.
(Somewhat) confusing UI, delayed key exchange ("the sender hasn't sent the key to this device so the message can't be displayed yet" or something similar) and just in general a much less polished experience.