5.1.11

Happy 2011!

Best wishes for the New Year. (Insert traditional Scottish handshake here.) A special thank you to those who sent pointers to things of interest, some of which I reposted here, and to those who posted comments to the blog. Please keep the good stuff coming!

(Photo by Mike Levad, spotted on Boing Boing.)

23.12.10

The Myths of Object-Orientation

The Myths of Object-Orientation. An after-dinner speech at ECOOP 2008, reprinted in ECOOP 2009. Spotted on Lambda the Ultimate. From the appendix:
The Sing-Song of Old Man Java
With apologies to Rudyard Kipling.

Not always was Java as now we do behold him, but a Different Language with very short types. He was small and he ran slowly, and his hype was inordinate: he danced on a TV set in the middle of California, and he went to Big God Gosling.

He went to Gosling at six before breakfast, saying, ‘Make me different from all other languages by five this afternoon.’

Up jumped Gosling from his fortress on the multicore and shouted, ‘Go away!’

He was small and he ran slowly, and his hype was inordinate: he danced on a set-top-box in the middle of California, and he went to Middle God Steele. He went to Steele at eight after breakfast, saying, ‘Make me different from all other languages; make me, also, wonderfully popular by five this afternoon.’

Up jumped Steele from his virtual reality and shouted, ‘Go away!’

He was small and he ran slowly, and his hype was inordinate: he danced on desktop in the middle of California, and he went to the Little God Gilad. He went to Gilad at ten before dinner-time, saying, ‘Make me different from all other languages; make me popular and able to run anywhere by five this afternoon.’

Up jumped Gilad from his office in Palo Alto and shouted, ‘Yes, I will!’

14.12.10

Instructionless learning about a complex device

If programming language design is to become a science as well as an art, we need to study psychology. This paper describes how subjects worked out (or failed to work out) how to guide 'BigTrak', a programmable toy.

Jeff Schrager and David Klahr, Instructionless learning about a complex device, International Journal of Man-Machine Studies 25(2):153-189, August 1986.

A list is an odd creature, take 6

Not really like a list, but a lovely animated recursion. Thanks to Michel S..

9.12.10

Pionen: WikiLeaks and James Bond



The Daily Mail, of all places, notes that WikiLeaks data is stored at the Pionen data centre in Stockholm. Built inside an old nuclear bunker, it is designed to look like something out of a James Bond film.

30.11.10

Blame for All

Blame for All, Amal Ahmed, Robert Bruce Findler, Jeremy G. Siek, and Philip Wadler. Symposium on Principles of Programming Languages (POPL), Austin, January 2011. (See also: STOP version).

Several programming languages are beginning to integrate static and dynamic typing, including Racket (formerly PLT Scheme), Perl 6, and C# 4.0, and the research languages Sage (Gronski, Knowles, Tomb, Freund, and Flanagan, 2006) and Thorn (Wrigstad, Eugster, Field, Nystrom, and Vitek, 2009). However, an important open question remains, which is how to add parametric polymorphism to languages that combine static and dynamic typing. We present a system that permits a value of dynamic type to be cast to a polymorphic type and vice versa, with relational parametricity enforced by a kind of dynamic selaing along the line proposed by Matthews and Ahmed (2008) and Neis, Dreyer, and Rossberg (2009). Our system includes a notion of blame, which allows us to show that when casting between a more-precise type and a less-precise type, any failure are due to the less-precisely-typed portion of the program. We also show that a cast from a subtype to its supertype cannot fail.

The Arrow Calculus

The arrow calculus, Sam Lindley, Philip Wadler, and Jeremy Yallop, Journal of Functional Programming 20(1):51-69, 2010.

We introduce the arrow calculus, a metalanguage for manipulating Hughes’s arrows with close relations both to Moggi’s metalanguage for monads and to Paterson’s arrow notation. Arrows are classically defined by extending lambda calculus with three constructs satisfying nine (somewhat idiosyncratic) laws; in contrast, the arrow calculus adds four constructs satisfying five laws (which fit two well-known patterns). The five laws were previously known to be sound; we show that they are also complete, and hence that the five laws may replace the nine.

26.11.10

A list is an odd creature, take 4

A fourth entry in the stakes to illustrate a list. Thanks to Eugene who posted this item from Cyriak's collection (click here for the animated version):Previous entries:

17.11.10

Mandelbrot Maps - now on an album near you


Mandelbrot Maps was written by Iain Parris as an MSc project, and updated by Edward Mallia and Taige Liu. (Here's the original.) Jim Hanks used it to generate the cover for his latest album Dedication. That's a nice recognition of Ian, Edward, and Taige---well done, folks!