Searching for the fine line between generics and practicality
One of the very prominent examples of basic MSR research comes from its assistant director, Luca Cardelli. Dr. Cardelli sees the globe as a single computing environment, within which there are billions of mobile elements which play distinct roles. In the same way John Stewart Bell divided the physical universe into contexts of existence, Cardelli sees mobile computers as components with their own local contexts, but connected on another level with a larger universe of computation. To that end, he creates a concept called ambient calculus, within which mobile components tear off little sections of the universe all to themselves, which he calls mobile administrative domains. Any globally connected computing environment, Cardelli argues - if that's indeed what the Internet is evolving into - should take ambience into account, all those parameters and circumstances and conditions which can be presumed as global, before breaking down the computing world into domains.
What has been compelling about Cardelli's research is that his domains are not analogous to our concept of classes in object-oriented computing. Just as in Bell's universe, physical principles are dependent upon the place or context in which they reside, Cardelli's objects are all given local identity through their domains. But objects in his universe don't inherit by design; when an object or a concept transcends domains, there are entrance and exit principles that must come into play, taking account of what changes.
When we asked developers outside of the Research division a few years back, to evaluate whether Cardelli's research has any bearing on their work, the response we got was that Cardelli assumes that Microsoft Corp. was ready to upend everything it had accomplished thus far with the Component Object Model. Luca's a nice fellow, we were told, but COM is here to stay.
Since that time, the beginning of the upheaval of COM has already begun, with the move toward an XML-based platform where software components use SOAP to communicate with one another, and share XML-encoded data. On the surface, it would appear Microsoft may have missed an opportunity to make good use of the technology concepts it already invested in.
But as Kevin Schofield told us, Dr. Cardelli's team at MSR Cambridge did make use of the technology transfer program, just in ways that might not be very perceptible. For instance, Schofield said, the Cardelli concept of ambients was the inspiration for a project to add generics to C# and other Microsoft .NET languages. In developers' vernacular, generics are classes of objects whose parameters may differ at run time, though which can apply behaviors that apply generally to any and all types of parameters they may encounter. This way, you can type an object whose behavior may apply to a string of characters or a cluster of data from a database; rather than having one explicit behavior for the string and another for the cluster, a generic class can typify behavior that the runtime interpreter can extend to either parameter as the program is being executed. Cardelli and his partners introduced this concept in 1985, six years before MSR was founded; and Sun Microsystems has been just as interested in applying his principles to the Java Runtime as Microsoft has to .NET's Common Language Runtime (CLR).
"The CLR team at Visual Studio," said Schofield, "has been super-appreciative of all the work that Luca's team has been doing. Luca's team has also been helping them with security models around - not only the programming part of this, but also the network protocol part as well, as we define XML-based protocols for passing information back and forth, and make sure there aren't opportunities for security holes."
Many of the projects devised by its most brilliant researchers and engineers since 1991 would require developers and engineers to make massive infrastructural and mindset shifts in order for them to be implemented. Indeed, a few of MSR's most sweeping propositions presume a very different world where certain evolutionary events - including some which Microsoft itself precipitated, such as the continuation of Secure Sockets Layer - never occurred. After all, some researchers may assume, if anyone can make the world change, it's Microsoft.
The solution Schofield sees, and which he believes Live Labs can help bring about, involves building a kind of hybrid activity between basic research and engineering, which he calls applied research. Its basic tenet, he explained to us, is to be able to say, "You know what, you should take some risks, try some goofy things, but let's try it in the context of a particular product."
One working example of this, Schofield offered, may have a familiar ring to it by now. "Two years ago, [MSN] decided they were going to make a fundamental strategy change, and invest very deeply in running and owning our own Internet-scale search engine. Twelve months later, after great partnership with Microsoft Research, where we helped design and architect a server farm and a crawling farm, indexing algorithms, distributed architecture for this thing, they had one up and running, because we were ready, and because we've been working for eleven, twelve years at that point on search and indexing technologies."
So a prime example of how applied research could benefit Microsoft as a whole, now follows a familiar theme. "A great example I like to talk about it in the context of Live Labs is multimedia search," said Schofield, not unexpectedly. "We have lots of great technologies in Microsoft Research around speech recognition and vision technology." He explained an aspect of one project involving speech recognition in providing audio cues for a proposed multimedia search engine. The level of granularity required to implement speech recognition for that application, such as calling, "Start" and "Stop," he explained, might not necessarily need to go to the same lengths as for dictation in Microsoft Word or Excel. But just how exact should a search algorithm be? "If we were to launch an Internet-scale multimedia search engine," he asked hypothetically, "what's 'good enough?'"
The scaling down of parameters and granularities to make projects fit the mold of server-based software, as opposed to client-based software, is one more reason MSR makes such a good fit with Live Labs, Schofield explained. "If you look across the sets of products that Microsoft builds, they're on different schedules," he told us. "If you look at something like MSN, where it's mostly server-based code, the simple logistics of releasing [revisions] every six months, or every three months, or opportunistically, is much easier than with a client-based product. So it's easier to grease the skids, and say, 'We can do applied research and be nimble and quick, and if we can come up with something cool, it can ship six months from now.' It's really harder to do that with Office."
Office Live, which is partly server-based, may be easier to implement within Live Labs, Schofield added. But an applied research project with Office Live might not happen for another few years, and perhaps as long as four years. A lot depends, apparently, on how well Live Labs revolutionizes that other singular aspect of our work.
Maybe Microsoft Research's initiatives aren't timed in concert with product developments, and perhaps never should be. But without some sense of synchronization - for instance, without Dr. Cardelli's window opening up before .NET's window closes - it could never happen anyway. Which is why Ray Ozzie's and Gary Flake's creation of Live Labs could be the greatest thing ever to happen to Microsoft Research. It could, at the very least, enable MSR never to have to find itself again in the position of defending its mission, its effectiveness, and its contribution to the affairs of humankind, by pointing to a great spelling checker or speech synthesizer.
But before we get that far along, to the point where Live Labs encompasses all of Microsoft Research's vast domain, it must succeed at job one. "We hope [Live Labs] is something that will allow us to do more applied research, to be more nimble, more responsive," hoped MSR's Kevin Schofield, "and be able to take great cutting-edge technologies, and get them into our search products, and our other Live products, faster."