A lot of discussion lately happening on the topic of Silverlight, especially in relation to Flash. One discussion that is a must read if you haven’t done so already is on Grant’s blog. I’m not going to rehash what Grant has said as he has done a great job presenting a balanced perspective. One thing though that I thought I would add considering my experience with the Microsoft platform is what I feel is another perspective on the driving factor for why Microsoft has been marketing Silverlight so heavily.
See one thing about being a .NET (Microsoft Platform) Developer is that Microsoft works hard at providing a complete development platform story. It does so by providing the operating system, servers (IIS, SQL Server, etc), developer tools, frameworks, languages, compilers, and debuggers (I’m sure I left something out). Because of this, it is very typical to find .NET development shops only versed in Microsoft platform technologies. Since MS provides them with pretty much everything they need, why would they bother dealing with other vendor technologies that don’t “integrate”. For those who don’t see the real benefits for this, just consider that with Visual Studio you can debug an IIS call through the HTTP Pipeline, through the .NET CLR, all the way to SQL Server and back. That is pretty powerful integration if I may say so myself. Microsoft platform developers are used to this kind of integration, and this helps keep those developers eyes focused solely on using Microsoft’s platform.
So, this brings me to what I believe is one of the driving factors of Microsoft developing Silverlight (Note: This is my view and is not at all backed by any credible source). Lets start with a simple fact. Microsoft benefits greatly from having Microsoft developers only interested in their platform, by doing so this forces more sales of their operating system, servers, and in general continues in the cycle of Microsoft keeping its strong power in the software industry (monopoly). You can see how important this is by many of the company’s behavior. Things like releasing SQL Server Express for free, Visual Studio Express for free, etc. These are not products that cost Microsoft chump change to develop, but because the business folks at MS did the math, they were able to justify it by the prediction of more sales of complimentary products, especially their flagship product, Windows. Which is a great decision by Microsoft.
So to finally get to the motivation. My guess is that once every little while some execs at Microsoft sit down and discuss how to keep the monopoly going. One of their items on the agenda must be to discuss who the risky competitors are. They probably even rank each one, vote on it, and allocate a budget from their savings to fighting off each risk. One such risk the past decade has been OpenGL, a cross platform graphics library used by many applications and especially games. To combat this technology Microsoft built Direct3D, and more recently Windows Presentation Foundation (WPF). Microsoft fights by building great tools and libraries that make it really easy to build these graphically intensive applications. Now I don’t have any confirmation to this other than some Microsoft employees at one point hinting at it, but think of it, if developers can build the same thing faster, with less code, but such applications only worked on Windows, it only means that many applications will likely be built to only work on Windows and will likely not see the light of day on any other operating system. Co-incidentally of course Microsoft is not going to port these technologies to any other platform other than Windows. So this clearly spells out the fact that Microsoft isn’t as interested in seeing their technologies adopted, just interested in seeing their operating system keep its penetration up. Another side story, one time when Redmond flew me out to their offices along with a few others, we sat down to discuss Microsoft’s future plans and their technologies. At one point I asked if they would ever be willing to sell a .NET CLR for Linux. I even mentioned how I would be willing to pay more for a .NET CLR for Linux that was officially provided by Microsoft than what we pay for Windows Server. I don’t remember the exact response, other than the fact that it would never happen, but the discussion eventually turned into how can Microsoft make Java work better under Windows. That day I couldn’t help but realize how strongly Microsoft is architected around the idea of Windows keeping its power. Here I was sitting with the CLR architects at Microsoft and they were asking us how is it that they can make Java better on Windows than Linux, even if it is at the cost of .NET.
Moving on to Silverlight. To continue with my assumptions, at some point when the Microsoft execs sat down and thought about other technology risks out there, up comes Flash and the web. After all the web makes the Microsoft operating system useless, the more apps that move to the web the less need there is for Windows. What is also worrisome for Microsoft is Flash. As the technology has matured and Macromedia started building Flex, a framework for traditional developers, Microsoft realized that it is very possible that their developers will find the technology useful. And that is where Microsoft’s risk scale starts going through the roof. If their developer base uses a technology other than their own, how likely is it that those developers will start promoting cross-platform applications? Very likely I say. More so is the fact that not long ago Adobe bought the technology, which automatically raises the risks much higher. When Flash was with Macromedia, it was a cool technology that was backed by a company that can’t match Microsoft’s deep pockets and really wasn’t as organized as Adobe. With Adobe, Flash is now part of the 4th largest software company out there. It is true that Adobe doesn’t have the same funds Microsoft does, but Adobe has been very successful at bringing to market technologies like PDF that today dominate as big as Microsoft’s Office products do, so they could likely do the same for Flash as well (Last I heard, Adobe PDF accounts for 60% of Adobe’s revenues, why wouldn’t Adobe want the same for Flash)
So this in my opinion has forced Microsoft to push Silverlight more and more, and my guess is since Adobe’s acquisition of Macromedia, Silverlight and WPF have received a lot more funding, just to make sure the risk is reduced for Microsoft’s long term viability.
Just to elaborate a bit more. The main point is that I don’t believe Microsoft cares to suddenly grab Adobe’s developers to use Silverlight over Flash, the number of Flash developers is puny in comparison to Microsoft’s developer base. Instead I believe their main driving factor is to keep their existing developer base loyal to Microsoft technologies (hence promoting their monopoly) and to keep ignoring Flash. Even if Silverlight doesn’t do as good of a job as Flash, the fact that it is integrated within Visual Studio will be reason enough for many of their developers to not bother looking at Flash. Now some may argue, but look, lots of Flash developers are being paid to do Silverlight work by Microsoft. Why would you say that they don’t’ care for Flash developers. To me this is just a temporary thing (Grant touched upon this). The main reason Microsoft is doing this now is Flash developers have a lot of experience building these so called RIAs. Microsoft’s developer base does not, so rather than try to teach their developers really quickly how to “design” such application, the “goals” of such applications, etc. They can just get some Flash developers who know what the outcome should be to learn and hack away at using Silverlight. The other point is that Silverlight knowledge can be applied to WPF. So if you start playing with Silverlight, you will quickly realize you reuse that knowledge/familiarity to building WPF applications which just so happen only work on you guessed it, Windows.
Anyways, for my last point. I think Adobe is missing one thing with all of this (At least if my assumptions are true). If you believe me in that Microsoft’s main goal is to keep its developer base loyal and grow it slowly, then it would make sense for Adobe to be on the offensive in that territory. Microsoft has enough money to do a lot of damage everywhere, and so far Microsoft has been on the offensive most of the time, but Adobe is making it even easier for them. Adobe so far hasn’t been pushing Flex with Microsoft developers, even though the technologies work very well together (On my team we do it all day long). So if Adobe competes with Microsoft for the attention of Microsoft developers, the Silverlight story could easily change.
No matter what, it is pretty clear that Silverlight isn’t going anywhere anytime soon. Microsoft has enough money lying around to keep Silverlight going, and they never really count on a version 1 product to go anywhere anyways.
If you made it this far, I just want to remind you that I don’t’ have any insider information that causes me to make these assumption and neither have the experience of running companies as large as Adobe or Microsoft. These are just my assumptions which I thought I would share.