Thank you for explaining your points.
Things like eventlistener, box2d and others depend on it, but are these 2.x only features?
http://discuss.cocos2d-x.org/t/shall-we-remove-matrix-stack/19950/13
If’s often not owed to compatibility, but just to planning a re-implementation of dependent systems.
They are totally optional. You don’t have to use them, but you can if you want to.
It’s your choice, totally up to you.
Again, isn’t it up to the developer to decide the route to go?
They are not a requirement to use. Why getting rid of something, which is just optional?
On this I agree. Well, I think we all agree on the lack of documentation.
Yes, the engine is lacking of some features, but the engine does not prohibit you from implementing it yourself.
The task of an engine is not to spoonfed every single bit the developers asks for.
You mention in some other post, that you change a lot of the engine source for “optimal performance”. Is there a chance, that you could provide those changes, so everyone could benefit from it?
If you already did, great! Thank you for contributing.
No engine out there can please everyone’s needs, but the fact, the engine is open source with full source code access, means, the community can alter, add, change and provide the features needed or the things developers complain about.
Be the change that you wish to see in the world.
Direct value access violates one of the the OO paradigms: Encapsulation
Should we drop that, just because it’s more convenient to have direct access to anything for anything?
It depends. If the object type is known, it will just be a normal function call. Not every time there is a virtual dispatch.
Virtual function call performance only matters in frequently called code. Are those getters/setters called frequently? If so, they might slow down the code.
But there are more important parts, that you have to consider: code with branching! A lot of the base code of the engine is using branches, which is a more important part to consider.
Altering the engine to a data oriented design with branch-less code, may leads to an unparalleled performance speedup. Who knows. I guess virtual functions would be negligible compared to the real bottlenecks.
But yes, virtual functions can be performance killers, as any OO design.
Back to C then