Some background: My frustration with Microsoft has grown over the last several years. Now that I have my own web project my perspective has changed drastically. I am still an ASP.NET developer in my day job, and that probably won't change in the immediate future, but I am now looking for alternatives to Microsoft's platform for my personal projects. From what I've seen so far Ruby on Rails looks very good.
I saw this and it really helped focus some of my recent thinking about Microsoft & their web development platform. I thought it'd be interesting to compare the point of view of a LAMP developer to my point of view, someone who has considered himself a Microsoft developer for 13 years or more.
1. Free Developer Tools
Visual Studio 2005 is great. I'm glad they decided to make it free forever (at least for the lifecycle of VS 2005, who knows what stupid ass decision the Microsoft marketing boobs will make for Orcas)
2. Free Database
You get what you pay for with SQL Express. Just installing it is a nightmare. The upgrade instructions here should be warning enough. I'm still waiting for a clean XCopyable embedded database engine for SQL Server MDF files. I suspect hell will freeze over before I get one.
Meanwhile the idea that you'll be able to move from SQL Express -> SQL Server when you need to scale sounds good. But there are very real limits to how high you can scale a database system vertically. The problem with believing that you can scale from SQL Express to SQL Server and that SQL Server will meet all your future needs is that it lulls you in to baking SQL Server specific features into your system. You'd be better off starting with SQLite knowing that your database is going to change when you need to scale.
3. Microsoft Atlas makes AJAX easier
Atlas looks promising. It is what they should've shipped with ASP.NET 1.0. The fact that they've made so much progress so quickly with Atlas just reinforces my feeling that they deliberately short-changed the client-side features of ASP.NET 1.0.
I can't help but feel that Microsoft is just waiting for WPF to take off so they can let ASP.NET die. I was shocked to see how much work they did in ASP.NET 2.0. It looks like ASP.NET still has a few years left in it. But don't believe for a minute that Microsoft won't abort ASP.NET the minute WPF starts to gain traction. In the end it still comes down to selling Windows & Office licenses. Unless Microsoft can replace that revenue from its online businesses they shouldn't be trusted as a long term vendor of Web Platforms.
4. Microsoft doesn't HAVE to get ALL of your business.
No but they still want it. Don't ever forget that.
Maybe Atlas is Open Source, I haven't paid enough attention to the license...but I kind of doubt they'll be taking patches from the community.
While Atlas doesn't force you to use any other Microsoft Technology that doesn't mean they won't move it in that direction in the future. I have this sneaking suspicion that Atlas is a stop-gap until they can get WPF/E widely deployed. As soon as that happens I think you'll start to see the switch of this particular bait and switch strategy. Don't get me wrong. I hope something like WPF/E gains traction in the years to come. I just don't trust Microsoft to deliver it in a way that I can build a business on.
5. Microsoft solutions can scale.
Duh! I laugh every time I see this SUN/Oracle propaganda regurgitated. But guess what, LAMP scales too. Just ask Google & Amazon.
I recently watched the MySpace session from Mix06. For me it just reinforced the idea that you won't be able to scale the database vertically. Again, I already knew this from personal experience. But my experience is limited to the challenges that MySpace faced when they went from a single database server to multiple database servers. It was great to hear how they had to evolve their backend as they grew.
I imagine most of MySpace's licensing costs are in SQL Server licenses. I wonder how much their code was coupled to SQL Server and how much that influenced their decision to stay with SQL Server. Their existing teams already knew SQL Server and making a switch to some other system would've caused a lot of pain all the way around. But if you don't have to face rewriting code that is working and tested then the pain of retraining employees may not be as bad. Just one more reason why you should make your code database agnostic from the beginning. I used to laugh when I heard people say that. Now I take it very seriously. And I wonder how much this played into Microsoft's decision to go from the abstract database agnostic world view in ADO to the provider specific model in ADO.NET. Maybe it was just a coincidence, but maybe not. The fact that I wonder about such things reinforces how little I really trust Microsoft with my platform decisions.
6. Microsoft pricing is flexible.
Software Assurance. Burn me once...'Nuff said.
7. Ray Ozzie
Can't argue with this. I love Ray. I hope Ray lasts for a very long time at Microsoft. But if he leaves in the next year or so that will be very telling.
8. Robert Scoble
The recent openness of Microsoft is a double-edged sword. It used to be easy to believe that Microsoft was living in a reality distortion field where they all believed the same crap that the corporate marketing machine spews. Now I see that these guys and gals are smart, and they understand a lot of the issues that independent developers face. Yet Microsoft as a company still makes decisions that only serve their self interest. That is a reasonable thing to do for a corporation, but it treats the technology industry as a zero sum game. Google on the other hand seems to understand that everyone can win. They can earn money while helping partners earn money while helping advertisers earn money while helping users get value. I'm more likely to trust platforms that Google builds because our goals are aligned. Microsoft's goals aren't aligned with mine. The bigger my business gets, the more money Microsoft gets to extract from my business in licensing fees without providing any additional value to my business. I don't see this as evil vs. non-evil. I see it as evolution. And right now Google has a tremendous Darwinian advantage. It isn't too late for Microsoft but that time is quickly approaching.
9. Being based on the Microsoft platform doesn’t limit your acquisition options.
Stop worrying about exit strategies and build a good business. That is the sort of thinking that caused the first bubble.
10. Microsoft wants to be a part of the community
They definitely want the advantages of community. I just don't know if they get that real open source communities are ecosystems. I used to think that companies like Google & Amazon are just exploiting the labor of poor naive open source developers. I now see that most open source contributors do so because they get benefits by having the software they depend on maintained by a community. You'd think I'd get that since I've created open source software myself. I guess I didn't make the connection because my reasons weren’t driven by economics. But many open source contributors are driven by economics. It makes a lot of sense for Google to promote Firefox. Their business depends on a solid cross-platform browser that real people can use. I wish they'd do more direct development of Firefox. I still secretly hope that Google is working on an open cross-platform answer to Avalon.
11. Microsoft employees aren't evil.
I find the whole evil/non-evil discussion pointless and immature. In fact I used to be turned off by Google's whole do no evil mantra. I guess that is my own personal hang-up and it is probably because of the way I define good and evil. I prefer to think in terms of how well a company's incentives are aligned to mine. As I said, Microsoft still doesn't compare favorably to companies like Google. It isn't because they are inherently evil or non-evil. It is just because their natural corporate greed is aligned better with the natural greed of many of the other participants in their ecosystem. It's called synergy. Until Microsoft figures out a way to align its goals with mine - as a user, developer, and web based business owner - I can't trust them to do the right things for me.
12. Microsoft has good development resources
Sorry, I've had to suffer under the tyranny of MSDN for 13 years now. There is a lot of STUFF, but not much of it is useful to experienced developers. Just try to get started with Atlas. You will quickly find yourself digging through the code. And every experienced .NET developer keeps Reflector close at hand. There is a reason for that, the documentation sucks.
13. Microsoft speeds web application development
Nope. The demos look good, but ASP.NET sucks as a platform for web development. They made some very bad choices in ASP.NET 1.0. They tried to make web development like VB6 windows development. They wanted to keep developers in their comfort zone so they could easily switch back to doing Windows only development when Microsoft was able to deliver their next generation platform. It might have worked if it didn't take Microsoft 5+ years to deliver that platform. Hell I was lulled into waiting a very long time before really embracing the web as a platform. I really wanted WinForms to work. But again Microsoft killed WinForms before it was even born.
Many people predicted that Microsoft would completely abandon IE once they killed off Netscape. I didn't believe it at the time, but I do now. ASP.NET was a defensive move. Atlas is a defensive move. WPF/E is a defensive move. The long term strategy still depends largely on selling licenses of Windows and Office. They say they now get the web and that they are going to focus on Services. I say bullshit. I'll believe it when I see it. And I am done trusting Microsoft to do the right thing for me until I see them deriving most of their revenue from win-win-win sources.
Take the Mappoint web services as an example. Microsoft built it and the first thing they seemed to think was, how do we charge for this? How can we get our customers to let us hook them up to the Mappoint IV so we can charge them for each drip? Google looked at maps and they seemed to think, how can we help users find stuff easier while giving small advertisers a better way to advertise to their targeted customers and how can we make money doing that? It is not a question of good and evil. It is question of focus. Do you see the web as a zero sum game? If not then be wary of Microsoft because they apparently still do.