I spent some time out at MIX in early march getting up to speed with Microsoft’s latest product releases for rich Internet application (RIA) development. I thought I’d offer a few thoughts on Ray Ozzie’s keynote.
Like last year, Ray kicked off the conference by sharing Microsoft’s vision of SaaS – a slightly different version from the standard view. Given Microsoft’s investments in traditional platforms it makes sense that their vision of SaaS would be of "Software AND a service" as opposed to "software AS a service”. That said, Ray articulated three ideas that are driving Microsoft’s vision for development forward. I’ll recap as I interpreted them from my seat in the audience:
1. Think of the Web as a hub of social and technology experiences. Ray used the term "Device mesh". It captures the idea of multiple devices used by an individual, all connected to the Web, sharing information.
My Take: I’d like that, but I think we still have a long way to go to get there. I find it’s still a major pain doing something as basic as keeping my calendars in sync across my work laptop, home desktop, cell phone, XBOX 360, Wii, iPod etc. And for the near term, I’ve given up on my vision of a single Media PC at home driving a video on demand network. I’ve always liked building my own machines, and getting unencrypted HD from my cable provider on a home-built machine is just not happening.
That said, the announcement at Mix of Silverlight availability on Nokia’s S60, S40 and communicator platforms was a concrete example of how ".NET anywhere" could bridge the gaps between the islands of content and data that compartmentalize my digital life. Chris Brozenik and Tamir Melamed from WeatherBug demonstrated this to me with a prototype version of their weather services running on a Nokia N95 in Silverlight. The most impressive thing from my perspective is that they managed to get a mobile Silverlight app deployed even though they’ve only had access to the pre-beta tools and runtime for a few weeks.
What’s Your Take? Have your teams started creating a "device mesh" for your organization? What technologies are you using? Do you see different meshes for work and personal life or one integrated mesh per user? Is developing for mobile devices something that’s on your radar screen?
2. Support the power of choice in the enterprise when it comes to the cloud. Ray spent some time talking about how he believes that the emerging utility based computing model will reshape enterprise computing, but that the way developers build software will need to be significantly refactored in order to support this transition.
My Take: I’ve already seen what the cloud is doing on the start-up side, so count me in as a believer. I’ve talked to a number of startup firms that are using Amazon’s EC2 and S3 storage as the basis of their deployment model, and the thing that I find most interesting is that it allows them to significantly reduce their capital burn rate because they can scale on-demand whenever they sign a new deal instead of building out capacity in anticipation of ramping up their business. I don’t see any reason why workgroups at large business couldn’t adopt the same pay-as-you-go approach to running their IT organizations – in fact, it’s what some of the folks I talked to this past October at Dreamforce have already concluded.
What’s Your Take? What do you think about cloud computing? Is this the start of a seismic shift in the way we deploy systems or simply the latest fad? How do you think that virtualized deployment affects the balance between a centralized or decentralized development organization?
3. Developers need to focus in on building smaller pieces that are loosely joined. With the emergence of the cloud, application design patterns are transitioning from tightly bound components to loosely coupled systems. For this transition to be successful transparency and standards are key, for Microsoft this means that they will focus on XAML, REST, and RSS on the client side and on the server side that they will invest in standards that help to virtualize the cloud.
My Take: If you project out a few years, we’re going to see multicore boxes everywhere including the cloud, the desktop and quite possibly the mobile device. Coupled with better mobile bandwidth and data availability developers will need to think about creating services and widgets, and then assembling them on the fly in mash-ups, portals and social networking sites. When I look at Randy Heffner’s work on the new PVS programming model, and project it onto the cloud, it seems to fit pretty well to me.
What’s Your Take? Are you including SaaS as a component of your SOA strategy? How do RESTful protocols, RSS, RIAs, mash-ups and widgets fit into your development strategy? What programming frameworks are you using to achieve looser coupling of your applications?
Overall, MIX 08 was full of good sessions and technical content, which you can see here if you’re interested in more detail. I even managed to get some personal tips on using Expression Blend 2.5 Beta over dessert courtesy of Scott Guthrie. We amused the rest of the table but I have to say I had a blast.