I think that Silverlight and WPF are superior for many reasons compared to HTML5 and JS, as they are TODAY.
The reasons are:
- XAML is BY FAR more elegant way to define UIs
- Silverlight can completely re-template UIs easily
- Building complex LOB applications. KnockOut JS is great, but not enough.
- Silverlight is FAR more performant compared to ANY JS engine
- Debugging HTML/JS app is a nightmare
- JS is a dynamic language. Dynamic languages are powerful… but it’s extremely easy to lose control on your code.
Basically my thought are that HTML5/CSS3/JS is GREAT to build dynamic web sites, BUT when comes to write real/very complex LOB applications, then there are great limitations, at least TODAY. (please look at this great @shanselman blog regarding this stuff: Should I use HTML5 or Silverlight? One man’s opinion).
Talking about HTML5/CSS3, the standard is not yet defined, and many browsers implement it in different ways creating problems…
Before switching to any HTML and JS framework, I guess we really need to wait for adequate tooling – such as Blend for example – and for sure a REAL standard.
So… what’s really happening here? Should I need to learn HTML5/CSS3 tomorrow? I think the answer is NO. And I hope too because really I hate it at least at its current status.
The “future” as I hope it
Actually I think that Windows 8 will support ALL the platforms, including Silverlight, and Silverlight will continue to be supported in the future, however I think for a number of reasons that possibly Microsoft will introduce a sort of “deployment target” to HTML5/CSS3/JS for any application and continue to provide a .NET language such as C# and .NET along with XAML.
Let’s see what’s the current scenario:
- WP7 runs Silverlight
- Visual Studio, Blend, and other tools are currently based on XAML/Silverlight
- Silverlight is a subset of WPF with some limitations
There are a lot of tentatives of “PORTING” features like data binding and .NET from Silverlight/XAML to other “platforms”:
- Script# attempts to convert C# in JS!
- Knockout JS implements MVVM pattern on JS
- Mono touch allows writing C# code and run on IPhone/Android for example.
Do you think that tomorrow WP7 will run both Silverlight and HTML5 apps built in completely different ways?
Is Microsoft probably working on a sort of “conversion tool” or runtime that will allow current tools, XAML, .NET to be converted in HTML/JS/CSS3? A new “deployment target”, … something like that.
OK, this sounds very difficult or full of limitations, … however I am quite sure that it isn’t impossible, given the points above.
We’ll see what will happen in the next months…