Silverlight and a technology’s shelf-life – revisiting MIX08
November 4, 2010 Leave a comment
In the last few years, it seems like more and more Microsoft uses a strategy of "throw it against the wall and see what sticks". It is likely more perception than reality, but it seems like Microsoft introduces many technologies to great hoopla, only to see them fade to oblivion in a year or two. Sometimes the technologies are absorbed into other products; other times they just disappear. To be fair, they’re not the only one to use this strategy… Google Wave, anyone? It certainly doesn’t make the jobs of application developers any easier, though.
Now, after growing whispers about HTML5 and what it means for Microsoft’s web strategy, we have last week’s did-they-or-didn’t-they-marginalize-Silverlight controversy at the 2010 PDC (Microsoft: Our strategy with Silverlight has shifted).
For what it’s worth, I don’t think Silverlight is going away. In fact, I believe that Microsoft is basically telling the truth in their follow-up statements (PDC and Silverlight). Silverlight will be the primary development platform for Window Phone 7, and it will be useful for targeted line-of-business applications and web-based media delivery. It will NOT be the run-everywhere cross-platform tool that was originally promised. Things have changed, and it appears that HTML5 wins that battle. It is unclear what this means for continued non-Windows-based Silverlight development (such as new/updated versions for the Mac, an Android version, and so on).
The Silverlight conversation aside, I thought it would be interesting to revisit the notes that I took at the 2008 MIX conference, and see how other products have changed in the last couple years. (Note that the first version of Silverlight was introduced at MIX 2007. I attended that conference as well, but seem to have misplaced my notes.)
SQL Server Data Services (SSDS) – This was Microsoft’s first attempt at a cloud-based storage service implementation. Notice that at this time, the name “Azure” was still six months away from being announced. In the notes I took during the session I questioned how SSDS compared to Amazon’s S3 storage service… and in the post-session Q&A it was revealed that the two services were in fact very similar. However, Microsoft indicated that “much additional SSDS functionality is expected to be rolled out in the near term (every 6-8 weeks)”. SSDS was to use standard REST operations (GET, PUT, POST, and DELETE) to manage the data stored in the service, and LINQ for more complicated queries.
SSDS did eventually come to market as Microsoft SQL Azure, but its released form is radically different than the produce described and demonstrated at MIX08. Rather than blob storage manipulated via a REST-based interface, SQL Azure is in many ways full SQL Server in the cloud. Developers can use their existing SQL server tools and skills to work with SQL Azure much as they would with an on-premise SQL Server installation.
ASP.NET MVC – The first version of this new web programming framework was released at MIX08. I attended a session given by Scott Hanselman which demonstrated the new framework and pointed out its strengths and areas where it fell short. I’ve not done much with MVC personally, so I can’t say much about what has changed since that time. What should be clear, however, is that ASP.NET MVC is a product that “stuck”… it has clearly improved, is respected by the Microsoft development community, and has been made an out-of-the-box part of Visual Studio.
Fast forward to late 2010, and what do we find? jQuery (an open-source product) is now fully supported by Microsoft, and Microsoft is actively contributing to the jQuery product. The AJAX Library has been combined with the AJAX Control Toolkit and refocused primarily on the service-side aspects of AJAX. jQuery is now Microsoft’s primary technology for building client-side AJAX applications. Interestingly enough, all of these changes were announced at MIX10, and described in detail here.
So what does the scorecard look like? One new product (SSDS) has made it to market, but in a radically different form. Another new product (ASP.NET MVC) is a success. One somewhat established product (AJAX Library and Control Toolkit) has been completely superseded by another technology… one that did not even originate at Microsoft. All in all, this is about what I expected to find.
Obviously, this is very small sample size, so it wouldn’t be appropriate to draw too many conclusions from it. However, it’s not too hard to come up with other products that fit similar profiles. LINQ to SQL has been surpassed by Entity Framework. Entity Framework itself was widely disparaged upon its initial release, underwent major changes from version 1 to version 2, and now seems to be more successful. Project Astoria became ADO.NET Data Services, which became WCF Data Services, which is one of what seems like about 20 different data access technologies offered by Microsoft.
It should be clear that very few development technologies remain static for very long, and with newer technologies it is difficult to predict even which will survive from one year to the next.
These examples underscore the challenges that application developers face as they strive to keep their skills current, while at the same time not wasting precious resources on dead-end technologies.