I think both types of community can have a value. Being general as in “all things can fit here” and in “only things that are general to programming”. I have no experience in community management so take my words with a huge grain of salt.
The communities on Reddit were huge. That lead even in the smaller more specialized communities to have a big volume of posts. I am mainly interested in game-dev and Rust-Lang, and even there were so many posts that do not fit what I am interested in. But would splitting the communities make it better? Maybe I could then chose to ignore some of the posts, but also the hurdle of posting stuff, the and to enter these communities for people might get higher. As a newbie, (either to programming or just to talking on these platforms) you might be intimidated to post to a group of experts. And it is much easier to find. Just a “programming” community where all things have place can be a very good place to “collect” people and filter them into their nieche interests. Link to other communities, crosspost. Hopefully people will then start to post the more specific stuff in the more specific communites on their own.
I feel like Reddit made it harder over time to form a “meta-community” of multiple subreddits. Though I can’t right now exactly pinpoint why that is.
So again I see benefits to both approaches. Maybe we just need both. Make a “computer science” community, advertise it on this community, and make it focussed on concepts, papers and the generic programming stuff. Filter the “patch notes” stuff out from there. And this community here could then be the catchall “landing-page” thing. There will be suff for everyone, but not all of it. There will be some general posts and some specifics. And hopefully we can find methods that people find their more specific communities if they have more specific stuff to share or ask.
Sorry, I got a bit rambly in my stream-of-conciousness post here. Hopefully you can get anything from it. I am not sure :)
I have worked with and build a SoA system. I quite like it. I worked with one written in C++ where your objects were represented by small reference structs and you access all of the real members via static methods. It was done to improve cache access times as often you iterate over a large number of objects but read only a single property (say only the position) of each object. I don’t know how big a performance improvement this actually is, as we don’t have a feature-parity version of AoS lying around. But taken by itself the SoA does not feel less comfortable to work with. Though we make heavy use of a code-generator to not write getter/setter boilerplate.