Why you should come to UC Santa Cruz to do LSD research
It’s Ph.D. application season! A few months back, Paulette Koronkevich wrote a guide to applying to programming languages grad school that included the sentence, “PL labs usually have a nice website which lists everyone who is participating in PL-related research, which is very helpful.” We don’t yet have such a website here at UCSC, despite a growing group of faculty and students who are participating in PL-related research – so here’s a blog post as a stop-gap measure.
Owen Arden, Cormac Flanagan, and I, along with two incoming faculty members Tyler Sorensen and Daniel Fremont, are all research-active PL-or-PL-adjacent folk here at UC Santa Cruz. Except for Cormac, who is a longtime fixture of the PL community, all of us are junior faculty – there’s been a PL-and-PL-adjacent hiring streak here in the last few years. Some of us came in as what I call “stealth PL”: I was hired for a distributed systems position, for example, and I think Owen was hired for a security position (but if you talk to him for a few minutes, or glance at his bookshelf, you will perceive his PL nature). Tyler is interested in all aspects of concurrency, which includes lots of PL work but goes up and down the stack, and Daniel is a formal methods person with some recent PL work.
Along with two of our systems-flavored-but-PL-friendly junior faculty colleagues, Faisal Nawab and Peter Alvaro, Owen and I have taken to calling ourselves the Languages, Systems, and Data Lab. The LSD Lab1 is a loosely organized federation of students and faculty who are interested in doing research somewhere in the intersection of programming languages (semantics, design, implementation), systems (especially decentralized and distributed systems), and data management (databases, storage systems). I say “intersection”, but it’s really more like “union” – not all LSD Lab members are necessarily interested in all of those topics, and that’s okay. Nevertheless, I think we gain a great deal from having data folks, systems folks, and PL folks right next to each other, all intermingling and learning together.
Personally, I came from PL, and PL will probably always be “home” for me. But I was halfway through grad school when I got into distributed systems and realized that “just because something looks like a language problem to me doesn’t mean it’s okay to succumb to PL myopia!” I’m convinced that PL myopia is hurting the PL community. For instance, those suffering from advanced PL myopia might not ever give themselves the opportunity to, say, become familiar with Owen’s work on language-based approaches to building secure decentralized applications, because all of it’s been published in security venues. (This is one reason why, as Paulette points out, CSRankings shouldn’t be your sole source of information when scoping out potential advisors.) And it’s not an accident that the reading list for my solver-aided systems course this fall was drawn from a wide variety of venues, including verification, testing, security, operating systems, and several distinct flavors of PL. My hope is that in the LSD Lab, we will cultivate a myopia-resistant culture.
If you’re shopping for Ph.D. programs and all this sounds good to you, then I encourage you to take a look at the publications of all the above-linked people, and if you see that we’re working on the kinds of problems that you want to work on and using the kinds of problem-solving approaches that you want to use, consider applying to UCSC, even though we don’t have a shiny lab website yet. I’m also happy to talk to prospective students by email or on Twitter!
My original suggestion was “Data, Systems, and Languages (DSL) Lab”; swapping the order so that “LSD” would be the acronym was, unsurprisingly, Peter’s idea. I was only too happy to have “Languages” come first! ↩