Wednesday, October 24, 2007


Day 2 started with two long talks, fortunately both speakers were excellent and the subject matter interesting enough to keep my attention for one and a half hours. The first was by Erik Meijer, titled confessions of a used programming language salesman. The talk (and accompanying essay) is part autobiography, part introduction to LINQ, and part sales pitch for functional languages; which you might have thought would be a hard sell at an OO conference, but hey. Erik started by talking about his background in category theory and functional programming, and reminded me that I wish I could understand this stuff. He then went on to slate C Omega as a a bad job with too many types, but seemed happy with the LINQ stuff, which he revealed are monad comprehensions in disguise. He gave his theory for non-adoption of functional languages and good science in general, by saying the perceived pain of adoption was too high. He thus strives to reduce this to close to zero. He then went off on a bit of a tangent - the aforementioned sales pitch/rant for pure functional languages. on the way he gave the best metaphor for monads I've come across - in the context of a getTime function, the time changes and so isn't a function, but if you return the clock then you're OK, because the clock does not change. Monads are like clocks. He explained it much better than that though. Another good metaphor was making the comparison between functional and OO and nouveax cuisine and McDonalds, although I think this is a little unfair on OO, its a nice image.

The second talk was Second Life: The World's Biggest Programming Environment by Jim Pubrick and Mark Lentczner. This was very cool, it ticked all the boxes - games, 3d graphics, distributed systems, massively parallel and concurrent, and user definable everything! The basic idea is they have this 'game' (or world for creativity and business, depending on your point of view) with huge numbers of users, 15% of whom write scripts. The numbers for programmers, scripts, lines of code, etc. were staggering, never mind the sheer number of potential users for each script. They weren't shy in admitting that there scripting language is an abomination, but they claim the distribution model is great. In effect they have very real encapsulation, each unit is tiny and self-contained, but there are millions of them and they all run concurrently on thousands of processors, so the kind of stuff we've been promised for the future in countless motivation chapters. On a side note they have an explicit of state in their language and I think this is a great opportunity to plug some work I participated in - StateJ, paper available from the usual place. Anyway, the long and short of things is that they are porting it all to Mono so it all works properly at scale and they employ a cornucopia of neat tricks to do this, most of which are hacks to get poor design decisions in the CLR, eg. lightweight threads, serialisation, etc. Basically they have a very cool problem on their hands. They finished off by selling Second Life as a development environment, showing how their dev team collaborate virtually. It was a pretty cool demo, everyone loves pretty graphics at the end of the day! On another note, their security model is cool, looks like security is more interesting than I thought.

The last session I attended was research papers Atushi Igarashi presented Variant Path Types for Scalable Extensibilty, which is an extension of the FOOL paper I've described before, so won't do so again, its still very cool stuff.

Next up was Dependent Classes by Vaidas Gasiunas, a development of virtual classes that subsumes multiple dispatch, it is one of the most interesting papers I've read in a long time. But we've discussed it in SLURP, so I won't write more.

The last paper was User-Changable Visibilty: Resolving Unanticipated Name Clashes in Traits, the idea was adding access modifiers to traits and being able to change them on trait composition by freezing and defrosting. It looked like interesting stuff, but the talk was quite basic, mostly taken up with an introduction to traits. The paper looks worth reading though.

No comments: