The Taming of the Script

Emmanuel Gaillot



JavaScript is a living paradox; it seems to spawn the best and the worst of the web: sometimes highly interactive browser-hosted applications that marvel by their richness and fluidity, other times monsters behaving randomly depending on which browser is used, or memory gluttons sluggishly dragging their over- weight self. How could this be possible?

It appears JavaScript isn’t a language one learns, but a language one endures. Server-side application coders are asked to improve the user experience by adding behaviors “in the browser.” What could be wrong with this? A programmer is a programmer, in a language or in another. Problem is, JavaScript isn’t like “another language” (Pythavaby++, or one of its equivalents). To use JavaScript like “another language” is like working the wood against its grain. JavaScript is a functional programming language, which underlying paradigm differs radically from object orientation. It is a language whose strength lies in its easiness to manipulate DOM elements and to associate data sections (in HTML format) to presentation styles (in CSS format), in response to events generated by the user or the server.

It is these “Good Parts” of JavaScript and the associated way of thinking that this tutorial presents. Through exercises of increasing difficulty, attendees will learn how to get a better understanding of JavaScript and its benefits, how to apply agile engineering practices (like TDD, loose coupling and emergent design) in this somehow peculiar context, and how to further their learning on their own.

Please bring your laptop with some recent web browser installed on it (suggestion: Chrome). Also, it would be convenient if you already have a Dropbox account set up.

Intended audience

This tutorial is meant for (eXtreme) programmers who don’t use JavaScript as their primary programming language and who wants to get a firmer grasp on their use of it – especially in situations where they have to code features that will be executed in a web browser.

Benefits of attendance

Attendees will have the opportunity to learn

  • how to use Jasmine to test-drive JavaScript programs
  • how to apply Functional Programming in JavaScript
  • how to deal with events and callbacks
  • how to reduce coupling in the code and to separate the scripts from the HTML page
  • how to use jQuery and CSS selectors to manipulate the DOM
  • how to find reliable documentation related to JavaScript on the Internet



Emmanuel Gaillot works as a team coach, (extreme) programmer, facilitator, trainer and systems jiggler. For the past ten years he has been helping software makers to be better at, prouder of, and happier about their work. A speaker at many conferences on Agility, Emmanuel also organizes the annual Agile Open France conference. He has co-founded (and still assiduously attends) the Coding Dojo in Paris. Emmanuel works in Paris at /ut7, a co-operative business he learns to hack with his fellow colleagues. He currently focuses on learning exotic languages, shaping self-organizing structures and setting up co-learning spaces.