Flicker Fusion

MIX day 2

Posted on .

After a grueling night of seeing how much I could flex my liver, I skipped breakfast and the first session (nothing of much interest anyway, except a possible run in with the IE devs, which may have ended in bloodshed). Again, these are mostly my stream of conscious thoughts on the sessions I attended, I won’t try to promise coherence.

Dynamcic languages with Silverlight

Yesterday, when I saw a demo of a Silverlight app using Ruby, written in TextMate (TextMate!) on a Mac (on a Mac!) I wanted to know more, more, more. To back up, Microsoft announced a few years ago that they were going to make the .NET virtual machine able to, theoretically, use any programming language, with C# being a baseline. This system, the Common Language Runtime, would let anyone write a compiler that would target .NET, with the end result being a bit of bytecode that would be executed by the VM. There was much skepticism that Microsoft was at all serious about this and that such a thing would actually work but, sure enough, today you can write apps in C#, VB, Python, JScript and, coming soon, Ruby.

The demo of dynamic languages in Silverlight was led by John Lam and Jim Hugunin, a “Mac/Ruby guy” and “PC/Python guy,” respectively. The glue code is still pretty beta, but they were able to demo some code using Python, Ruby, VB, JScript and compiled C# DLLs. For more sophisticated apps, you could bring in a UI built in the Expression tools and wire it all up with your programming language of choice.

On one level, this is sort of pure geekery, because who really cares what programming language an app is written in? But on another level, there’s some genuine advantage to being able to use other libraries or scripts that others have written to build an app. Or to letting your coders use the scripting language of their choice to maximize efficiency. Whether this actually plays out is yet to be seen, and there’s still a lot of work to be done, but it’s cool to see all the same.

Silverlight media integration

This was a pretty stock demo of the media features available to Silverlight, with a focus on video. There were some quick demonstrations about how to dynamically transform video, change alpha values, animate the video objects themselves, etc. Pretty standard stuff, with a few exceptions, nothing you can’t do in Flash.

The Expression encoder was pretty cool, though. It allows for standard features like cropping and scaling, but also had a library of outputs that would let you skin your video with pre or custom built skins, automatically writing out all the XAML, js, etc. The encoder supports markers and and automatic thumbnail generation for creating DVD-like chapter navigations. The real killer feature was an A/B compare mode that splits the screen and shows you how different encode settings actually appear, with real time views as you scrub along a small bit of pre-encoded timeline. It’s hard to explain, you pretty much have to see it in action to get a sense of how cool it is.

There was also a demo of a live encoding feature that’s very beta quality right now but would allow for live streaming from any source, including pre encoded video, webcams, etc.

I skipped out on the afternoon keynote (something about the Windows entertainment division) to take a nap. I’m collecting thoughts on what all of this Silverlight stuff might mean for Flash developers, stay tuned.