WIP ‐ ECS in Nu - bryanedds/Nu GitHub Wiki

ECS Considered Imperative

While Nu does have a cutting-edge archetype-based ECS in addition to its MMCC API, it's not functional. This is because, IMO, an ECS being functional does not provide a positive sum of value in practice. An ECS is nothing more than a specific kind of simulation representation optimization that trades away higher level / declarative semantics like those of MVU / MMCC for speed. With an imperative ECS, you retain SOME decently higher-ish level semantics as compared to just using raw arrays and, in some ways, compared to the trash fire that is OO. But if you want functional simulation programming of any sort, you are only profitably served by the declarative semantics of MVU / MMCC. The only time you would reach for the ECS in Nu is when you need significant additional scalability for certain types of entities

So while Nu does have a state-of-the-art ECS, it doesn't have a functional ECS, and nor should it because a functional ECS is not really what you want. If you think that a functional ECS is what you want, then you haven't yet understood what MVU / MMCC is and why it is strictly superior when extreme scalability is not an issue.