Our first post to this blog appeared on June 2, 2014, so that makes today our one year anniversary!
In celebration of the occasion, this post takes a look back over the last year as well as a brief look to what’s ahead.
We’d love your feedback about what you’ve seen so far, and what you’d like to see (or contribute!) next.
Snapshot, by the numbers
Our posts over the last year have comprised a variety of topics, covering PL people, research, process, and practice. In particular, we’ve written 41 posts in total, comprising the following topics:
- PL topic overviews (the “What is … ?” series) (5)
- PL research and its connections other areas (8)
- PL in practice (3)
- PL in education (7)
- Process of science, and research analytics (7)
- Interviews with young scientists, professors, and practitioners (8)
- Remembrances, other (3)
As of June 1, 2015, these posts have been viewed 164,512 times, according to Google Analytics. Our most popular posts were the following:
- What is probabilistic programming? (26,354 pageviews)
- What is type safety? (26,319)
- What is memory safety? (21,201)
- Interview with Go’s Russ Cox and Sameer Ajmani (12,262)
- Who teaches functional programming? (12,218)
- Dynamic Software Updating: Linux 4.0 and Beyond (6,068)
- What is PL research and how is it useful? (5,496)
- Why are some languages adopted and others aren’t? (3,924)
- Bridging Algorithms and Programming Languages (3,091)
- What is noninterference, and how do we enforce it? (2,571)
All five of the general-overview posts (1,2,3,6,10) make the top ten, which is reassuring since they were directed at a broader audience. Two posts looking at PL research and its connections to other areas (7,9), one looking at PL in education (5), and one looking at PL in practice (8) also make the top 10. My interview with Russ Cox and Sameer Ajmani (4) rounds out the list.
Here I have compiled a summary of the topic areas listed above. Think of it as an elaborated table of contents for the last year. Afterward I elaborate on plans for next year, and call for your contributions.
PL Topic overviews (the “What is .. ?” series)
Several posts begin with the phrase “What is … ?” This series started while I was working on my Coursera course on software security, trying to explain memory safety. When I determined there wasn’t a clear answer, Swarat encouraged me to turn my exploration to find one into a blog post. The post on memory safety was followed up by posts on type safety, probabilistic programming, noninterference, and dynamic software updating.
PL research and its connections to other areas
A goal of this blog is to highlight the connections between PL research and other areas, while also discussing core theoretical and practical developments. Several times we have looked at connections between PL and Cryptography, first looking at securing computation, and then looking at PL-Crypto synergies more generally, particularly in the ways the two communities perform formal reasoning. We have also looked at bridging PL and algorithms research. My most recent post has looked at PL research generally, showing how it is impacting many areas of computer science.
Views from the field: PL in practice and in education
We have looked in several ways at how programming languages, and ideas underlying their design and use, are penetrating industry and education.
We looked at research on programming language adoption and the IEEE’s top language list. We have also looked closely at the Heartbleed SSL bug and how PL techniques might have been brought to bear to prevent it.
On the education side, Swarat surveyed whether universities teach functional programming; FP has historically been a font of ideas that have penetrated the mainstream. Swarat also detailed his experience (in two parts) introducing ideas about formal verification into the undergraduate curriculum, while taking a broader, two part look at PL research’s impact in K-16 education.
As an activity at the intersection of education and practice, I introduced the Build-it, Break-it, Fix-it programming contest, meant to study at “what works” for creating high-quality software while providing a stimulating educational experience. Our first contest had some interesting outcomes, and the next iteration is currently underway. There will be more to say about the results of this contest, in future posts.
Process of scientific research
Readers of the PL Enthusiast include scientists, and those interested in the process of science, especially as applied to work on programming languages. As such, we wrote posts about the process of peer review, and provided advice on writing peer reviews and author response (a relatively recent mechanism in CS peer review processes). We also previewed SNAPL, a new kind of PL research conference (we hope to write a SNAPL retrospective soon).
Swarat also had a series of posts with an analytics-based view of the PL, and CS, research communities. Most recently, he developed an app for ranking CS research productivity. Previously, he looked at author-based collaboration graphs for PLDI and OOPSLA, and for POPL.
PL researchers are having an impact in many ways. We decided to interview some of them to find out what they are up to.
Our first set of interviews were with recent PhDs having just started their first academic job. We asked them about their work, their job search, their plans, and for advice to those in a similar position. Our subjects were Emina Torlak, Aws Albagouthi, Ravi Chugh, Cindy Rubio-Gonzalez, and Bill Harris. We expect to carry on the series with this year’s new professors.
We also interviewed Steve Freund about life as a professor at Williams, which is different than a traditional research university in that it’s focused on undergraduate education while still encouraging groundbreaking research.
Remembrances and Reviews
Over the past year, two pillars of the field, Susan Horwitz and Radhia Cousot, passed away, and so we posted remembrances of them and their work. Swarat wrote Radia’s remembrance, and guest Tom Ball wrote about Susan Horwitz. We also wrote a book review, on Copeland’s biography, Turing: Pioneer of the Information Age, on account of the popular Alan Turing bio-pic, The Imitation Game.
Call for contributions
Our plan is to continue to write posts on our own but we’d like your help. Are you interested in a topic that we haven’t covered yet? For example, do you have ideas for posts on the following:
- Overview topics (e.g., another installment of the “What is …?” series)
- Emerging or interesting research topics or connections
- Impacts and developments of PL in (CS, and other) education, and industry
- “Meta” topics on research and the process of research
- People (or kinds of people) to interview
- Books to review
- Other kinds of posts we have so far neglected (e.g., trip reports)
If you do, please send them our way! Probably 1/4 of the posts that have appeared this year have been developed based on from suggestions from readers.
Also, if you might be interested in authoring a post, or you would like to suggest someone that we invite to do so, please send us an e-mail. While Swarat and I plan to remain as co-editors of the blog, we are interested in expanding the list of contributors. Outside contributions, especially from Tom Ball (on Susan Horwitz) and our interviewees, have been excellent, and we’d like even more.
We’re looking forward to another great year!