So it's just grouping? Couldn't it be done merely in UI?
Also how to divide each chatroom according to a topic e.g. #general, #dev, #off-topic (like #namespaces in discord)
It's more than just grouping. Spaces are rooms under the hood, just like rooms in which you usually chat in Matrix.
What makes spaces what they are is the ability to specify some rooms as belonging to a space, in the sense of a collection. Since spaces are just rooms, this includes other spaces as well (which are then called subspaces). This allows building a tree which can be used for e.g. representing a company hierarchy. A single room can also be a part of more than one space.
Spaces also have the concept of members. Soon support will land for the ability to restrict room joining to the members of the space a room belongs to. This will make it possible to use this as an on-boarding tool. For instance when an employee joins a company, they'd get invited to a company space, allowing them to see all rooms therein and join the ones they need.
There's also a distinction between public and private spaces. Private spaces can be used purely as a tool for personal categorization. This still needs to be supported server-side so that you can have the same view on all your clients.
I'm not familiar enough with Teamspeak to comment, but there's nothing inherently Electron-specific about this. Other clients need to grow support for Spaces, of course.
Well, in teamspeak the basic unit of organisation is a channel, and channels can have subchannels. every channel can be give individual rights which it inherits to its children. basically, exactly what they seem to have introduced with spaces. as someone who still uses teamspeak i found the "we don't have a hierarchy and every channel next to the others" quite odd. good to hear that the rest of the market is now copying this feature though, it's really useful. maybe at some point they'll get temporary channels too.
It's way more than just grouping. It's like directories in a filesystem: you can share them; they have access control; they let you curate your rooms into hierarchies either for your own edification or for the benefit of the wider network. Think of it more like carving Matrix into a set of USENET-style namespaces - or having a global hierarchical filesystem for realtime data.
What makes spaces what they are is the ability to specify some rooms as belonging to a space, in the sense of a collection. Since spaces are just rooms, this includes other spaces as well (which are then called subspaces). This allows building a tree which can be used for e.g. representing a company hierarchy. A single room can also be a part of more than one space.
Spaces also have the concept of members. Soon support will land for the ability to restrict room joining to the members of the space a room belongs to. This will make it possible to use this as an on-boarding tool. For instance when an employee joins a company, they'd get invited to a company space, allowing them to see all rooms therein and join the ones they need.
There's also a distinction between public and private spaces. Private spaces can be used purely as a tool for personal categorization. This still needs to be supported server-side so that you can have the same view on all your clients.