The PL Enthusiast Turns One!

Our first post to this blog appeared on June 2, 2014, so that makes today our one year anniversary!

Birthday candles

It’s the PL Enthusiast’s 1-year birthday

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.

Continue reading

3 Comments

Filed under Uncategorized

What is PL research and how is it useful?

If you are in the world of programming languages research, the announcement that UW had hired Ras Bodik away from Berkeley was big news. Quoting UW’s announcement:

Ras’s arrival creates a truly world-class programming languages group in UW CSE that crosses into systems, databases, security, architecture, and other areas. Ras joins recent hires Emina Torlak, 1 Alvin Cheung, Xi Wang, and Zach Tatlock, and senior faculty members Dan Grossman and Mike Ernst.

And there’s also Luis Ceze, a regular publisher at PLDI, who ought to be considered as part of this group. With him, UW CSE has 8 out of 54 faculty with strong ties to PL. Hiring five PL-oriented faculty in three years, thus making PL a significant fraction of the faculty’s expertise, is (highly) atypical. What motivated UW CSE in its decision-making? I don’t know for sure, but I suspect they see that PL-oriented researchers are making huge inroads on important problems, bringing a useful perspective to unlock new results.

In this post, I argue why studying PL (for your PhD, Masters, or just for fun) can be interesting and rewarding, both because of what you will learn, and because of the increasing opportunities that are available, e.g., in terms of impactful research topics and funding for them.

Continue reading

Notes:

  1. We previously interviewed Emina on this blog.

5 Comments

Filed under Research

Ranking CS Departments by Publication Productivity, Interactively

Anyone familiar with American academia will tell you that the US News rankings of academic programs play an outsized role in this world. Among other things, US News ranks graduate programs of computer science, by their strength in the field at large as well as certain specialties. One of these specialties is Programming Languages, the focus of this blog.

The US News rankings are based solely on surveys. Department heads and directors of graduate studies at a couple of hundred universities are asked to assign numerical scores to graduate programs. Departments are ranked by the average score that they receive.

It’s easy to see that much can go wrong with such a methodology. A reputation-based ranking system is an election, and elections are meaningful only when their voters are well-informed. The worry here is that respondents are not necessarily qualified to rank programs in research areas that are not their own. Also, it is plausible that respondents would give higher scores to departments that have high overall prestige or that they are personally familiar with.

In this post, I propose using publication metrics as an input to a well-informed ranking process. Rather than propose a one-size-fits-all ranking, I provide a web application to allow users to compute their own rankings. This approach has limitations, which I discuss in detail, but I believe it’s a reasonable start to a better system.

Continue reading

10 Comments

Filed under Process, Rankings, Research, Science

Dynamic Software Updating: Linux 4.0 and Beyond

Last month,  of ZDNet alerted us that Linux 4.0 will provide support for “no-reboot patching.” The gist: When a security patch or other critical OS update comes out, you can apply it without rebooting.

While rebootless patching is convenient for everyone, it’s a game changer for some applications. For example, web and cloud hosting services normally require customers to experience some downtime while the OS infrastructure is upgraded; with rebootless patching, upgrades happen seamlessly. Or, imagine upgrades to systems hosting in-memory databases: Right now, you have to checkpoint the DB to stable storage, stop the system, upgrade it, restart it, read the data from stable storage, and restart service. Just the checkpointing and re-reading from disk could take tens of minutes. With rebootless patching, this disruption is avoided; cf. Facebook’s usage of a modified memcached that supports preserving state across updates.

I’m particularly excited by this announcement because I’ve been working on the general problem of updating running software, which I call dynamic software updating (DSU), for nearly 15 years. In this post, co-authored with my PhD student Luís Pina, I take a closer look at the challenge that DSU presents, showing that what Linux will support is still quite far from what we might hope for, but that ideas from the research community promise to get us closer to the ideal, both for operating systems and hopefully for many other applications as well.

Continue reading

6 Comments

Filed under Research, Systems

Interview with Go’s Russ Cox and Sameer Ajmani

In this post I interview Russ Cox and Sameer Ajmani, who work at Google on the Go programming language. They share with me their path to working on the language, what they find unique and valuable about it, and plans for it going ahead.

This continues our series on PhDs in industry working on programming languages (Avik Chaudhuri was the first). Thanks to Russ and Sameer for taking the time to share their experiences!

Continue reading

14 Comments

Filed under Interviews, PL in practice

Teaching and Researching Programming Languages at a Liberal Arts College

During my tenure as a student and professor, I have been to many talks offering career advice to graduate students. Most of these talks focus on careers in research universities and industrial research labs, and leave out discussion of institutions, such as liberal arts colleges, that are primarily concerned with undergraduate education. This is unfortunate because many liberal arts colleges are highly selective institutions that offer exciting careers that mix research and teaching, albeit in a different way than careers in research universities.

One way to reduce the information deficit about liberal arts colleges is to report on the experiences of those who work at one. This is what we do in the present post. Specifically, I interview Steve Freund, who is a professor of computer science at Williams College, ranked by US News as the top liberal arts college in America. Steve is a highly successful PL researcher, known for his significant contributions to the analysis of concurrent programs. As a result, he is in a great position to give PL Enthusiast readers a view into what it’s like to be a teacher and researcher at a liberal arts institution. Continue reading

1 Comment

Filed under Education, Interviews, Research

What is noninterference, and how do we enforce it?

In this post I discuss a program security property called noninterference. I motivate why you might like it if your program satisfied noninterference, and show that the property is fundamental to many areas beyond just security. I also explore some programming languages and tools that might help you enforce noninterference, noting that while tainting analysis won’t get you the whole way there, research tools that attempt to do better have their own problems. I conclude with some suggestions for future research, in particular with the idea that testing noninterference may be a practical approach.

Continue reading

6 Comments

Filed under Program Analysis, Software Security, Types

Alan Turing: Pioneer of the Information Age

The Imitation Game, the biopic about the life of Alan Turing, just won the Oscar for best adapted screenplay. While I enjoyed the film, and I’d recommend it, I agree with NPR’s Linda Holmes’ wry assessment that The Imitation Game was ‘a film that was “adapted” from a book about Alan Turing, and quite liberally adapted from reality.’

While the story of the film is a moving one (you could not help but be moved by screenwriter Graham Moore’s acceptance speech), I am saddened that so much good material was left on the table. If this was our big chance to share Turing’s amazing accomplishments with the world, a lot more could have been said, and some things could have been said better. Christian Caryl, writes that the film was A Poor Imitation of Alan Turing, while Alex von Tunzelmann goes so far as to suggest slander. A visually presented fact-checking by the Washington Post’s Stephanie Merry similarly finds as much fiction as fact.

To remedy these problems, I recommend you not stop with the film, but use it as a springboard to Prof. Jack Copeland‘s book, Turing: Pioneer of the Information Age.

Continue reading

1 Comment

Filed under Book Reviews, Scientists

Interview with Avik Chaudhuri

This is the first in a series of interviews we plan to do with programming languages researchers working in industry.

avik

In this post, I interview Facebook’s Avik Chaudhuri, who has worked on language implementations at Facebook and Adobe (and is an alumnus of our group here at PLUM). Thanks, Avik, for taking the time to do this!

The interview is broken into three parts: Background; Facebook’s new language, Flow; and reflections on the value of a PhD and the challenges of research in industry. Continue reading

3 Comments

Filed under Interviews, PL in practice, Scientists, Types

SNAPL: A new kind of PL conference

The Summit on Advances in Programming Languages (SNAPL) is a new kind of PL conference, focused on big-picture questions rather than concrete technical results. The conference will be held for the first time in Asilomar, CA, from May 3 to 6, 2015.

The submission deadline is January 9, 2015 — if you have a long-term vision about where the field of PL should go, you ought to submit a paper.

Here we post an interview with Shriram Krishnamurthi, who is a professor at Brown University and one of the organizers of the conference. 1

Continue reading

Notes:

  1. My co-blogger, Mike Hicks, is on the SNAPL program committee.

Leave a Comment

Filed under Process, Research, Science