New Perspectives on JavaScript Carey Patrick