All 2D Game Engines/Frameworks are trying to solve the same problems. Thus, the languages don‘t matter; they are simply the technologies, the bricks that make things happen. (Flash/AS, HTML5/JS, Cocos/ObjectiveC, MFC, Swift, etc.)
Display:
Stage, Canvas, RootViewController, they are essentially the same thing- the display entry point of an App.
DisplayContainer, Sprite, AnimatedSprite, MovieClip, they are just a family of displaying elements with deriviation hierarchy
DisplayContainer has child nodes, which could have children too
Animation, animations are basically a sequence of images being played at a certain speed/frame rate
Update/ticker funciton
Like in real world, things happen/progress as time elapses. In each timestep, coordinates being updated, images getting redrawed, calculation are performed, etc, etc.
Observer / Eventlisteners
They are basically function pointers, upon events being fired, program looks into the registered function list. This method is opposed to polling, which constantly checking certain conditions in each update cycle.
Physics/AI:
In this way physics is independent from the game engine it‘s self, irrelevant to 2d or 3d, only the calculation space matters.
Sound:
This is another dimension.