XTech 2006 - Friday

Link: http://xtech06.usefulinc.com/schedule/#d2006-05-19

(* TME: Since I was supposed to write this up for work, I may as well finish putting it up here *)

Eric van der Vlist, an xml-dev regular, introduced his Treebind framework for binding hierarchical data to a Java object model. It is based on coding conventions and reflection, with full paper here. Seems pragmatic and well designed.

Oleg Parashchenko showed us his XSieve transformation language. It incorporates pieces of scheme into XML for functional transformations, bridging XSLTproc and Guile. Technically interesting, but I'd rather use XSLT2 or scheme rather than mixing.

Jeff Barr spoke on Amazon Web Services . Amazon is providing various APIs into its compute infrastructure, for example the Alexa web index, S3 for storage, Mechanical Turk for coordinating human tasks. The S3 model (simple storage service) allows either thick client applications to use it for archive or publishing, or can be used for hosting application-on-a-page, such as this wiki. (* Amazon is also offering compute facilities, competing with Sun's Utility offering. *)

The Mechanical Turk is interesting - for non-time critical, non-secure 'AI' problems it shifts the balance. Already you can get speech transcribed; go the other way any you have the book from The Diamond Age. If it gets out to the world's population centres, which projects such as One laptop per child promise, then services like this could shift AI massively toward concerted augmentation.

There's obviously lots of things that can be done once you have large providers doing the systems management stuff and giving simple APIs to lightweight languages.

Brendon Eich introduced JavaScript 2.
They're working on an update that can be implemented on small devices (Opera having input on this), that also facilitates Programming in the Large.

They are adding packages and type annotations, which may or may not help PitL - inferring traits should give as good performance improvements, and the type system isn't much more powerful than Java's, though with the addition of indicating where a reference may be null and arrays as structured tuple types, a bit like Nice or even Haskell.

JS2 will also have classes and interfaces. Classes are sealed - you can't add arbitrary members; presumably interfaces will, as well as being contracts between JS objects, also allow JS objects to map to XPCOM interfaces without having to explicitly provide a QueryInterface implementation.

Array comprehensions and generators are also coming into the language, so it's not all Java influenced.

In some ways the improvements are good - moving JS towards 'industry best practice' for PitL - though I'd have preferred something that allows implementations to break encapsulation of objects, and JS2 seems to be strongly XPCOM component oriented.