Following up on my previous post about the recent Dagstuhl meeting on programming language design, I had a look at the slides. There is some awesome stuff here: analyzing data about programmers, perspectives on teaching that might inform language design, eye tracking applied to program comprehension, and lots more. I fear, however, that none of it will matter much because of what wasn’t there. We’ve known for decades–literally decades–how to build better programming languages than those in widespread use. What we need now is to get academic institutions and other social organizations to change.
The good news is, people outside computer science have spent their lives studying that problem, so we don’t have to start from scratch. If I could get everyone who was at that recent Dagstuhl meeting to read one thing, it would be Michael Jacoby Brown’s Building Powerful Community Organizations: we learned a ton going through the book in an online reading group last winter, and I think that programming language designers would get more out of it than they would out of a year’s worth of navel-gazing on Lambda the Ultimate.
Closer to home, I’m fascinated by the research that Charles Henderson has been doing on getting institutions to change STEM teaching practices. I have Figure 1 of “Facilitating change in undergraduate STEM instructional practices: An analytic review of the literature” up on my wall, and if I had thought this strategically in 2010 when I re-started Software Carpentry, we would have had a lot more impact.