Silverlight: oh yes it is; oh no it isn’t – a Flash competitor

There’s a lot of denial both from Microsoft and others about Silverlight being a Flash-competitor.

I’ve been watching the session videos from in the last few days. In one of the videos they show a survey that Microsoft commissioned that very specifically asked about future usage of Silverlight vs. Flash. The presenter made various comments about Flash TCO being much higher, etc.

I think it would very naive to think that Microsoft was not targeting upcoming designers and existing designers. The fact that Expression is pushed out now with XAML support (with a 2.0 version already in preview) ahead of XAML support in Visual Studio says a lot.

Blinded by Silverlight – the real technology/strategy reveal at Mix07

The about page on the mix website stated:

Exciting new Web experiences with the still-secret “Technology X”

WPF/E and its new branding of Silverlight were announced before the conference, so this secret had to be something else. Silverlight 1.0 is what we already knew. Let’s not underestimate it though – it brings all the XAML/WPF whizzy stuff that is the Flash competitor in 1.0 – it allows a lot of Flash ActionScript type developers and other javascript fans to do cool stuff and consider Microsoft.

The technology in Silverlight 1.1 was in fact the secret (as Microsoft has confirmed) – a full .NET engine (with a subset of the 3.5 .NET framework) embedded allowing all the .NET languages (and dev tools) to run cross-platform in a browser. The dynamic language runtime part also enables 4 scriptable languages to work in there along with C# and VB.NET.

But this, I believe, is just the start of a potentially brilliant strategy for Microsoft, as I’ll now explain.

Bringing .NET (and scriptable .NET) to multiple browsers and multiple operating systems is a huge deal. It really does mean that all the investments that people have made in .NET, can be leveraged in many many ways. There’s a reason that 1.1 is 4.24MB compared to the 1.34MB for 1.0. That’s an army many times bigger than ActionScripters with Expression tools providing a way to use existing Designer talents with WPF/Silverlight. Finding ActionScripters for projects is VERY hard – you can more easily find people that can do VB.NET, C#, JavaScript, not to mention being able to use people that can do IronPython or IronRuby – that’s 6 times more languages that can be used!

Silverlight 1.1 is really the hosting of this stuff in a browser with the VC1/media decoding. So if Silverlight is thought of as a subset of .NET 3.5 in a browser that brings Microsoft technology and tools to many browser and platforms (that’s going from windows apps into cross-everything in a browser) – a bridge to other platforms if you will, what happens if you reverse that once you’ve bridged the platform/browser gap, i.e. just have a plain executable application host on a Mac, Linux, etc, even without re-inflating the framework? Now you can potentially develop on Windows in .NET to create full (rich and connected enough) applications on the Mac and Linux (once this runtime is ported to that). You can even do the development on a Mac in a text editor (including in a browser as demo’d).

Microsoft is all about selling copies of Windows (and Office). If you can’t keep Mac and Linux away, then the next best thing is to bring Windows onto Mac and Linux. However, you can’t sell a Windows licenses that way, but you can get people to use technology that easily hooks up to Windows Live or MSN services that you do get revenue from!!!

So the real technology/strategy that I see Microsoft following:

  • Phase 1 – win over Adobe/Flash developers with SilverLight 1.0, bring Microsoft technology to the Mac and make Microsoft look cool. Provide Expression tools to bring the designers across since often there’s a lot of graphics with a small amount of scripting, vs. the other way around.
  • Phase 2 – bridge the divide by bringing .NET development onto Mac and Linux platforms with an army of existing developers that smothers ActionScripters, enabling users to become Windows Live services users – you did notice that Microsoft is ‘opening up’ their Live service APIs right?
  • Phase 2.5 – All those people that like non-Microsoft languages that were stuck on the server (and often, not a Microsoft server) – get them to love Microsoft now that their favourite dynamic scriptable language can now be used to build _client_ applications on multiple platforms…
  • Phase 3 – once across the bridge (cross-browser leads to true cross-platform), expand the hosting to enable rich .NET installed application development on other platforms making Microsoft technology and Windows Live services an indispensible part of the Mac and Linux experience too!

It’s bold, trojan-esque and both developers and users will lap it up.

If this isn’t the strategy, then it should be!

Silverlight WAS the whole keynote practically, and there’s been coverage of very little else (except about DLR) out of Mix. Nothing about Xbox-Windows links for Xbox Live from Robbie Bach (just a snooze-athon discussion and some iffy demos). Nothing about Live ID CardSpace cards or opening up Live ID to web site publishers like Passport.

This technology is the sleeper slow-release hit of Mix07. They didn’t even officially say this was the secret Technology X listed on the about page.

If what I’ve said is Ray Ozzie’s undeclared strategy, then he is indeed doing a fantastic job (despite his apparent lack of blogging and public comments). If it wasn’t his strategy then either he should make it the strategy or let it just fall into place as I believe it will – either way he’ll look like a genius…

We are living in a Microsoft world again…

Be sure to check out my other mix07 coverage.

New Microsoft CLR/DLR celebrities are born in Jim Hugunin & John Lam

For those watching Channel 9 in the last year you’ll likely be familiar with Anders Hejlsberg, the C# language guru (as well as being the nicer than pie and clever as hell Danish import) who has been seen explaining LINQ and related language technologies.

At Mix07, Jim Hugunin will most likely be receiving lots of hugs from developers for his work on, and demonstration of, the Dynamic Language Runtime – extension to the core DLR to allow for C#, VB.NET, IronPython, IronRuby, JavaScript and VBx to all work as scripting languages calling each other and running on .NET. Keep up to date with the latest DLR announcement on his blog. I’ll just forget that he’s a Python guy ;).

His collague, John Lam (Ruby guy) has a Channel 9 video about this stuff.

The two of them did a great session a Mix07 which was recorded.

Silverlight reveals Visual Basic 10 or VBx – going dynamic

The poster for Silverlight mentions support for and a language called VBx.

VBx stands for VB10 as it turns out, and it will become a dynamic language that you can script with and will run anywhere that the new Dynamic Language Runtime will run, say on a Mac as well as Windows. The bad news (which is predictable these days) is that it’s not in the Silverlight 1.1 alpha, and is planned to be in a Visual Studio release after Orcas, so it’s ‘just’ VB.NET and C# support for 1.1, although there may be the new .NET DLR-integrated/interoperable versions of JavaScript, IronRuby and IronPython in there. In Silverlight, all these languages act as the control logic for WPF-subset UI.

Get the the more official details.

Check out this Mix07 session that includes a demo of VBx from about 21:30, building using a text editor on a Mac.

Silverlight Streaming service fees – not free forever


While the product is in pre-release, storage and delivery is free up to 4 GB, with outbound streaming up to DVD quality (700 Kbps). As we move out of Beta, developers/designers will have continued use of the service with up to 1 million minutes of free video streaming at 700 Kpbs per site per month. Unlimited streaming will also be available for free with advertising, or with payment of a nominal fee for the service for use without advertising.

If I can get 1 million minutes at 700kps, can I get 2 million minutes at 350kbps, or is it 1 million minutes at up to 700kbps? How will it be measured?

Is this available globally?

And more ‘small print’ – you can only have a 4.3 min video at 700kps.

If the Silverlight application contains a video, the video file must be smaller than 22 MB.
This is equivalent to a continuous video stream of 10 minutes at 300 Kbps. If the video stream is encoded at any higher bitrate, it will have to be shorter than 10 minutes.
For example, if the video stream is encoded at the highest allowed bitrate of 700 Kbps, the maximum length of the video is just below 4.3 minutes.

Free is still good though.