Pavel Panchekha

By

Share under CC-BY-SA.

Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author and do not necessarily reflect the views of the National Science Foundation.

A Survey of PL Blogging (Part 2)

About a year ago, I did a little survey of PL blogs from the first half of 2018: who blogs (199 people), how much (3.8 posts every half-year, on average), and what about (mostly technical, PL-related content). I even gave a breakdown of the 199 non-technical blog posts by topic. In that post I promised to do a closer look at the technical, PL-related blog posts, since they were by far the biggest category, and worth breaking down further. Well, here we are, a year later… Turns out reading a hundred blog posts did not make it to the top of my to-do list for a while!

I gathered up all 103 blog posts that I'd identified as technical last year, made a list, and started reading. Two of the 103 had gone offline in the mean time—so I ended up reading 101 blog posts. At first, I tried to read each post, but it turns out some of them are quite long—I had blog posts to write! So in the end I ended up skimming the posts.

I didn't want to categorize the posts right away, because I didn't know what categories would be useful, so what I ended up doing was writing brief one-sentence summaries of each post. Then, after I was done with the big read, I re-read all of the summaries, sketched out some categories, and started categorizing.

Roughly 25 posts were about published papers or the academic life:

Survey (4 posts)
A list of several papers or tools that do something similar, like A. Polozov's survey of program synthesis or F. Tomasetti's survey of code generation tools
Academia (8 posts)
On the academic life, including teaching and broad community trends. J. Regehr was the majority of this (small) category.
Papers (13 posts)
I put anything in this category that involved specific published papers, including paper announcements, longer explanations, and conference reports

Some posts could be categorized by where they were in a project life cycle:

Proposal (4 posts)
New work someone should do
WIP (17 posts)
Something about ongoing work, like on the Rust borrow checker or A. Donaldson's series on graphics driver bugs
Trip report (8 posts)
Subjective takeaways from a task like using AWS Lambda or teaching a software ethics course
Announcement (7 posts)
Usually these announce a paper or a software release

I know it looks like the “Work in Progress” category is the longest, but nine of those are from A. Donaldson's series on driver bugs.

The most technical posts were pretty hard to categorize, so I just went with the format used:

Explainer (20 posts)
An explanation of some PL concept, such as J. Bader's explanation of monads or P. Gazzillo's description of token pasting
Code (14 posts)
Posts that included and discussed code, whether in Coq or Haskell or C++
Tutorial (13 posts)
Describing how to accomplish some specific goal, like making an IDE plugin or doing black-box optimization

Note that these categories were not exclusive, and actually had quite a bit of overlap!

Other posts were pretty high-level:

Advocacy (6 posts)
People advocate for secure programming languages, against DSLs, and in favor of industry ties
Community commentary (3 posts)
Including a criticism of programming advice fads
Advice (9 posts)
These were generally high-level sort-of-technical posts, including the very short. Most of these were by T. Kaminsky, whose posts I enjoyed quite a bit

The posts linked above were generally my favorites. For the most technical posts, Haskell and Rust had the strongest showings, but there were all sorts of small an obscure languages showing up as well, like C++ and Racket. Also some posts ended up just being hard to categorize: F. Tomassetti's Interview with P. Molina or D. Ghica's post on evaluation order in math.

I think the diversity of posts, formats, and goals I saw really reminded me how vibrant a medium blogging is, and how many kinds of writing it is the only outlet for. Work in progress, for example, is often difficult to publish in a formal academic venue; or, where else would you publish programming advice. There aren't well-read magazines for programmers! Plus, blogging offers a casual voice and an expectations that readers don't have to read if they don't want—that makes it possible to go into a topic at depth or to describe your experiences without trying to prove a point or demonstrate novelty.