ASP.NET MVC 1.0

I’m not sure why Microsoft is being so quiet about it, but they have apparently released the ASP.NET MVC 1.0 final. Kudos to Caleb for tipping me off via a random tweet.

I went fishing all over yesterday and didn’t find any big release announcements. I expected Scott Guthrie to have something on his blog, but nothing yet. The MSDN site finally had a release announcement this morning.

This is fantastic news for .NET web developers. This finally gives ASP.NET a production-ready web MVC framework distributed by Microsoft. This framework is the future of ASP.NET.

Fuzzy Grid

For a small break, I attended the Microsoft Developer Conference in Dallas today. One of the big draws of the conference was Windows Azure, Microsoft’s new cloud computing initiative. More than just a hosting environment, it provides various services too. The Microsoft vision is that users will maintain their information in the cloud and also make use of application in the cloud. I had gotten into the Azure beta, but have not deployed a service, so I was interest to learn more.

The keynote was mostly a pep talk around Azure. But rather than leaving me excited about it, I’m more apt to run away screaming.  My main grief is a total erosion of privacy. The showcase application they demo’d was a Blockbuster video cloud application written in Silverlight. You install the application into your “world”, Live Mesh. At install, the application pops up a security warning saying to install, you allow the application access to your online information, your contacts and your social network. It seems the way Microsoft is trying to draw businesses into using Azure is by enticing them with intimate access to their customer’s data.

I’m just not keen to the idea of me keeping all my personal information up in a cloud when I know that the host’s principal interest is in making that data available to its partners. Yes, I know I’m just trying to maintain an illusion of privacy. The data already available out there on me is probably staggering, but at least a business has to work to find it rather than me laying it down at their feets.

The other sessions were OK, except for the JQuery and ASP.NET presentation. The presenter was very nice, and I’m sure he’d be fun to have a beer with, but he was a JQuery and JavaScript noob, and I expected better content from a Microsoft-sponsored event.

As an example, here’s a little JavaScript trivia. The presenter wasn’t sure about this, and I’ll leave it to anyone interested to fire up Firebug and give it a try themselves.

Which alerts (if any) are shown when this snippet runs:

if("1" == 1) {
alert("First evaluation was true");
}
if("1" === 1) {
alert("Second evaluation was true");
}

2009 Predictions

Not to be outdone by the innumerable quantity of pundits out there making their own baseless predictions, I’m going to toss out my own for the coming year in the technology space:

  1. Sun Microsystems is toast. Their only real asset is Java, and it is worth more to a company like IBM or Oracle. If the frigid economic climate continues, Sun will be purchased by IBM.
  2. Windows 7 will rock. This prediction might get delayed until early 2010 given Microsoft’s track record, but I fully expect Windows 7 to put Microsoft firmly back in the drivers seat. It will make up for past sins and put Apple on the defensive.
  3. Google and Apple turn out to be evil after all. Pretty safe bet; both want to be what Microsoft was last year and will sell their souls to do it.
  4. Microsoft won’t be the evil empire any more. Now that Bill is gone and Ray Ozzie is setting the tone, you’ll see a lot more warmth and geek-friendliness out of Microsoft. Check out Microspotting if you want to catch a glimpse of the new Microsoft.
  5. Oracle will buy Spring Source. This is about the only jewel they’re missing and would be a better investment than BEA was. Unfortunately, it will kill all the enthusiasm around the Spring Framework, thus killing one of the few exciting things left in the Java space.
  6. (Wildcard) Microsoft buys ExtJS. Apple picked SproutCore, so Microsoft needs a good RIA JavaScript library. They’ve put their backing behind JQuery, which is awesome, but it is not in the same league as ExtJS. They could buy ExtJS for a pittance and have one of the best AJAX widget libraries on the market overnight. ExtJS and ASP.NET MVC will be the winning combo.

Why Microsoft Sucks

In spite of the inflammatory title, please don’t interpret this to mean Microsoft sucks and Vendor X is a god. I have issues with all the major vendors and have just decided to vocalize about Microsoft first. I don’t really like picking on Microsoft. I’ve worked with them extensively, have been to Redmond, and have worked and socialized with many of their employees. They have all been excellent. Almost every “geek” I have dealt with at Microsoft has been the type of person I would happily have a beer with, which is the ultimate test for a team. So Microsoft doesn’t suck because of its geeks. The problem sits well north of them.

Stagnation

Microsoft’s biggest problem, and the reason Google is eating their lunch, is that Microsoft has stagnated technically. They make their money on the Windows OS and on Office, but both of these are at a dead end. There is no “must have” reason to upgrade either of these any more, and Microsoft’s solution is to try and lock in their enterprise customers with costly maintenance agreements. Like candle makers at the dawn of the electric revolution, Microsoft is desperately clinging to a dead business model, and rather than innovate and adapt, they will abuse their customers to hold on to a monopoly position.

Complexity

Microsoft has gone to the other extreme with their programming tools, .NET. I consider C# to be the only real .NET language. VB.NET is a joke intended to appease the legacy VB6 code monkeys, and no one with any brains would ever initiate a new project using VB.NET. Managed C++ was to appease the other extreme – hardcore MFC/Win32 programmers. But that is such a specialized group that they didn’t really care about .NET. C# itself is the result of a shotgun wedding between Delphi and Java. Microsoft stole the creator of Turbo Pascal (Anders Hejlsberg) from Borland, who created C#. Rather than play nice with Sun and do something beneficial for their customers, Microsoft chose to fracture the market in an attempt to maintain their platform monopoly.

All this would be water under the bridge if Microsoft didn’t continue the make things worse for developers. C# has morphed from a fairly clean Java clone to an absolute monstrosity of complexity. To give the impression of innovation, they have consistently added everything and the kitchen sink to each revision. Code written in the latest version, .NET 3.5, is simply painful to read if the developer actually tries to use all the features Microsoft has thrown in. LINQ is the perfect example of how to make a language unusable.

Enterprise software developers are not the cream-of-the-crop in the developer food chain. Most are minimally skilled and chose enterprise development to avoid having to deal with rapidly changing technology. The reason there are still VB6 developers is because of enterprises. Given their resistance to change, it makes no sense for Microsoft to keep adding in so much to .NET. The only explanation is that Microsoft is trying to appease their partners. Keeping the platform moving ensures there is huge consulting money to be made in “helping” enterprises keep up.

Resistance

Developers are the key to any software platform, and one area where Microsoft has really let them down is through their resistance to Open Source software. Almost every other non-Microsoft programming language (Java, Perl, Python, Ruby, PHP, etc…) has a thriving Open Source community around it that breeds innovation, increases reuse and creates a “survival of the fittest” mentality around technologies. Microsoft is a ghetto by comparison, an intellectual ghost town. All because Microsoft’s only motivation is ensuring vendor lock-in to protect their platform monopoly. This will be their downfall in the end. Go to an emerging technology conference or visit a major university and take a look at what the next generation of geeks is cutting their teeth on. You’ll see mostly Apple or Linux laptops, with very little Microsoft. Windows will not be the dominate platform for this next generation.

In summary, Microsoft sucks because they choose to suck. Every reason that is holding them back is entirely within their control. They are like the 80-old chain smoker on oxygen, dying of cancer, that can’t quit smoking two packs a day. They know it is killing them, but they choose not to do anything about it.