h1

Microsoft Technology Summit 2008 – Day 1

April 8, 2008

This is the first of multiple posts on the Microsoft Technology Summit which I recently attended on Microsoft’s Redmond campus. This post is a summary of the Day 1 sessions. MTS is a conference of technologists and bloggers invited by Microsoft to hear updates about various Microsoft products and initiatives and to provide feedback. Most of the attendees are experts in technologies and communities that aren’t closely, if at all, associated with Microsoft. Full disclosure: Microsoft paid for my travel, lodging and food during the summit.

Microsoft’s Open Source Strategy
Sam Ramji, Director of Platform Strategy for Microsoft, gave the opening keynote on the role of open source software at Microsoft. It was really more of an opening discussion as he invited and received a lot of interaction from the audience. Ramji stressed that the only way to address differing opinions is to acknowledge them and have a conversation about them. To illustrate the point, he was wearing a Firefox t-shirt, which he said instigated a lot of conversations on the Microsoft campus. The purpose of MTS, then, was to invite Microsoft’s critics and encourage a conversation.

Ramji tried to take the group by surprise by putting up that day’s announcement that Microsoft would be collaborating with the Apache POI project to add support for the Office Open XML format. This was greeted with both positive and cynical reactions, no doubt influenced by the long saga of Microsoft’s attempts(apparently now successful) to get ISO standardization of the OOXML format. The discussion of this announcement didn’t last long, but it really encapsulated a lot of the themes of the greater Microsoft/Open Source discussion. Yes, Microsoft dedicates significant resources to working with open source communities. But they seem to be focused mostly in assisting communities that are supporting interop with MS technology, rather than opening up any core technology or collaborating with the community to create something new. Microsoft’s SAMBA involvement is one example of this trend, and POI is now another.

Ramji summarized the huge growth in open source communities over the past decade and stated that Microsoft has begun to recognize over that period that the growth of both OSS and Microsoft requires that the company start to open up more. As a result, Microsoft’s OSS participation has been transitioning from experimentation, through learning, towards architecting OSS communities. He gave a laundry list of contributions and milestones:

  • working with SAMBA team to support interop
  • hired inventor of Haskell
  • received OSI approval for two OS licenses
  • released Windows Media Player plugin for Firefox
  • made contributions back to the Xen project to improve ability to run Windows
  • contributed to JBoss for optimization and tuning when running on Windows
  • rewrote OEM SQL Server JDBC driver internally to improve stability and performance

Ramji drew an analogy between Microsoft’s relationships to the Internet and Open Source. There was a time when people said that Microsoft had missed the Internet boat and could not recover. Few would say that now regarding Microsoft and the Internet. Ramji says it will be the same with story with Open Source and that Microsoft will be one of the most prolific OSS companies by 2009.

Ramji was an articulate speaker and a class act, despite constant attack from a few squeaky wheels in the group who took every possible opportunity to rip on Microsoft. This discussion was obviously very interesting to the group and probably could have gone on much longer if time had permitted.

Microsoft Research
Next up was Kevin Schofield, General Manager of Microsoft Research who gave an overview of Microsoft’s research group. The research group is apparently entirely independent of the product groups. They try to hire smartest researchers they can find, then don’t tell them what to do. The group’s mission is to:

  • advance the state of the art in chosen areas of computer science and publish the results in research papers
  • transfer the resulting technology to business groups
  • ensure MS has a future

Schofield had a a lot of demos lined up, but he got bogged down responding to repeated suggestions (insistence perhaps) that Microsoft should open up any research, including source code, that was just going to sit on the shelf because it wasn’t ready for productization. Some work is apparently available for download, but the commenters pushed the point that Microsoft is missing an opportunity to work with the community.

Schofield did finally get to some rushed demos:

Worldwide Telescope

  • access to “treasure trove” of astronomy data
  • has earth view too
  • seems a lot like Google Earth/Sky

AniTime(sp?)

  • experiment in best ways to visualize how data sets change over time
  • one method used animation to show trends
  • another used tracks

FacetLens

  • visual representation of data set organized by metadata
  • different filters for different metadata
  • using animation to transition between data views to keep users from getting lost quickly

I feel like we probably missed some other cool demos because Kevin spent a lot of time early on
responding to various vague questions about how MS research compares to other research organizations.

ASP.NET MVC Framework
Scott Guthrie, Corporate VP of .NET Development gave a coding demonstration for the new ASP.NET MVC Framework. This was an impressively low-level presentation from someone at such a high-level management position. That being said, there wasn’t much notable about this session other than some technical details about the framework.

ASP.NET MVC is a new option for ASP.NET that seems to have taken a lot of inspiration from Rails in terms of convention over configuration, although the syntax is more verbose than Ruby allows. MVC can be used for free with the Express editions of MS tools. The demo was in C#, but it works with all other CLR languages such as ruby, python, and javascript. ASP.NET MVC also works on Mono. The ORM component of MVC is LINQ to SQL. The controllers support any view technology including HTML, JSON, Silverlight, etc.

Scott was asked if the CLR will be open sourced? He stated that the CLR interface has been standardized by ISO and ECMA which allows other communities to build open source implementations.

Silverlight
Brad Adams, Principle Group Program Manager of the .NET Platform gave a product review of Silverlight. He described the product as a partial .NET implementation as browser plugin. Microsoft has built implementations in IE, Firefox and safari on Windows and Mac OS X(Intel only). They will provide the IP necessary to implement plugins on other platforms, but they aren’t doing those implementations themselves. Miguel di Icaza of Novell and Mono fame is working on a Linux implementation called Moonlight. Silverlight is also available on Windows Mobile, Nokia, and other mobile platforms will follow, according to Adams.

Silverlight supports HD resolution (720p) video and DVD-like interactive menu capabilities. There is currently no H.264 support, but they are supposedly working on it.

Media is distributed via streaming and can be either live or on-demand. Microsoft will provide free content hosting via Akamai at silverlight.live.com, presumably to get wider adoption.

Adams demoed two sites using Silverlight: The Home Shopping Network and memorabilia.hardrock.com. Both are impressive multi-media experiences.

Adams concluded by answering his own rhetorical question: Why use .NET in the browser? His answer included the following points:

  • multi-language support: c#, vb.net
  • high performance
  • rich UI controls and graphics
  • HTML/DOM integration
  • networking(REST, JSON, WS*)
  • flexible data support with LINQ

The Windows Live Platform
John Richards, Director Windows Live Platform, and Angus Norton, Sr. Director Search, attempted to give a presentation on Windows Live. From the beginning, however, they said they were very open to feedback from the attendees, and boy did they get it.

To start out with, they introduced Windows live as consisting of the following components:

  • LiveID – an identity service, not Passport
  • Silverlight streaming – an infrastructure service
  • Live Spaces and Live Contacts – personal data services
  • IM & presence, Alerts – notifications and messaging services
  • Search, Virtual Earth

The asked how many people had visited dev.live.com, the developer portal for Windows Live. If anyone raised their hand, I missed it. There was audible disbelief even in this group that not a single person cared about it, and blunt suggestions that this was a huge marketing failure if developers had no interest in even checking out how they could provided services for one of the largest users bases (Hotmail) on the internet.

Richards and Norton then demoed www.quicksilver-europe.com, a surfing site that makes heavy use of Silverlight to distribute video of surfing competitions. They were trying to show off a feature integrated into the site that apparently allowed someone watching a video on the site to share the video with a friend who is currently logged into their live.com account so that the two friends could watch the video together and chat about it. There was a collective “huh?” as everyone tried to figure to understand why anyone would ever do this.

At this point the session completely evolved from a presentation to a group discussion that sometimes left Richards and Norton just standing at the front of the room listening. The group questioned the live.com interaction model, and pushed them to use established social networks such as Facebook and open social rather than trying to invent something from scratch. Some commenters felt very strongly that Microsoft was failing to leverage their large user bases on Hotmail and other services and that they should be building a gadget API that could run on other platforms.

LINQ
Anders Hejlsberg, Microsoft Technical Fellow, next gave a product review of LINQ (.NET Language Integrated Query). He opened with the premise that objects are not equivalent to data and that while we use an imperative style of interaction with objetcs, we need a declarative style with data. LINQ provides a declarative syntax for working with data within .NET code.

LINQ can be used to work with several different data representations, including objects, data sets, SQL, entities and XML. Anders did all of his examples in C#, but other .NET languages will have LINQ capabilities. His examples illustrated several new features in C# 3.0 including:

  • Automatic properties – shorthand to avoid coding getters and setters
  • Object and Collection Initializers – follow an instantiation of an object with a list of assignments to its properties
  • LINQ queries
  • Extension methods – static methods that get imported, importing objects seem to have those methods defined
  • Anonymous Types

This session was a bit surreal because Anders was essentially giving a tutorial to a bunch of people who probably had no intention of ever using the technology. He is clearly a brilliant guy and a very good public speaker/presenter. He obviously loves technology and happily answered any questions people had even though they were incredibly basic for his level of expertise. It was like getting your first piano lesson from Beethoven. And I felt a bit guilty that we were wasting his time because we wouldn’t be sitting back down at the piano again.

That being said, although there are probably hundreds of people at Microsoft who could have demoed LINQ, Anders provided a lot of insight into and crystal clear explanation of the implementation that few others probably could have. I was interested to learn that the C# compiler doesn’t really know anything about LINQ queries. Instead, it rewrites the LINQ syntax as method calls to extension methods such as Where() and Select() that take lambdas as parameters. The query itself doesn’t actually run until some piece of code iterates through the result of the LINQ expression.

C# 3.0 also supports expression trees. Code can extract an expression tree from a function, have full access to the syntax tree, modify it, and compile it again. I claim to fully understand how it works, but I think it is the inclusion of expression tree support that allows LINQ expressions to seem to be a strongly typed part of the language, with full tool support and code completion.

Another interesting tidbit was the reason behind the seemingly backwards FROM…WHERE…SELECT syntax. Anders explained that it is necessary for tooling so that an entity defined in the FROM clause (say, Product p) can be used with intellisense in the SELECT clause (p.id, p.name, etc). If the SELECT clause came first in the expression, there couldn’t be any intellisense since a developer would be typing p.name before “p” had been defined.

In my mind, the language level support is what makes LINQ to SQL superior to competing Java technologies such as Hibernate/JPA annotations. It’s very cool to see strong typing in ORM type stuff like this. I wish Java had something analogous. But after hearing Ander’s explanation of how this works, I don’t have much hope that I’ll see it in Java anytime soon because of all the supporting language features such as expression trees that make it possible. It seems like C# is evolving much more quickly than Java can. Having a primary steward of a language (Anders) as opposed to a committee (the JCP) certainly seems to increase the pace of innovation.

Anders closed with a a few brief thoughts on the future of languages. He made the observation that most of the new C# features “are straight out of the functional programming playbook”. He thought that this direction would continue with C# and other languages adding more of the powerful features seen in functional languages.

2 comments

  1. [...] Breen’s Blather Where I share what little I know « Microsoft Technology Summit 2008 – Day 1 Microsoft Technology Summit 2008 – Day 2 September 9, 2008 These dated notes went missing [...]


  2. [...] motivations for hosting it.  My summaries of the first two days of sessions can be found here and here.  MTS is a conference of technologists and bloggers invited by Microsoft to hear updates [...]



Leave a Comment