Every company has proxies out there. People who don’t work for the company but who tow the company line because they get speaking engagements and other incentives from the company. These people are often used to give controversial company decisions credibility because they’re visible in the community and they don’t directly work for the company which makes them appear to be credible outsiders.
Sam Gentile is a Microsoft proxy. I don’t know if he’s directly paid by Microsoft anymore but he’s clearly someone whose best interest is in supporting them. He makes the rounds of all the .Net User Groups and anyone involved in that community has probably seen him speak at least once. So his post defending Microsoft’s Windows 8 presentation is not surprising…
Yesterday Microsoft finally revealed the Windows 8 User Interface. It’s Metro UI based with applications built using Web Technologies, that’s HTML5 & AJAX. I’m not surprised. No one should be surprised, although what is going to happen to .NET is less clear. Microsoft has hinted at this direction with full support for jQuery and the demise of the proprietary Microsoft AJAX. Also, the tipping point occurred several years ago where you could essentially get a Web app to look as good as a native app without any of the footprint issues. The axis has flipped. People want great user experiences but they want them on the Web.
The post is pretty wrong headed all the way through and I’ve addressed individual points below. But the overall problem here is Mr. Gentile seems to think Web Apps are interchangeable with Desktop Apps and they are not. Anyone who works in the real world knows you can’t always count on a connection. 40% of people in the U.S. still don’t have broadband connections and home. Buying a 3/4G Hotspot for every employee that has to travel sometimes isn’t financially possible. And even T3 lines occasionally fail.
This is why most line-of-business apps are still on the desktop. Clever use of Caching can allow applications to be used even when a connection is not available. It’s also why most smart .Net developers use Silverlight’s Out-Of-Browser capabilities and why Mr Gentile’s attacks on Silverlight (which start right after the above paragraph) are off-base.
The problem with Microsoft’s desktop environment shift is they haven’t released HTML5 tools that can do what Silverlight can nor have they outlined how these new desktop apps will work. If they’d done that a professional using Microsoft technology could start new projects based around where Microsoft is heading but still use Silverlight in the interim. Then they could transition over. But since Microsoft hasn’t laid out anything (we don’t even know if these new apps will use the .Net Framework) that’s impossible.
(For the record I’ve been suggesting people use Silverlight’s Out-Of-Browser ability and an MVVM based pattern but using HTML5 in place of Silverlight for the UI while using .Net Silverlight code on the backend. But that’s just an educated guess)
To hammer home how wrong he is about Silverlight I’ve taken his individual points and refuted them below (quoted text is in bold)...
“Microsoft is simply going the way most of the rest of the world is going.” – Not really. The “rest of the world” I believe he’s referring to are the people who think the desktop is completely dead. Those people think everything will be web based. That’s not where Microsoft is going at all. Microsoft is saying “build desktop apps with web based technology” which is a completely different goal. If you look at other companies pushing native apps (Apple, Google with Android, etc…) none of them are pushing web technologies (Google still has Android developers using Java and Apple is built around Objective-C)
“Let’s face it, despite the passion certain Silverlight developers have for their tools it never got broad acceptance.” – An assertion not backed up by any solid numbers. The truth is Silverlight was never going to be a web technology. Silverlight didn’t take hold on the open web for the same reason that Flash is losing ground. I have no problem with HTML5 and Javascript for the web. But for corporations Silverlight hasn’t been around that long. Most corporate initiatives take a year or so to get through the planning stages alone. Which leads me to…
“[Silverlight’s] been around 5 years now” – That’s just a lie and anyone whose familiar with Microsoft technology should know it. Silverlight 1.0 was not the Silverlight of today. It was Javascript based and didn’t support C# or the .Net Framework subset. It was completely different technology. Silverlight in its current form has been around less than 3 years (the RTM date on 2.0 was Oct. 14th, 2008).
“Two things have held Silverlight and WPF back. It has a huge learning curve to do right. Unfortunately the vast majority of XAML developers opted to create the same battleship grey applications they did with MFC and plain old C# and VB.” – Clearly the rather shallow definition of “do right” here is “be pretty”. Don’t get the wrong idea, I believe applications should be attractive. But Silverlight’s advantages are just as much behind the scenes as they are in UI. Rapid development with technology like LINQ is just as important and in fact more important from a business perspective. Most corporate apps aren’t pretty.
“When we, at work considered the next generation UI for our newest project, Silverlight was not even a consideration. But HTML and AJAX/JavaScript were! MVC was!” - Well again we’re mixing Web with Desktop. If you’re building a public facing web app you should be using HTML5 and Javascript. But that IS NOT what he posted on originally. The Windows 8 UI is about desktop apps NOT web apps. They are different things.
“Chris Love alludes to the fact that many complain JavaScript is hard and it is! But that’s what jQuery is for. I also used to hate JavaScript. Last week, at work, I started to really learn jQuery and jQuery UI and I was shocked how jQuery-UI had legs as great cross-platform UI library.” – So lets talk about JQuery for a second (I’m not going to keep hammering the desktop vs. web issue even though its still relevant here). I love Jquery. I am an unabashed supporter of it. But I also realize it doesn’t entirely deliver on its cross platform promises. Open a JQuery UI based app in IE 7 and you’ll see what I mean. It doesn’t look bad but it looks different. That’s a problem because, as I said above, in the real world legacy apps from other manufacturers sometimes require different browser versions. Silverlight is an easy way to write an app that looks the same in all different browsers and if you’re in a corporation that can guarantee the plug-in will be there it’s your fastest way to build apps.
Addendum: One last point I’d like to make. I used to be one of those “all apps should be web apps” type of people. But again only 60% of households have broadband connections while web apps don’t work without a broadband connection. Many argue these households aren’t the ones that buy new PCs anyway but I can tell you that’s not the case. I’ve found many $100,000+ income households still don’t have broadband connections because they just don’t see the need. They do most of their web browsing at work and don’t want to pay the $100 a month for something they don’t think they’ll use. So the issue of web apps isn’t as cut and dry as many technology people think it is.