Aug 282012

If you have read other posts on this blog, you may realize that I am a fan of Silverlight. I thought (and still do think) that with that technology Microsoft really hit a sweet spot with simplicity, ease of deployment, usability, and developer productivity. This is especially true for those devs working on internal, line-of-business apps, of which there are quite a few. And internal LOB apps have been Microsoft’s bread and butter for devs tools for a long time with products like VB, WinForms, etc. If an organization of any significant size runs on top of Windows, then most likely it employs a team of developers working on these technologies.

But lately, with Microsoft’s shift in focus toward ASP.NET MVC, jQuery, HTML 5 and other cutting-edge web standards, the amount of things the average developer has to care about has exploded. Has this strategy alienated the Dark Matter Developers that have supported Microsoft for so long? And does Microsoft have the agility, expertise, and community support to compete in the world of “real” websites like Twitter and Google? Are they putting too much energy toward the 1% of top developers and ignoring the 99% that just want a simple dev stack that will be stable for 10 years?

I was thinking about this as I was looking at one of the newest pieces of guidance to come out of Microsoft Patterns & Practices, Project Silk. The aim of the project is to create a reference implementation of a web application using the latest and greatest technologies and techniques. It is a really great project, and I loved looking through the code and the accompanying guidance documentation. For someone like me that is interested in the cutting edge of dev technologies, it is exactly what I want to see coming out of Redmond. But another part of me feels bad for the average developer sitting in a cube in a Fortune 100 company trying to figure out how to get started on his next .NET web application that needs to be done by next month.

Here is a list of technologies and techniques that one would have to master in order to produce something like the MileStats reference app created by Project Silk: .NET, C#, SQL Server, ASP.NET MVC, Razor, Entity Framework, LINQ, OpenID, DotNetOpenAuth, REST, HTTP, AJAX, JSON, HTML 5, CSS, JavaScript, jQuery, jQuery UI, jQuery Widgets, jQuery BBQ, jqplot, Modernizr, Unit Testing / TDD, xUnit, qunit, Dependency Injection, Unity, Mocking, moq, NuGet, and Powershell. And I’m sure I missed some in looking through the code. A lot of these things have only emerged in the past few years, and anyone that have had their heads down in WebForms since .NET 3.5 would probably be staggered by the list. I’m glad I have almost 20 years of web programming under my belt, and have had a chance to evolve my skills alongside the evolution of the web. For someone coming out of college or trying to change gears from C++, I’m not even sure how they would manage to catch up.

In past decades, it seems that Microsoft’s Developer Division was focused on taking all of the complexity of programming and simplifying it down into a technology stack that could be mastered by one of the 99% of programmers out there that just want to get stuff done and have it last for a few years. People interested in the cutting edge largely ignored Microsoft in favor of open source technologies or other stacks. Microsoft has done a tremendous job over the past couple years in transforming the Developer Division into something that can produce cutting edge technologies, embracing open source, web standards, and the developer community. This makes someone in the 1% that focuses on Microsoft, such as myself, very happy. But will this be a good strategy in the long term if the 99% are left in the dust?

At this point, the ASP.NET stack is rich enough where a savvy programmer could use it to create any of the top websites that exist today. But for the most part, this isn’t happening. Most of the top websites are not on top of the Microsoft stack, but instead use PHP, Ruby, etc. There are exceptions such as Stack Overflow, but the exception proves the rule: despite Microsoft’s transformative efforts, they still have a long way to go to win over the 1%. And in the meanwhile, they may have irrevocably damaged their relationship with the 99%. They may have won the battle in embracing web standards, but will they lose the war for the hearts and minds of the developer community?

 Leave a Reply



You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>