Beki Grinter

Thoughts on Systems Software Research is Dead

In computer science, discipline, empirical, research on October 20, 2009 at 7:31 am

I’ve just finished reading Rob Pike’s Systems Software Research is Dead talk that he gave in 2000 (right before I left Bell Labs). It’s a provocative piece, but I think that’s Rob Pike.

The piece made me think several different things.

First, he claims that the Systems research community has abandoned the development of operating systems and languages in favour of measuring things about existing systems. Measurement as a “misguided” focus on science, but then he adds:

“By contrast, a new language or OS can make the machine feel different, give excitement, novelty. But today that’s done by a cool Web site or a higher CPU clock rate or some cute little device that should be a computer but isn’t.

The art is gone.

But art is not science, and that’s part of the point. Systems research cannot be just science; there must be engineering, design, and art.”

I’ve been thinking a lot about what Computer Science is all about, what (who 😉 it should embrace recently. And I have to say this just sounds a lot more exciting to me, this statement draws me into an exploration of systems and machines as a holistic activity. Do we have to strip out the design, art, and engineering so that we can live up to the name Computer Science?

It also got me thinking about impact. There’s a lot of attention given to having research that has impact. Impact. One way, although probably not the only way to have impact is to have industrial/commercial impact. Having studied commercial software production processes, I’m somewhat cynical. I used to, especially when I was attempting to make change, think it was a miracle that any software ever got built let alone shipped and used. This type of impact, I firmly believe requires patience and intelligence and also a degree of luck. I suppose that’s true of many things, but impact and luck are an interesting pair.

Setting aside luck. One route to impact is to have success in American Industry. I’ve said before that I think this raises questions for some research areas, ones where there are interesting collisons between profits and innovation.

But, as I was reading Pike’s talk it also occurred to me that Computer Science has a peculiar relationship with industry. While we, as researchers, approach it as a way to have impact, it is this same industry that’s simultaneously closed off research opportunities.

He says “Even into the 1980s, much systems work revolved around new architectures (RISC, iAPX/432, Lisp Machines). No more. A major source of interesting problems and, perhaps, interesting solutions is gone.”

I’m trying to think of another discipline that has had commercial impact so central to its sense of self-value as Computer Science. And there was a time when commercial systems, in their biodiversity, gave rise to challenges. But, the Computer Industry seems to have shut down opportunities as it has focused on the creation of hardware and software standards that at least according to Pike may have ended the best of Systems Software Research. I can’t help thinking that the relationship of industry and academia in Computer Science is at best more complicated than I recall ever having had discussions about. FWIW, and since it’s my blog, I think that there are other problems with what I increasingly see as a play towards a notion of impact, success and business in general being equated to industry because the two organizational types are not the same.

And of course Pike agrees with me. He ends his talk with “The community must separate research from market capitalization.”

  1. […] the first week of November.  Perhaps we should do a joint blog post that day…)  Today, Beki is talking about Rob Pike and his concerns about “science” taking over what’s interesting about […]

  2. That’s one of many things I like so much about OLPC and Sugar Labs: they are using new approaches towards hardware and operating system. And I’m really curious about the impact of the broad computer literacy in these so-called development countries on the evolvement of computer science.

  3. Systems research is alive and well, as a science and an art. See what’s going on in the wireless sensor and mobile networks areas of academia, for one example. Real time, event-driven operating systems, mesh networking protocols with ad-hoc routing and outage tolerances, mems sensors, distributed and parallelized computing across low-cost, automated nodes…

    There is art and science in the design AND implementation of these protocols and the theoretical models they are built on, even at the low operational levels, as well as the analysis and proof of their correctness and performance, and so on. Not to mention the applications being built on top of these protocols and devices. Signal processing, statistical analysis, inferencing, etc. are being combined with deployments of distributed, wireless sensor nodes to create ubiquitous and aware computer systems and applications that depend on them.

    As far as impact, the reason impact is a big factor in comp sci research is because of the cost of it, and who does the funding; and I think this applies to many fields beyond just computer science. A lot of purely academic research DOES still go on, just like it does in other fields, but it is the things that have wide impact which get the most attention (naturally) , and it is the schools/departments/professors/researchers with the biggest records of impact that get the most funds. Funding is not the only motivation behind desire for impact. Many people simply want to enhance society, or enhance the work of others, or push things to the next level, or whatever. What I’m saying is most people are driven into research because they want to make a difference in some way.

    I think the main thing being overlooked in the post is the evolution of concerns. There’s no value in limiting ourselves to solving the same kinds of problems forever when new kinds of problems are surfacing as things progress. While researching and developing new, primitive abstracts, operational models or language fundamentals is certainly an art, a science and very much appreciable, it doesn’t mean solving new “higher level” problems is not. Take for instance things going on in cloud computing and virtualization, massive scale data management and analysis, distributed and parallelized processing, etc. These kinds of problems are no less artful or scientific than the primitives underneath them.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: