There were two big themes at PDC in Los Angeles today. One was the Silverlight 4 beta, the subject of the most impressive section at the keynote. The other was the announcement of free laptops for every attendee – aside from press and government. It is remarkable how a generous gift can change the atmosphere. The lack of breakfast or Universal Studios party was soon forgotten as the audience cheered its own good fortune.
There is actually some justification for handing out this hardware. It’s a decent machine, a modified Acer Aspire 1420P with Windows 7 x64, 2GB RAM, multi-touch display, and accelerometer. Most of us do not have multi-touch machines, and giving them to the core Windows developers who attend PDC may help stimulate the creation of applications that properly support this feature.
Otherwise, it was a Silverlight day. Although SharePoint 2010 was also in the keynote, the cheers it received felt more like relief, that it finally has sensible development and debugging tools in Visual Studio, than real enthusiasm. Somehow the keynote did not capture the potential of the product.
Silverlight though was well received. It is a huge release that opens up many new possibilities, though I am discovering some details that look awkward. There is also one troubling aspect, which is that Microsoft is introducing imbalance in its cross-platform story. The Windows version of Silverlight 4.0 supports COM automation, enabling integration with local APIs such as location on Windows 7, and Microsoft Office. There is no equivalent in the Mac release. It would not be so bad if Microsoft offered some route to similar functionality on the Mac, but there is none that I am aware of.
Microsoft folk that I spoke to about this dismissed it as a minor point, but it is not. Cross-platform is a discipline; this is a failure to observe that discipline and hands an advantage to Adobe Flash for developers that require broad reach.
I can understand Microsoft’s logic in breaking x-platform compatibility to enable COM access on Windows, but it’s old thinking that hasn’t served them as well in the recent past.
With OSX gaining market share, the imminent release of Chrome OS, a lot more stuff moving into the cloud, and the implementation of Flash on non-PC devices (particularly smart phones), I think this is going to serve them even less well in the future.
I really think this is a short sighted and backwards step. Which is a shame since it does look like a promising technology.
I think they will add some sort of support for Mac native software/hardware in future.
But to be honest – no way it will be just the same thing, because devices and software so different you have to actually have different ways to do that kind of things on different OS.
So I think it’s good for the first step. Just like Mac OS X is a good first step to be multi-platform, but we know that IPhone/Win Mobile/Linux also very hot places to reach.
Another interesting little bit regarding inconsistency across OSs come from Mike Downey. The HTML control only works out of the browser and is based on the local browser.
http://twitter.com/mdowney/statuses/5832775170
So, unlike Adobe AIR, HTML/CSS rendering will be different on different systems. But I’m not sure it really matters as much as the comparison with AIR might indicate. AIR is designed to allow you to develop AJAX-based desktop applications. I don’t think that’s a goal for Silverlight?
Some more details on what is in Silverlight 4 here:
http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/default.aspx
Nice examples of sending data into a multicast group and examples of using the Webcam and microphone.
No information on encoding the webcam’s stream yet. What codecs and profiles will be supported? h.264? Does Silverlight 4 support peer-to-peer? etc..
I’m looking forward to the next round of counting primes performance tests! 😉
Brian
Yes, h.264 is supported.
Tim
Tim, you indicate that H.264 is supported — but is that for streaming from a server, or to a server (e.g., from a webcam)? In other words, I still haven’t found anything anywhere which indicates how it might be possible to write a video chat application with Silverlight 4. Does anyone have any guidance there?
On a streaming media mailing list one person commented that you can encode Webcam video to “H.264 as long as it’s in a ISMV wrapper.”
But Microsoft staff don’t seem like they are ready to talk about how you redistribute that video to other clients yet. Wild speculation: maybe there’s a bit of IIS or Windows Media server that needs to be updated first??