JavaScript: The Good Parts Good ideas: functions loose typing dynamic objects an expressive object literal notation Bad ideas: global variables Generally, the craft of programming is the factoring of a set of requirements into a set of functions and data structures.