So - You Think You Know JavaScript?

This is a talk that I first gave at SkillsMatter in London in April 2011.

It's about 90 minutes; the first section covers the history and evolution of JavaScript, from Alonzo Church's work on the lambda calculus in 1936 right up to NodeJS and the Google Chrome Web Store. It then covers some of JavaScript's more esoteric language features, and finishes up with a couple of demos covering declarative binding using Knockout, client-side templated JSON using Tempo, server-side event-driven JavaScript using node.JS and a quick look at running HTML5 applications locally on iOS devices using an HTML manifest file.

If you'd like me to deliver this talk or some variation on it at your event or user group, please get in touch - I'm @dylanbeattie on Twitter or dylan@dylanbeattie.net

Links and Downloads

The Video (thanks to SkillsMatter)
Thanks to the awesome folks at SkillsMatter, the full talk is available online.
Slide Deck (Abode PDF, 2.2Mb)
Including my speaker's notes, which (1) include links, resource and attributes, and (2) remind you exactly what the Ferrari picture means.
BomberJS (aka CartmanJS) at Github
The complete code to the websocket/nodeJS iPhone demo at the end of the talk.

You can use the code for whatever you like. You can download the slides to review and share, but you may not use these slides as part of a public presentation without my permission. A great deal of work goes into a talk like this, and the slide deck is only a part of it. If you want to use them in your own material, please contact me and I'm sure we can work something out.

Oh, and Eric Cartman's likeness is used without permission. Please don't sue me, Matt and Trey. I love you guys.

References

Basically everything that ended up in my "JS Talk" bookmarks folder whilst I was preparing this talk. In no particular order.

History

Steve Jobs / Thoughts on Flash
JavaScript creator ponders past, future | Developer World - InfoWorld
The Princeton Mathematics Community in the 1930s (PMC05)
Journal of a Programmer: Coders at Work: Brendan Eich

JavaScript Language

Javascript Closures
Adequately Good - JavaScript Scoping and Hoisting - by Ben Cherry
Digital Web Magazine - Scope in JavaScript
The JavaScript Comma Operator | JavaScript, JavaScript

HTML5 and JS App Stuff

HTML5 Boilerplate - A rock-solid default template for HTML5 awesome.
How to Make an HTML5 iPhone App
Packaged Apps - Google Chrome Extensions - Google Code
Determine iPhone orientation using CSS | The CSS Ninja - All things CSS, JavaScript & HTML
Safari Web Content Guide: Configuring Web Applications
AppCache Internals
web applications - Can I clear a webapp in Chrome? - Stack Overflow
Mozilla reference on the HTMLMediaElement
coolaj86/iphone-html5-offline-app-demo - GitHub
A better application cache manifest « Dawn Budge
Offline Application Cache

CommonJS and NodeJS

CommonJS: JavaScript Standard Library
How To Module - How To Node - NodeJS
Intro to Jake - JavaScript build tool for Node.js - How To Node - NodeJS
Tempo :: The tiny JSON rendering engine by TwigKit
four: features for a new web server