Favourites of OOPSLA 2007

OOPSLA 2007- 22nd International Conference on Object-Oriented Programming, Systems, Languages, and Applications – Montreal October 21 – 25, 2007

I’ve attended OOPSLA on a few occasions in the past but this was my first as a presenter, if only in the “companion” programme. The DevCreek team was accepted for a demonstration and also an animation in the Onward Film! track. Brett, Gordon and myself were all in attendance.


Tradeoffs in Retrofitting Security: An Experience Report

Mark S. Miller (Google Inc.)
Monday 9:00 – Dynamic Language Symposium

  • Introduction to Object Capabilities
    • “cp foo.txt bar.txt” vs. “cat < foo.txt > bar.txt”
    • Bundle authorization with designation
    • Remove ambient authority
    • Reference Graph == Access Graph
    • POLA – Principal of Least Authority
  • CAJA
    • Object capable subsystem of JavaScript
    • Currently being developed at Google
  • “Can’t add security – but can remove insecurity”
  • Need hostile environment – until solving security becomes the first problem, there is no action
  • Language design
    • Languages already too large
    • Insiders can’t subtract. Outsiders can’t add
    • old code vs. old tools – contravarient compatibility
    • “Discover the simple language struggling to get out”
  • “You can do anything in anything, but how hard are you pushing?”

“JavaScript – the language formally known as Scheme”
“If Mark Miller were here…”

OMeta: an Object-Oriented Language for Pattern Matching

Alessandro Warth and Ian Piumarta
Monday 11:00 – Dynamic Language Symposium

I really enjoyed last years keynote by Ian Piumarta on Open, extensible dynamic programming systems. The related work being shown this year was for OMeta, a new object-oriented language for pattern matching. This used Parsing Expression Grammers extended to handle arbitrary kinds of data. They work against streams which is very interesting. Their immediate use was to unify the mechanisms used for implementing a language: tokenizers, parsers, visitors, and tree transformers. It was really neat to see this.


Squeak BOF

Monday evening – Wiki Video

Unfortunately I wasn’t able to catch much of the demos of recent work with Squeak Smalltalk, but I did see a bit of Bert Freudenberg and Yoshiki Ohshima demonstrating the OLPC XO laptop. They had a couple of the laptops with them and they are very intriguing devices to see. The pressures of price, sturdiness and accessibility for children have worked out in a few interesting ways. The mesh network, the choice of software, the give 1 get 1 distribution scheme. Squeak Smalltalk with eToys is included with the laptop and the presenters showed how the devices could find each other and then copy eToy objects between the machines using the network. I had noticed previously the very high pixel density of the screens, but each pixel is not the usual bundle of Red/Green/Blue elements but rather only one of the colours. That works fine in the grey screen mode, but for colour modes the software uses various mechanisms to work around the individual colour elements by including an “anti-aliasing” approach where each pixel wide feature is spread over a few elements to produce the desired colour. It’s also interesting to hear how the laptops fit into a larger system, for example the laptops attempt to backup material to a local school server, which in turn trickles data to Google(?) for permanent storage.

The summary seemed to be: great hardware, ok software, and lacking in appropriate educational materials at the moment. The OLPC is very promising.


Confessions of a Used Programming Language Salesman

Erik Meijer (Microsoft Corporation)
Tuesday 10:30 – “http://www.oopsla.org/oopsla2007/index.php?page=sub/&id=4″ class=”iconExternal”>Essay PDF

This was a very enjoyable Essay session progressing through Erik’s career; functional programming, theory, web programming, and finally VB 9.

  • “I was a typeaholic”
  • “Division by 0 is the goal, not an error”
  • The change function (Pip Coburn)
    • Supplier-Centric Adoption Model = F(10X better * Moore’s Law)
    • Change Function = F(Perceived Crisis / Perceived Pain of Adoption)
  • Microsoft LINQ – Language INtegrated Query
    • Goal to unify programming against relational data, objects, and XML
    • New C# and VB features are syntactic sugar on top of C#2.0
    • Lambda expressions, anonymous types, type inference, monads, extension methods…
    • Query comprehensions
var q =
    from p in programmers
    where p.Age > 20
    orderby p.Name descending
    group p.Name by p.Language into g
    select new{ Language = g.Key,
        Size = g.Count(), Names = g }

Second Life: The World’s Biggest Programming Environment

Jim Purbrick , Mark Lentczner
Tuesday 13:30 – Podcast

This session turned out to be a lot more interesting than I had originally assumed. In some ways it is a humbling example of recognizing the real value in a system. Their own scripting language and technology are text book hacked up implementations, still they are able to scale away some of those limitations. The real win though is making an environment suitable for user creation of 3d objects and scripts for their behaviours, with easy distribution and tweaking for those scripts.

The scope is quite amazing. That future that everyone talked about of millions of distributed, commercial, live objects, written by users, that we all forgot about some time ago, has finally arrived. And it was initially hacked up over a few weekends!

  • Size
    • 15,000 processes/live regions
    • 15% of users “write” scripts
    • 30-60 million running scripts at any one time
    • 2.5 billion lines of code – (duplication level?)
  • Hacking
    • 1st version of language/vm written in a weekend
    • 2nd version written in a week
    • Curiously 16kbyte limit for a script and its data probably significant positive effect on adoption and sharing within the world
    • Currently moving to .Net/CLR/Mono technologies
      • 100 times runtime performance advantage over existing in-house VM technology
      • But the technology out of the box wasn’t completely suitable for 2nd life
      • Need to pause a running script and move it and its data to another machine
      • Aiming to support any language running on top of the CLR
    • How do you support versioning of libraries/languages in this environment?
  • Security
    • Simple ownership rules for who can modify/associate code scripts 3d objects
    • Gray Goo – containment as if fighting a wildfire by freezing the virtual space surrounding the goo, so barring its expansion
  • Agile development
    • The presenters were members of a 5 person team
    • Distributed team; many North America and European locations
    • Virtual “design studio” in Second Life for communication and development
    • Binaural sound feature enables some of the benefits of the agile project room
      • You can hear your pair partner, but in the background you can hear the other developers
      • Sound positioning makes up for a lack of avatar expressions
    • SubEthaEdit for concurrent text editing
    • Twitter via Second Life
  • Re-imagining the IDE
    • Intentional and Casual interaction
    • Building community by casual interactions
    • Sandbox – casual open workshop
      • Public 2nd life space for creating new objects, where anyone can watch and ask questions
  • We joined the development team live in Second Life
    • “.. Tess is the white cat.”

“…we went from gods to civil servants…” as the community grew from a few thousand users to many millions.

Lively Kernel BOF

Dan Ingalls, Krzysztof Palacz
Tuesday evening

This was a demo of the Lively Kernel system that Dan and others are working on as a research project at Sun labs. It is dynamic programming environment that runs in a web browser with JavaScript and SVG. It seems to have the feel of a basic Smalltalk environment and the immediate and direct manipulation of the Morphic framework from Self. The system is written in JavaScript and it and any user code are downloaded from the server as it starts up.

The web browsers and SVG implementations are only just starting to run with reasonable speeds and for continuous execution for this kind of system. The LK team so far only recommend the Safari 3 browser.

Day of the Giants

Wednesday – Podcasts: Brooks McCarthy Parnas

Wednesday was an extraordinary day for OOPSLA. The conference hosted keynote presentations from Fred Brooks, John McCarthy and David Parnas. Yes, that Brooks, that McCarthy and that Parnas!


Special Event

Wednesday night

The Wednesday night of OOPSLA is usually the special event night. For example, a visit to a museum followed by snacks in a tent. This year had a touch of the magical mystery tour about it. It was never entirely clear what it was intended to be. In the end it seemed less a bus trip with the walrus and rather more a university bar with lashings of Montreal smoked meat sandwiches.


Using Early Phase Termination To Eliminate Load Imbalances At Barrier Synchronization Points

Martin Rinard (MIT)
Thursday 8:30 – PDF

Last years invited speech by Martin was quite an eye opener for me. It was related to the difficulty of understanding systems especially for system maintenance. Just how well do you have to understand a system to keep on developing and delivering functionality at an acceptable level? I couldn’t help but smile at his experiments regarding bugs in existing open-source software and some general mechanisms to ignore those errors or skirt around them as fixes to keep the software functioning, more or less, without any real knowledge of the open-source software itself.

This year’s research paper was on the benefits of terminating some of the separate strands of large computations. The examples he gave were of highly concurrent computations which exhibit a fair degree of redundancy within them, such that aborting some of the work can still return a final result that is good enough. A calculation was sampled and a distortion model defined that related distortion and effort, so that you could make informed decisions regarding the best speed-up in computation while minimizing the magnitude of the distortion to the final result.

This is a very interesting area of software development: redundancy; massive computations; good enough correctness; tradeoffs between time, space and correctness; appropriate responses to errors.

It's only fair to share...
Share on Facebook
Tweet about this on Twitter
Share on LinkedIn

Leave a Reply