My thoughts on why Silverlight isn’t for Flash Developers, and what does it really mean for Microsoft

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.

WordPress Migration Complete

Finally got all the important things complete for the migration from Movable Type to WordPress. Setting things up was quite easy and so far I’m liking the new system a lot. The most time consuming part was ensuring the old urls mapped properly to the new blog system. If anyone finds anything broken please let me know. Also.

I haven’t customized the look/feel yet. That will come next, along with more frequent posts!

If at first you don’t succeed, apply and apply again… :(

We’re hiring for a few positions (cfmx admin, desktop, and a pm). I’m quite frankly amazed at the applications we’re getting. Here’s a brief synopsis…

If at first you don’t succeed…
We’re getting a lot of repeat resumes. Some are right after another like we get one at 9:08 and then we get another one at 9:23. On several occasions we’ve gotten repeat applications for the same job coming from different sources (Monster and Craig’s List) but more often the case they’re multiple Monster applications. I’m not sure whether or not to throw someone out just for applying twice. It’s been a while since I looked for a job, but I always remember keeping careful track of where I applied. Maybe that’s not the case any more.
E-mail does not make a resume
This is my biggest pet peave, but I can’t really bring myself to fault the applicants. Monster apparently has a feature where people store their resume and do a single-click apply and they send the resume as plain text in an e-mail. The result is a jumbled mess of skills, experience, and education all mixed in and almost completely illegible. I wish Monster didn’t have this feature or at least that we could set up our Monster account to disallow these types of applications. What ever happened to customizing resumes and sending personal cover letters?
Novel as a resume
What’s with the long page resumes? When I went to resume workshops in college (which admittedly was a few years ago, but not that long ago) we were told to keep resumes to 2 pages and maybe 3 if absolutely necessary. How long does everyone else take to read a resume? Do you really read a 5, 7, or 10 page resume? I tend to scan the objective, skills, and last two jobs, and if relevant skills don’t pop-out at me, I move on. I’ve been told that’s pretty typical but I’d love to hear other employer’s opinions.
Desktop vs. Web
This is just an interesting twist. A few years ago it was hard to find people with a lot of web experience. Now it appears the opposite is true. There’s a lot of applicants with web experience but very few have recent desktop experience (we’re hiring for a .NET WinForms position).
So, you can find job here at website.

So enough with the rants… if anyone still wants to apply (and no, I wouldn’t be your boss so you don’t have to listen to me complain all the time) feel free to e-mail me. And no special prizes for the 20 page jumbled plain text mess sent a dozen times.

Watch for confidential information in code samples

We’re currently hiring for a few .NET programming positions and always ask applicants to provide a code sample. Some applicants can’t provide one since everything they have is confidential information, and we don’t penalize people for this. Some others have to check with their employer or previous employer first, and we always consider this a good sign. And others just go ahead and send us samples, which is usually ok but it can also be bad.

On occasion we get samples that have obviously confidential or proprietary information in them. This is always a red flag. Even if the code is very good, the fact that a person was willing to send his current or previous employer’s confidential information to a prospective employer as an example of work is bad.

In one particularly agregious case we received an application that had the company’s database domain name, username, and password all within the config file. That’s a major security problem. Not the type of security problem we’d like to hire into our company.

So if you’re applying for a job and providing a code sample, think not just about the quality of the sample but what information it contains and what it conveys about you, your honesty, and your consideration of others confidence and privacy.