As Microsoft’s chief research and strategy officer, Craig Mundie will play an important role in shaping the future of personal computing. Since Bill Gates’s retirement in July, Mundie and chief software architect Ray Ozzie have jointly led the company’s technical direction.
Today at Technology Review’s EmTech Conference, Mundie will deliver the keynote speech on the ways in which new approaches to hardware and software will transform people’s lives. Technology Review’s assistant editor, Erica Naone, caught up with him before his talk to discuss the role he sees for cloud computing–the trend shifting computer processing and storage away from desktop computers and onto distributed computers across the Internet.
Technology Review: People often talk about software moving from the desktop–programs running on a personal computer–to the Internet–programs running through a Web browser. Do you see this as the next big thing?
Craig Mundie: My view is that the next big platform shift will actually be the composite platform, where we glue the Internet platform to the evolved client platform [clients include desktop computers, laptops, mobile phones, and other devices], creating a uniform programming architecture across those things.
TR: What kinds of programming techniques would be needed to support so many devices and processors running in parallel?
CM: Many of the basic tenets of how people write programs and have written them for decades no longer turn out to work very well. Traditional procedural programming languages tend to mask or in fact squeeze out the inherent parallelism in many problems just as a byproduct of the structure of the languages. How you get programs to be correct at larger and larger scales across this distributed concurrent environment is another problem. We need better tools for debugging and ultimately even program proof [automated tools to verify that a program’s algorithms function as intended] that will allow us to put these new applications together. And then, at the end of the day, we actually have to have new applications.
TR: What would these new applications be like?
CM: There will be a class of experiences that naturally incorporate all of the intelligent clients in your life. Today, you can buy a cell phone and a car and a TV and a game console and a laptop and a desktop, but it’s sort of left as an exercise for the consumer to figure out how to make the same stuff appear on all of them. Today it’s just way too hard. What you really want to do is think of this collection of clients that work in concert with a collection of Web-based services. But, when taken together, they give you a much better experience in that regard. If it’s your music, for example, you can say, “Look, I just expect to be able to listen to my music no matter what device I happen to pick up.”
TR: This sounds similar to the Microsoft project Live Mesh.
CM: That’s a perfect example. Ray Ozzie’s been doing that work for several years to build, essentially, a cloud platform that is complementary to the evolving client or multiclient platform. It would provide common data services and orchestration processes that you could subscribe to from each of the related clients. That is indeed one of the early visible parts of this composite platform that we are trying to bring forward.
TR: People also talk about cloud computing as “software as a service,” with the idea that the software all comes to the user from the cloud. But that doesn’t seem to be the view you’re taking.
CM: People who started out and said, “Hey, all software should just become a service,” started out with the misconception that the computing model that we know is mature and won’t evolve anymore. Therefore, if communications capability and cost continue to improve, then maybe I should just put all the computing back in the middle and leave some modicum of intelligence at the edge in order to facilitate the presentation.
TR: You use the term “software plus services.” What do you mean by that?
CM: There are things that are valuable when centralized in a cloud and presented as a service. But if you look at the most sophisticated applications today–even the ones that are web-oriented–they increasingly depend on more and more sophisticated client components. I think the reason is that bandwidth is not infinite, and certainly not always available, and certainly not cheap. While that may improve, there is also the physical problem of latency.
What you start to see is a new application class. I contend it makes no sense to try to push [lots of data and processing] up the wire [to the cloud, just] so that it can come back and talk to you. And so, ultimately, that leads us back to what I call this composite platform, where you’ve got a balanced set of roles between what you expect the cloud to provide and what you expect the clients to provide themselves.