I’ve been reading a lot of old blog posts tonight regarding Microsoft and Open Source – it really reminds me of the interesting stances the company has taken over the last 5 to 10 years (I’ve only been working with Microsoft for just about 2 years now). For instance – I read a post from Scoble that goes over why "Web 2.0 entrepreneurs" don’t trust the M$ Stack – and I must say, it’s a pretty interesting read and the points that Scoble raises are still felt pretty strongly:
As I’ve been going around the world I’ve been meeting with many people who’ve built their companies on non-Microsoft stuff. Some of whom have companies worth billions of dollars now. Some of whom you’ve never heard about unless you read TechCrunch. Here’s 12 reasons Web 2.0 entrepreneurs like Ross tell me that they aren’t using Microsoft’s stuff:
1) Startup costs. Linux is free. Ruby on Rails is free. MySQL is free.
2) Performance per dollar. They perceive that a Linux server running Apache has more performance than IIS running .NET.
3) Finding tech staff is easier. There are a whole new raft of young, highly skilled people willing to work long hours at startups who can build sites using Ruby on Rails.
4) Perception of scalability. The geeks who run these new businesses perceive that they can scale up their data centers with Linux and not with Windows (the old “Google runs on Linux” argument).
5) That Microsoft doesn’t care about small businesses. After all, Microsoft is an evil borg, but Ruby on Rails comes from a single guy: David Heinemeier Hansson. He has a blog and answers questions fast.
6) That open source makes it easier to fix problems and/or build custom solutions. A variant of the old “Google or Amazon couldn’t be built on Windows” argument.
7) On clients, they want to choose the highest-reach platforms. That doesn’t mean a Windows app. Or even an app that runs only in IE. It must run on every variant of Linux and Macintosh too.
8) They don’t want to take shit from their friends (or, even, their Venture Capitalist). Most of this is just pure cost-control. I can hear the conversation now: “OK, you wanna go with Windows as your platform, but is the extra feature worth the licensing fees for Windows?”
9) No lockin. These new businesses don’t want to be locked into a specific vendor’s problems, er products. Why? Because that way they can’t shop for the best price among tools (or move to something else if the architecture changes).
10) More security. The new businesses perceive Linux, Apache, Firefox, and other open source stuff to have higher security than stuff built on Windows.
11) More agility. I’ve had entrepreneurs tell me they need to be able to buy a server and have it totally up and running in less than 30 minutes and that they say that Linux is better at that.
12) The working set is smaller. Because Linux can be stripped down, the entrepreneurs are telling me that they can make their server-side stuff run faster and with less memory usage.
I’d love to know if these opinions have softened at all – or if they’ve been further reinforced – especially given the release of ASP.NET MVC (and it’s subsequent listing on Codeplex under Ms-PL). I’m going to guess that they’re roughly the same: people will believe what they’re going to believe and for some reason, when it comes to Microsoft, changing people’s minds is really hard.
One thing that’s particularly interesting to me is that Microsoft, at least some divisions, are actively changing their "thinking" if you will to a more open posture. The Ms-PL of ASP.NET MVC (mentioned above), some of the work that Developer Division is doing with the Mono team, and the source availability of the entire .NET stack (yes, I know it’s still not open) are evidence of a shift in thinking.
Great! But now what?
Clearly openness and transparency is super groovy – but then what? I’m a huge champion of the open and transparent thing and I’ve been able to do some great stuff in the open with the MVC Storefront and I’ve taken you along with me. I like to think that I was brought to Microsoft to help keep "rolling the bubble" towards more openness – but I have no way of knowing where the rowers are a-rowing; so I just keep plugging along and thankfully they’re letting me .
The Storefront has been a great learning tool, and a lot of people have thanked me for it (and you’re all very welcome! I learned a ton too). But now what?
It was always my intent to pop what I did up on Codeplex and share it with people with the idea that if it had legs – well hooray! So far I have every reason to think it will become quite the open, flexible, "new thinking" type of application that people can learn from, use, extend, and so on. It fires me up and makes me pretty happy because I really like Open Source and what it can do.
But then again – I’m a Microsoft employee and this is a Microsoft project, after all. They’ve given me tremendous latitude to do with it what I will so people can learn core concepts surrounding ASP.NET MVC. That part is sort of done, and now we have Kona – an app that I’m hoping will be somewhat influential with respect to Open Source apps built on ASP.NET. Nice idea – but then there’s the fact that I work on the ASP.NET team.
What does it mean to you that I’m an MS Employee, on the ASP.NET team, building an OSI-licensed ecommerce app? Do you think Microsoft should do more things like this in a more formal way? Or should it stay out of the picture and let others run with this kind of thing?
There are so many questions that I have in my head – and I’m very, very interested to know what you think here: What do you think Microsoft should do with respect to Open Source and .NET?