Research Moodboard

research moodboard

Nov 3, 2023

I often find it hard to articulate directly what research appeals to me in computer science. Perhaps it is better to simply *gesture wildly* to some things that I like and allow you to infer from that.

If I was under pressure to give it a name, I'd probably pick "end-user programming" but I'd like to be both more broad (in what I include) and more specific (in what I describe as my angles of interest) than that.

Some people whose work I'm interested in

This is not an exhaustive list. I am picking out people who are somewhere on the PL-HCI spectrum. Some in industry, some in academia, some deceased. Also: this is people of interest—I am not necessarily familiar with all of their work, but something about at least one of their projects appealed to me.

The idea is to illuminate this fascinating area at the intersection of PL and HCI that challenges our existing notions of the form and limitations of programming. I'm certain that there is a lot of related work that is less known to me because it is billed as something other than PL or HCI or because it is part of a proprietary project in industry. For example, there is tons of great end-user programming work that is described as data science and visualization; Jeffrey Heer from above is an example of that.

I tend to be more interested in projects that self-consciously try to promote the notion of personal software and computation as expression over the application of computing to data science. Not that I have anything in particular against data science, but it seems that the former topics are relatively underexplored because there is less of a financial incentive to study them. Also, computer scientists may be less aware of how people might use computing in domains that aren't just another field of computer science (as is the case when PL researchers design languages for data scientists).

Some projects that I'm interested in

Some concepts that I'm interested in

  • End-user programming
  • Program synthesis - especially API discovery and e-graphs
  • Wikis
  • Structured editing
  • Domain-specific languages
  • Interoperability via "gluing" with scripting languages like Bash
  • Local-first
  • Collaborative software
  • CRDTs - reduce the barrier to building collaborative software
  • Computational notebooks
  • Rich type systems, e.g. typed holes, dependent types, session types
  • Digital humanities - effective EUP will change this field entirely
  • Personal software

I also have research interests/curiosities beyond this, but that somehow do not fit into the cluster of topics I am outlining. For example, I'm really into type theory, formal verification (Hoare logic, model checking), and I am becoming concurrency-curious.

Further reading

See little research proposal for some thoughts on my particular vision of how this fits together for me.