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 sessions.visitmix.com 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.

Advertisement

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 VB.net 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

From silverlight.live.com:

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.

Silverlight on a stick

The coolest keynote “sex on a stick” moment was probably when Scott Guthrie showed how you could set a break point using Visual Studio Orcas on Windows in Silverlight project .NET code, run the Silverlight output in a browser on a Mac, attach to the remote Silverlight instance, and break in the debugger on the Windows machine when he clicked a button on the Mac…

It’s really hairy down in the machine debug processes, and getting that working cross-platform ‘was not easy’ as Scott said.

Silverlight – what IS cool about it?

Forget the misleading flashy 3D-portaying video at microsoft.com/silverlight for a second; ignore the fact that this puppy has not yet been released yet; pretend that lack of A/V live capture is not an important feature; overlook the 4MB download… what balances this out – what makes it really cool?

Windows Presentation Foundation is the very designer-friendly set of classes and runtime (developed against using XAML directly or through Expression and Visual Studio Orcas) that enables rich UI experiences. It is available for Windows XP, Windows Server 2003 and is included with Windows Vista, as part of .NET 3.0. At the risk of breaking the benefits of consitent UI investments, it can be used to build extremely compelling applications.

A subset of WPF, first known as WPF/e, makes up the rendering engine of Silverlight. The Silverlight runtime includes not only this subset of the runtime, but also the runtime to play back Windows Media content (on-demand or live). This runtime is ~1MB, so far.

XAML can define animations and behaviours that need no coding. In the 1.0 release, you can write javascript against the runtime-instantiated object model to provide a rich interactive experience.

The Silverlight runtime works in IE & Firebox on Windows, but also in Safari on the Mac! In a later release, it will also work in Windows Mobile and possibly Symbian devices.

At this point you have Flash (more or less) but with the whole weight of the Microsoft development eco-system behind you. Most notably, Microsoft has released a set of Graphic Designer tools under the Expression brand that allow you to design vector/bitmap graphics, design the interactive experience, design the web site and manage and prepare the audio/video media. Expression Web and Blend (web and UI tools) are included in various MSDN subscriptions. It’s not clear if Microsoft Partner will get it for free. The full Expression Studio (with all 4 tools) is priced at US$599 at retail which isn’t bad. The Media Encoder is a tag-along-later free download for preparing audio and video.

The next version of Visual Studio (codenamed “Orcas”) will include native support for Silverlight projects.

Microsoft is providing a free (up to 4GB) hosting service in Silverlight Streaming to people can get their content out there using this new platform. This is a smart move for sure.

That’s a lot of WOW – perhaps more flashy of a UI than Vista presents even.

If that’s not enough, then Microsoft has a 1.1 version of Silverlight (which probably should be 2.0) that will allow .NET programming against the runtime, instead of JavaScript, along with full project support in Visual Studio Orcas. This is a subset of the .NET 3.0 framework – a very small subset focusing on the CLR core, networking, UI. This brings rich smart application right into your browser that can be authored by ALL .NET developers with most of their existing skills along side graphic designers using the complimentary set of tools in the Expression range. That’s a lot of industry weight!

(UPDATE: As Yuvi pointed out, it will be a subset of .NET 3.5 by then, rather than .NET 3.0)

A .NET developer can create rich experience on the Web without writing any HTML! He/she can practically be a Mac developer by running a Windows-like smart/rich-client application inside a browser on a Mac!

Microsoft also has an open-source initiative for a Dynamic Language Runtime to allow other languages like Ruby and Python to be used instead of the mainstay C# and VB.NET.

They are also including LINQ in the .NET subset to allow some cool data query syntax in the coding.

Being able to access Web Services from Silverlight combines the best of rich UI with powerful backend services.

With the addition of the full Silverlight product (1.1) you can now do .NET development on the windows desktop, on the windows server, on windows and other mobile devices (compact framework and Silverlight .net runtime), on the mac (and other platforms that may be supported later).

It’s not revolutionary, the tools are lagging behind the runtime, the runtimes are still in beta… and the “web 2.0” and consumer web space is very busy (flickr, youtube, etc.), so it will be interesting to see if clear killer apps can emerge.

See the details a the regular Silverlight site, the community site and the Expression site.

Disappointing Silverlight release schedule

Today – April 30 2007

  • 1.0 Beta
  • Silverlight Streaming Beta service
  • 1.1 Alpha
  • Full Expression suite 1.0 (leaving software developers in the dust with 6+ months waiting for Visual Studio Orcas)
  • Expression Blend 2.0 preview

‘Summer 2007’

  • 1.0 Release

Undisclosed timeframe

  • 1.1 Release
  • 1.1 Tools for Visual Studio – tied to Visual Studio Orcas release
  • Mobile device support – which could be a real flash killer

That’s a long time to wait to be able to use this technology. Will there be a Go Live license for this stuff?