Over the Christmas holiday I'll be moving down to Christchurch and leaving Wellington. This is good because Christchurch (or more precisely Castle Hill) has excellent climbing, and new cities are fun. But I think I will miss Wellington a lot, it is one of the nicest cities I have ever visited, and living here has been a real treat. I'll reflect more on the academic side of my stay here in another post, but here is a list of things I think I will miss about Wellington in pretty random order:
People's Coffee - excellent coffee, even by NZ standards
The Engine Room - a great place for climbing training
The Rak - Not the best climbing spot on earth, but the one I've spent the most time, and I've grown to really like some of the problems
Prana - vegetarian cafe in Newtown - awesome
Cafes in general - including Sweet Mother's, Baobob, Cafe Deluxe, Midnight Espresso, Esspressoholic, Fidel's, Lido, O Sushi
The art gallery (I went to Roundabout the other day and it was excellent, as have been may other exhibits)
The Embassy - such a cool cinema
Our house - it might be small, but it is lovely, and my wife and I's first home together, adn it has an amazingly sunny deck
Two surprisingly good Hip-hop nights at the San Fran Bathhouse (Jean Grae, Talib Kweli, Pharaoh Monch, Mr Len)
The Powerhouse - surely the best place on earth to lift weights (no frills, all hardcore)
Bars - Havana, Monteray, Good Luck, Southern Cross (some weird and cool live music nights), Alice, Motel
All my friends and colleagues - of course!
I'm a research engineer at Mozilla working on the Rust compiler. I have history with Firefox layout and graphics, and programming language theory and type systems (mostly of the OO, Featherweight flavour, thus the title of the blog). http://www.ncameron.org @nick_r_cameron
Tuesday, December 21, 2010
Links in JOT posts
I finally got round to doing the last post on OOPSLA for JOT, I can't believe how long that took! Pretty bad really, but it's been a busy couple of months and it has increasingly been falling down my list of priorities. I also went through all the posts and added links to the papers. The posts are at the JOT blog (apparently the last two posts aren't up yet, but should be soon).
JOT blog repost: OOPSLA day 3 (finally)
Final day of the conference (is this the latest blog post ever? Probably. Consider it an un-expected Christmas gift):
Homogeneous Family Sharing - Xin Qi
Xin talked about extending sharing from classes to class families in the J& family of languages. Sharing is a kind of bidirectional inheritance, and is a language-level alternative to the adapter design pattern. The work includes formalism, soundness proof, and implementation using Polyglot. Dispatch is controlled by the view of an object, the view can be changed by a cast-like operation.
I didn't quite get shadow classes, but I think they are like further bound classes in Tribe.
Finally, their families are open, as in open classes, so the programmer can add classes to families post hoc.
Mostly Modular Compilation of Crosscutting Concerns by Contextual Predicate Dispatch - Shigeru Chiba
Shigeru presented a halfway language between OOP and AOP called GluonJ. The idea is that it should be a more modular version of aspects (I think). However, it was found to be not as modular to check and compile as standard OOP. The language supported cross-cutting concerns with predicate dispatch and an enhanced overriding mechanism.
Ownership and Immutability in Generic Java - Yoav Zibin
Yoav talked about work that combined ownership and immutability in a single system using Java's generics. It is nice work, but I'm afraid I was too busy being nervous about being next up to write any notes.
Tribal Ownership - Nick Cameron (me!)
I talked about work with James Noble and Tobias Wrigstad on using a language with virtual classes (Tribe) to support object ownership (i.e., ownership types without the extra type annotations) for free (that is, no additional programmer syntax overhead). I really like this work, it all seems to come together so neatly, which I find pretty satisfying. I really do think virtual classes are extraordinarily powerful and yet easy enough for programmers to understand. Hopefully, they'll make it into a mainstream language before too long...
A Time-Aware type System for Data-Race Protection and Guaranteed Initialization - Nicholas Matsakis
Nicholas introduced a language (Harmony) where intervals of 'time' are represented in the type system to make the language time-aware. This can be used to prevent race conditions in concurrent programs and for other uses (including some non-concurrent ones), such as allowing new objects time to establish their invariants. Intervals are scoped and an ordering may be specified by the programmer; the runtime or compiler may reorder execution subject to this ordering. Checking is modular and is flow insensitive.
Homogeneous Family Sharing - Xin Qi
Xin talked about extending sharing from classes to class families in the J& family of languages. Sharing is a kind of bidirectional inheritance, and is a language-level alternative to the adapter design pattern. The work includes formalism, soundness proof, and implementation using Polyglot. Dispatch is controlled by the view of an object, the view can be changed by a cast-like operation.
I didn't quite get shadow classes, but I think they are like further bound classes in Tribe.
Finally, their families are open, as in open classes, so the programmer can add classes to families post hoc.
Mostly Modular Compilation of Crosscutting Concerns by Contextual Predicate Dispatch - Shigeru Chiba
Shigeru presented a halfway language between OOP and AOP called GluonJ. The idea is that it should be a more modular version of aspects (I think). However, it was found to be not as modular to check and compile as standard OOP. The language supported cross-cutting concerns with predicate dispatch and an enhanced overriding mechanism.
Ownership and Immutability in Generic Java - Yoav Zibin
Yoav talked about work that combined ownership and immutability in a single system using Java's generics. It is nice work, but I'm afraid I was too busy being nervous about being next up to write any notes.
Tribal Ownership - Nick Cameron (me!)
I talked about work with James Noble and Tobias Wrigstad on using a language with virtual classes (Tribe) to support object ownership (i.e., ownership types without the extra type annotations) for free (that is, no additional programmer syntax overhead). I really like this work, it all seems to come together so neatly, which I find pretty satisfying. I really do think virtual classes are extraordinarily powerful and yet easy enough for programmers to understand. Hopefully, they'll make it into a mainstream language before too long...
A Time-Aware type System for Data-Race Protection and Guaranteed Initialization - Nicholas Matsakis
Nicholas introduced a language (Harmony) where intervals of 'time' are represented in the type system to make the language time-aware. This can be used to prevent race conditions in concurrent programs and for other uses (including some non-concurrent ones), such as allowing new objects time to establish their invariants. Intervals are scoped and an ordering may be specified by the programmer; the runtime or compiler may reorder execution subject to this ordering. Checking is modular and is flow insensitive.