Ideally coding should just be drag n drop, no actual knowledge of anything behind that system required. 

You want the ball to bounce? You drag the BOUNCE box onto the BALL box, now the ball bounces.

That's the end-game of coding right there.