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)
“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.
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.