29.3.12
More empiricism!
Thanks to Matthias Felleisen, Shriram Krishnamurthi, and Kim Bruce, I can list more papers that apply empiricism to explore programming languages.
26.3.12
An Empirical Investigation of the Influence of a Type of Side Effects on Program Comprehension
I've bemoaned before the lack of empirical research on programming language design. Here is one modest result, showing what you might expect, that side effects in expressions harm program comprehension. The sign of a good psychological experiment is surprise. While the result in this case is unsurprising, perhaps the observation of similar results for both inexperienced and experienced programmers is a bit more surprising.
This paper reports the results of a study on the impact of a type of side effect (SE) upon program comprehension. We applied a crossover design on different tests involving fragments of C code that include increment and decrement operators. Each test had an SE version and a side-effect-free (SEF) counterpart. The variables measured in the treatments were the number of correct answers and the time spent in answering. The results show that the side-effect operators considered significantly reduce performance in comprehension-related tasks, providing empirical justification for the belief that side effects are harmful.
Conference Reviewing Considered Harmful
Conference Reviewing Considered Harmful offers a delightful and provocative view on the strengths and weaknesses of conferences, and how they might evolve.
This paper develops a model of computer systems research to help prospective authors understand the often obscure workings of conference program committees. We present data to show that the variability between reviewers is often the dominant factor as to whether a paper is accepted. We argue that paper merit is likely to be zipf distributed, making it inherently difficult for program committees to distinguish between most papers. We use game theory to show that with noisy reviews and zipf merit, authors have an incentive to submit papers too early and too often. These factors make conference reviewing, and systems research as a whole, less efficient and less effective. We describe some recent changes in conference design to address these issues, and we suggest some further potential improvements.The paper applies the methods of the systems community to evaluate systems conferences. Three cheers for reflexive research!
22.3.12
Diffusion of Innovations
Marius Kempe writes:
I'm a PhD student in cultural evolution, with a dabbling interest in programming, Haskell, etc. I noticed that in several places (your blog, and certain video interviews) you expressed an interest in understanding how cultural innovations spread (eg. programming paradigms) and what conditions favor and inhibit innovations spreading. I wanted to recommend a book to you on this topic, Everett Rogers's 'Diffusion of Innovations'. It is a very well known book across various social sciences, and it is both readable and thought-provoking; I think you might find it interesting for a principled understanding of why (programming language) innovations have spread as they have.Thank you for the recommendation, Marius! To answer you question: I want insight into the factors that make programming languages successful. Why did Perl, PHP, and Ruby capture a larger market share among developers than Racket, ML, or Haskell? It seems clear that one factor is what economists call 'Network Effects', but I wish to develop a more nuanced answer.
Additionally, I would be interested in hearing any specific thoughts or ideas you might have on studies or questions that my field might try to answer about the spread of programming languages and paradigms; I would be interested to combine my work and non-work hobby in some sort of way.
Mandelbrot and Julia: A surprising relationship
My students's honours projects revealed a surprising relation between Mandelbrot and Julia sets, illustrated in the video. As is well known, each point on the Mandelbrot set generates a corresponding Julia set, and moving the point on Mandelbrot causes the corresponding Julia to vary in a characteristic way. Also as is well known, the Mandelbrot set contains reduced images of itself, and similarly the Julia set contains reduced images of itself. Here is what surprised me: moving a point about the reduced Mandelbrot set causes the reduced Julia set to vary, in exactly the same characteristic style as moving a point about the full Mandelbrot causes the full Julia to vary. This only becomes apparent when using a real-time interactive application such as Mandelbrot Maps. Is this fact well known? (I've spotted at least one other YouTube video illustrating the fact, so I'm not the only one to discover it.)
The video above was produced by my student, Alasdair Corbett, whose version of Mandelbrot Maps for Android phones and tablets is available from Google Play (formerly Android Market). Alasdair is using the Google Play rating system as part of the evaluation for his honours project, and I encourage you to download the app and rate it. (Not to mention that it's great fun to use.) We believe Alasdair's project is the only Android app that permits real-time interaction showing the relation between Mandelbrot and Julia.
If you don't have an Android device available, you can see the same effect using Iain Parris and Edward Mallia's web app. (But it's not as much fun without a touch screen!)
19.3.12
Mandelbrot Maps: Now on Android!
My student Alasdair Corbett has produced a version for Android of the Mandelbrot Maps application developed by him and several of my students. There are other Mandelbrot apps, but no others let you see the relation between Mandelbrot and Julia curves in real time. Check it out!
13.3.12
Propositions as Sessions
I've just released a draft paper. Comments welcome!
Continuing a line of work by Abramsky (1994), by Bellin and Scott (1994), and by Caires and Pfenning (2010), among others, this paper presents CP, a calculus in which propositions of classical linear logic correspond to session types. Continuing a line of work by Honda (1993), by Honda, Kubo, and Vasconcelos (1998), and by Gay and Vasconcelos (2010), among others, this paper presents GV, a linear functional language with session types, and presents a translation from GV into CP. The translation formalises for the first time a connection between a standard presentation of session types and linear logic, and shows how a modification to the standard presentation yield a language free from deadlock, where deadlock freedom follows from the correspondence to linear logic
10.3.12
Act now, or the NHS will be gone forever
Selected tweets from Ben Goldacre (of Bad Science fame):
that's from today's BMJ http://bit.ly/y0f4nM To be clear: the LibDems are voting for a bill to reduce NHS care and charge for services.
Today's #NHSbill technical must-read: it provides a legal basis to reduce care + charge for services bit.ly/y0f4nM
36 LibDem MPs on twitter who can vote against the disastrous #NHSbill. Here are their names. http://bit.ly/AlTfqx pls RT
It's quite clever. They're changing the law to make very bad things possible, but not planning to use it *yet* #NHSbill http://bit.ly/wT0Jdi
i feel a bit like, if you're not going to bother to help yourselves, nobody else should be arsed. seriously: what are you thinking?
The fact that every LibDem MP doesn't have 1,000 people turning up to their surgeries, camping and pooing on their lawn, is a shame to u all
The dismantling of the NHS, in front of your faces, is going to change your world in 10, 20 years. you've done nothing. bit.ly/wT0Jdi
i just feel like the #NHSbill is a real turning point in my disillusionment at the nation, rather than our politicians.
i'm writing all your names down, and the ones who do nothing about the #NHSbill today are banned from whining in 2028.
7.3.12
CS2013 draft is out! Now it's your turn to comment.
Dan Grossman writes,
I just posted at http://wp.acm.org/sigplaneducationboard/ information on the ACM/IEEE-CS CS2013 Computer Science Curricula Report, the document that includes the Programming Languages Knowledge Area written by the SIGPLAN Education Board. From now until July 15, anyone can comment on any part of the report using an online system linked from http://cs2013.org. Active and hopefully positive participation from the SIGPLAN community would be most welcome, both constructive suggestions and comments on what is new that you like.Comments from the programming language community have been important in the past, so do take a look and leave your mark.
Subscribe to:
Posts (Atom)





