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!

2.11.10

A list is an odd creature, take 3

I mentioned to my first-year students that a list is an odd creature: it has only a head and a tail, where the tail is itself a creature with only a head and a tail, and so on. I challenged them to produce a picture, and Dan Benveniste came up with this:


I like the recursion, but it's not really a creature, is it? Further attempts encouraged! Previous entries:

23.9.10

Science is Vital


My colleague, Maria Wolters, writes:
I'd also like to mention the Science is Vital campaign, which is orchestrated by biomedical researchers but aims to be as inclusive as possible. There will be a march in London on October 7, a letter writing campaign, and potentially much more ... I know it's incredibly tempting not to do anything because politicians don't listen anyway, but if we don't complain loudly enough now, we might as well stick a sign on our backs saying "Doormats - If You Need Funds, Take Them From Us."

Portsmouth Sinfonia


A colleague recently referred to EPSRC's approach of appointing program managers untrained in the areas they manage as like the Portsmouth Sinfonia.

22.9.10

Twelve Virtues of Rationality

"These then are twelve virtues of rationality: Curiosity, relinquishment, lightness, evenness, argument, empiricism, simplicity, humility, perfectionism, precision, scholarship, and the void." By Eliezer S. Yudkowsky. Spotted via Conal Elliott. Thanks for the tip, Conal, it's a great read.

10.9.10

ed lambda Meetup

For those of you in or near Edinburgh: 7pm Monday 13 September 2010, Malone's Irish Bar, 14 Forrest Road. How to find us: "Look out for the lambda on the table". Organized by Ollie Saunders.

30.8.10

What Sequential Games, the Tychonoff Theorem and the Double-Negation Shift have in Common

Cantor Set by Kevin van Aelst
A recent paper by Escardo and Oliva, to appear in MSFP 2010, relates diverse aspects of computing, in the form of a literate Haskell program. I've written a further note inspired by theirs, also as a literate Haskell program. My code improves on theirs in a few ways, notably by using type classes to characterize valuation types, and by using QuickCheck to describe and check relevant properties. My note can be read stand-alone, but is best read in conjunction with Escardo and Oliva's paper. (The photo above is Cantor Set by Kevin van Aelst.)

Does Your Language Shape How You Think?


From an article in the New York Times by Guy Deutscher, describing linguistics view of the Sapir-Whorf hypothesis, seventy years on. Taken from his book Through the Language Glass: Why the World Looks Different in Other Languages. Spotted on Lambda the Ultimate.
For instance, some languages, like Matses in Peru, oblige their speakers, like the finickiest of lawyers, to specify exactly how they came to know about the facts they are reporting. You cannot simply say, as in English, “An animal passed here.” You have to specify, using a different verbal form, whether this was directly experienced (you saw the animal passing), inferred (you saw footprints), conjectured (animals generally pass there that time of day), hearsay or such. If a statement is reported with the incorrect “evidentiality,” it is considered a lie. So if, for instance, you ask a Matses man how many wives he has, unless he can actually see his wives at that very moment, he would have to answer in the past tense and would say something like “There were two last time I checked.” After all, given that the wives are not present, he cannot be absolutely certain that one of them hasn’t died or run off with another man since he last saw them, even if this was only five minutes ago. So he cannot report it as a certain fact in the present tense.
I wish all scientists were trained in this language!

26.8.10

L'Illusionniste


L'Illusionniste, Sylvain Chomet's second film and Jacques Tati's last, is a remarkable film; The Guardian gave if five stars. The film also reflects a tortured family history. Among other things, it is a love letter to Edinburgh, with loving depictions of many familiar locations. I saw it in the Cameo; how often do you watch a film that includes a scene in the very place you are sitting? While many of the settings are easy to identify, I could not place one key location, the 'Royal Music Hall' (see below)---did this actually exist in Edinburgh, and if so, where?

The Economics of Programming Languages


Network effects are clearly significant in the spread of programming lagnuages. I've often thought it would be good to team up with an economist to see if one could say something more forceful than just that simple qualitative observation. Meanwhile, I'm pleased to find the web page linked to above, which covers at least the obvious correspondences. (NB., the picture is from a different page.)

Programming Language Popularity


A site that tracks popularity of Programming Languages. Many of my favorite languages appear on the list. Interesting to see that (for this week at least) the order is Scheme, Haskell, Smalltalk, Erlang, Scala, O'Caml.

24.8.10

Sights and sounds of sorting


Nifty visualisation with sound of several sorting algorithms. It covers insert, bubble, selection, merge, and gnome sort; a related video tackles heap sort. Could be useful for teaching. Below is a second visualisation with robots.

11.8.10

Masterminds of Programming wins JOLT award

Masterminds of Programming, edited by Federico Biancuzzi and Shane Warden, has just won a Jolt award. The book features interviews with the creators of many programming languages, including a chapter on Haskell with contributions from Paul Hudak, John Hughes, Simon Peyton Jones, and myself.

3.8.10

The Bull, the Bear, and the Python (Part 2)

A previous post described the SEC's plan to clarify certain kinds of trades by describing them using a computer program, written in Python. Responses to the SEC's request for comments are now online, including a response jointly submitted by USACM and SIGPLAN. My thanks to all the experts who volunteered to help us formulate a response and ensure it represented the views of the USACM and SIGPLAN membership.

1.7.10

Visualization of Natural Deduction as a Game of Dominoes



The usual Gentzen-style rules make some use of visual layout, but I suspect it may be possible to exploit the potential of graphical techniques far more effectively. Here is one attempt to do so. I'm not entirely convinced by this particular approach, but it is a brave attempt and worth noting.

29.6.10

Information is Beautiful: How Will The Budget Impact the Deficit?


A stunning Infographic from David McCandless of Information is Beautiful. Note the £1 billion raise in capital gains compared to the £13 billion raise to VAT. An interesting perspective on these comments is offered by Joseph Stiglitz. Spotted via Boing Boing.

24.6.10

Why Undergraduates Should Learn the Principles of Programming Languages


SIGPLAN's Education Board has produced a document describing why undergraduate education in programming languages is essential. It's aimed at academics who are not specialists in programming languages. Please read and comment to help SIGPLAN improve it!

19.5.10

22.4.10

The Bull, the Bear, and the Python

In the US, the SEC plans to use programs to clarify complex trades by expressing them as a computer program. This strikes me as a fine idea, but they also require the use of Python. This is much better than the worst they could do, but also much worse than the best. A description of the plans, with further links, is posted by IT World and a critique is posted by Untyped.

Functional languages have recently seen increased use in the financial industry, including Jane Street Capital, Standard Chartered, and Credit Suisse. Of particular interest is work on composing financial contracts in functional languages, as pursued by LexiFi. I don't know how well this work could transpose to Python.

It has been proposed that SIGPLAN file a response to the SEC's request for comments. I am interested to hear the views of the programming language community. Should we support Python? Or should we suggest alternatives to Python, and, if so, what should we point the SEC towards?

21.4.10

Object and Representation


"Alexa Meade, 23, is a Washington, DC-based artist who paints on top of her subjects and puts them in real life settings. (No, you can't see the pixels. This is real.) From Meade's artist statement:

"'The reverse trompe l'oeil series is Alexa Meade's spin on reality. Alexa has invented a painting technique that makes 3 dimensional space look flat, blurring the lines between illusion and reality.

"'Typically a painting is an artist's interpretation of the subject painted onto another surface. In Alexa's paintings, she creates her artistic interpretation of the subject directly on top of the subject itself. Essentially, her art imitates life - on top of life.'"

Spotted via Boing Boing, which is the source of the above quote.

20.4.10

Eyjafjallajokull

Programming language researchers are among those dislocated by the flight ban caused by the eruption. FLOPS in Japan was seriously disrupted, and Barbara Liskov was forced to extend her visit to Edinburgh (where she spoke at the BCS/ACM Visions conference) so I had the benefit of a tutorial on distributed programming from her this morning.The ash plume of southwestern Iceland's Eyjafjallajokull volcano streams southwards over the Northern Atlantic Ocean in a satellite photograph made April 17, 2010. The erupting volcano in Iceland sent new tremors on April 19, but the ash plume which has caused air traffic chaos across Europe has dropped to a height of about 2 km (1.2 mi), the Meteorological Office said. (REUTERS/NERC Satellite Receiving Station, Dundee University, Scotland)Lava and lightning light the crater of Eyjafjallajokul volcano on April 17, 2010. (REUTERS/Lucas Jackson)

16.4.10

Apple bans Scratch from iPhone and iPad

Apple has locked down the iPhone and iPad to a tiny set of languages (C, C++, Objective C, and Javascript), and has followed up by banning interpreters for the child-friendly programming language Scratch. A black day for programming language designers.

14.4.10

RADICAL 2010

RADICAL 2010, International Workshop on Relations and Data Integrity Constraints and Languages. May 10-11, 2010, Microsoft Research, Cambridge, UK.

RADICAL is a workshop on databases and programming languages, with an emphasis on connections between databases and recent advances in type systems and logics, especially dependent type systems incorporating data constraints.

Organising committee:
* Andrew D. Gordon (convenor), Microsoft Research
* David Langworthy, Microsoft Corporation
* Philip Wadler, University of Edinburgh

Check out the web page, and drop us a line if you'd like to attend.

Robin Milner, 1934--2010 (second update)


A third obituary, written by Michael Fourman, has appeared in The Independent.

5.4.10

Digital Economy Bill

The Digital Economy Bill is slated to receive it's second reading on Tuesday 6 April, the day the government plans to call for election. This timing will enable it to go into a 'wash up', a process by which bills are approved on the action of the whips alone without scrutiny by MPs. Controversial parts of the bill could be rushed through with as little as 90 minutes of debate. This is particularly disturbing because of the bill's effect on civil liberties.

The bill's 'three-strikes' provision would allow an entire family to be disconnected because a teenager downloaded songs or videos in violation of copyright, without due process in the courts. The same provision may make it difficult for internet cafes, hotels, or universities to allow internet access. The bill also could make it difficult to offer any website that stores material for users, since in theory the stored material may violate copyright. Provisions of the bill may also be used to shut-down public interest websites such as WikiLeaks (which publishes leaked, and hence copyrighted, work).

A detailed description of how your service could be cut off is given by Digital Wrong. An assessment of the civil rights implications is given by Liberty. An article summarizing the bill appears in The Guardian. Organizations campaigning against the bill include Open Rights Group and 38 Degrees. The latter link takes you to a web application that will allow you to send an e-mail to your MP in only a few minutes.

31.3.10

9.3.10

LaTiKi, a Wiki for LaTeX


Stuart Beard has been developing LaTiKi, a Wiki for LaTex, as a UG4 project under my supervision. He writes as follows:
I am pleased to announce that LaTiKi is now available as a public beta.

LaTiKi accepts LaTeX syntax as input rather than the wiki syntax that is standard across many wiki implementations. This Wiki enables LaTeX users to collaborate on papers, edit, and track each paper. It is entirely based upon the open-source and widely used platform MediaWiki. I am looking for interested users to contribute, try out how well the system works and how useful the system really is. I also hope that any major underlying bugs are identified.

I have prepared a sandbox wiki with some of Philip Wadler's papers on the site to demonstrate how the system works. Note that to be able to edit papers on the sandbox you MUST sign up to the site and confirm your email address. This is available at http://www.stuartbeard.com/wiki.

Feedback is greatly appreciated.

If any readers are interested in this project and would like to do a similar thing with their own papers then a tarball is available at http://www.stuartbeard.com/projects.

1.2.10

Dimensions

Brilliant math videos. Adam and Leora had a look at the first last night, and were impressed. (It takes a lot to impress two ten-year olds!) Thanks to Perdita Stevens for pointing me at these.

Self-Description

Self-Description
(Be sure to read the mouse-over.) Imagine the applications to cryptography! From XKCD, a webcomic of romance, sarcasm, math, and language, by Randall Munroe.

25.1.10

Burns night

Two videos of the Informatics Burns night. Thanks to Steve Ewing for the oration, and to Andrew Mitchell for the videos.



12.1.10

Designing Effective Action Alerts

By Phil Agre. Sensible advice, crafted by someone who knows. Thanks to my colleague Conrad Hughes for pointing this out.