SPA Conference session: Serious JavaScript

One-line description:
 
Session format: Tutorial (150 mins) [read about the different session types]
 
Abstract:JavaScript is probably the world's most underrated language.

It is certainly the most ubiquitous, with at least one runtime environment on almost every personal computer and mobile phone on the planet. It is the language of most client-side web interactivity in DHTML and Flash. It is preinstalled as a shell scripting language on all modern Windows machines and is optional on OSX and Linux.

It is simple to learn, has a small core library, requires only a small, simple runtime and is easily embedded. It's standard is controlled by ECMA and evolves at a reasonable pace. Implementations follow the standard providing usually only small extensions. It has reasonable tool support that is improving quickly and many platforms now have debuggers that provide dynamic evaluation.

... but none of this is why we believe it should be taken more seriously. It deserves the attention of SPA participants because it is actually a pretty good language. It has gotten a bad rap because many of the platforms on which it runs are crappy and because there is great variation between platforms that should be compatible, but this is not the fault of the language.

This tutorial will introduce the language from a real programmer's perspective (rather than as a gimmick for wizzy web pages). We will cover, dynamic typing, the prototypical object model, lexical scoping and the core library. We will point out some warts of the language and highlight some "gotchas". We will then show how some advanced programming techniques such as higher-order programming, currying and monads can be implemented in JavaScript and discuss where such ideas might be used.

With the rise of AJAX, the emergence of Rich Client tools such as Open Lazslo and Flex, and even server-side platforms like Helma, JavaScript is being used in serious commercial systems. This tutorial will provide a solid foundation for learning the language and give insight into how it might be used expressively and creatively.
 
Audience background:Programmers. A good knowledge of Java or similar will be assumed.
 
Benefits of participating:- Learn the fundamentals of the world's most ubiquitous language

- Get valuable tips on avoiding the warts and "gotchas"

- See how to use advanced teqniques such as higher-order programming, currying and monads
 
Materials provided:Crib sheets
Exercises
 
Process:The tutorial will be a mixture of demonstrations on the projector and exercises undertaken in pairs on laptops. Half the participants will need to bring a laptop with a web browser and network access.
 
Detailed timetable:
 
Outputs:Tired participants, very tired presenters.
 
History:
 
Presenters
1. David Harvey
Sibelius Software
2. Peter Marks
Digita
3.