Here were the walkaways:
- Every object is always mutable
- The dot operator is equivalent to de-referencing by hash
- The new keyword creates an object that class constructors run inside of, thereby imprinting them
- Functions are always closures
- The this keyword is relative to the execution context, not the declaration context (dynamically scoped)
The afternoon session (detailed notes) showed off new features in Rails (v1.1) that support AJAX. In typical Rails fashion, the focus was on reducing the places where programmers have to repeat themselves.
David created a shopping cart app on-the-fly and AJAX enabled it as we watched. The AJAXification was quite easy. What wasn't easy was the new programming model that AJAXification introduces (whether done in Rails or not). For example, since the page is not reloading each time, you have to link the various pieces and update them yourself. With one or two AJAX components, it's not bad, but as the number rises, you get a combinatorial explosion of components that might be dependent on each other.
I liked these tutorials because they were soothing. Soothing in the sense that I found myself believing that rich Web-based clients weren't the purview of magicians or teams of programmers, but that this technology could find its way onto the Web--and soon.