Tuesday, February 5, 2008 12:19 PM
Ruby.NET death brings up the topic again, Microsoft, ALT, OSS, ...
Few hours ago, Michael Schwarz, the creator of AJAX.NET Professional (A.KA. AJAXPro), the most successful AJAX framework for ASP.NET after Microsoft's ASP.NET AJAX Framework (A.K.A., ATLAS) has stated that he'll no longer be working on the project. Furthermore, he even recommended users to move to Microsoft's AJAX Framework instead!! The reasons Michael mentioned why he will stop the project used by 13.3% of ASP.NET developers doing AJAX work include the fact that ASP.NET AJAX is part of ASP.NET 3.5 itself, and that he believes future innovation on the client side will be in other areas not just AJAX.
I haven't used AJAXPro in production myself, but I used to provide support for few other friends who did, and it was really a neat piece of software. The ability to have wrappers for YUI and other pure client libraries impressed me, but I never used it on production stuff for one reason. I expected this moment to come !!
This brings me to the same thing I used to worry about myself and later was a major concern when I started getting slightly involved in ALT.NET movement. The old quote says "You never lose your job because you chose Microsoft", and that's usually true. AJAXPro story has always been weird to me. I kept wondering when will the story keep like this, good implementation from Microsoft, and another very interesting implementation from the outside, besides few more working implementations. It's not just about AJAXPro, but is a general issue.
Don't get me wrong. I believe that AJAXPro was one GREAT reason behind the current quality of ASP.NET AJAX (plus other additions, like having briliant guys working on it, especially Nikhil). Same as I believe that Castle's MVC framework named MonoRail was one of the teachers for ASP.NET MVC and both appeared simply because RubyOnRails was a great MVC framework that made most people suddenly value MVC and surprisingly some people even hate webforms as if it was found by the devil (I wrote about it before in the context of other areas like D)I. Even more examples are NUnit and VSTS Tester features. But what then ??
VSTS never killed NUnit and I don't will. Instead, NUnit is not the only testing framework, there's also MbUnit later and even XUnit recently. On the other hand, AJAXPro is now over. More interesting stories are Subsonic and BLINQ. Now the founder of Subsonic works for Microsoft and Subsonic itself is gaining excellent popularity because it's 100% FREE while LLBLGen (the best ORM for .NET in my opinion) and .NETTiers (while requires buying CodeSmith), and is even competing with other FREE options like NHibernate and Microsoft's own FREE ORM, LINQ2SQL. Once Subsonic started (and it was called ActionPack as for ActionPack of RubyOnRails) I blogged that we don't really need something competitive to BLINQ, and I said it's waste of effort (because of the old quote). Now BLINQ itself is likely dead, never heard of it or Managed JScript for long. Anyway, at this time the timing was the factor, if Subsonic appeared before BLINQ, it'd make sense, but that it appears while BLINQ was in development instead of working with BLINQ and LINQ2SQL and providing lots of ideas, feedbacks and even toolkits for better jobs, it didn't look right. If you think this is 100% against ALT.NET mentality, you haven't got my point yet.
The point is, such frameworks and alternative tools are so important for us as developers. They are the true reason behind the quality of Microsoft frameworks. If there's an area where there should be a framework or a tool, and nobody for the competitive platforms has considered creating one, and even more no one in the .NET world has tried creating one, Microsoft will almost never bother creating it's own. Even if they do, the fact that they have no competitor and/or teacher will make their result a really crappy one, which is normal for anyone working from scratch (no previous experiences in the world) with market dominance (completely no competition), not just for Microsoft. Don't get me wrong on "learning" too. I heard Microsoft guys are not allowed to read other's code for legal issues, but at least learn from feature sets and high level architectures shared among many bloggers!
So, clearly, if you are going for stability, it's Microsoft. If you looking for feature set and quicker results it's ALTernatives (speaking inside the domain of .NET Framework), because Microsoft always comes late, and they will ever do. Again, it's not about Microsoft specifically. The other quote says "If you are fat, you can't run". Once Microsoft gets it, in most situations they do it best, but after so long time. This means sooner or later you have to switch back to Microsoft, and maybe I'm the one who's too lazy here or so, but this fact that "you have to switch sometime" really annoys me, but this is how it goes.
Let's see some examples: now ASP.NET MVC is expected to kill Monorail. What Monorail thought of as I read was to be some framework that works around ASP.NET MVC and work with it not compete with it. Also, ASP.NET AJAX is getting mature enough to compete with other .NET AJAX framework like AJAX.NET Professional and this simply killed the other framework; while ASP.NET AJAX is still way behind when compared to pure client frameworks whether older like script.aculo.us or newer like jQuery. The fact it's the best for webforms means that people working with webforms will always use it, while others working with Monorail or AS.NET MVC itself will probably go for jQuery or so. VSTS is now in it's 2nd version still (VSTS 2005, VSTS 2008) and this is very early for it's testing features to affect other testing frameworks especially when you consider the huge price difference (FREE vs. thousands of dollars). The old, not always outdated quote says "Microsoft releases a great working product, starting with version 3". Subsonic is now pushed by Microsoft while they still push Linq2SQL powerfully, but again, this is "now", how about later ?? Remember (or add to your information) than until today other player in the ORM ground like LLBLGen is even better than LINQ2SQL itself that it for example has a very sophisticated designer studio and more importantly has more support for prefeteching loading with least queries) related entities at the same time, and this something big. The next version will even provide LINQ syntax which makes the difference smaller, but again, it's quite way expensive. It'd make more sense to me than the current mess if the guy behind LLBLGen and the guy behind APAXPRo both simply joined Microsoft and their work was acquired. That they continue working on the same stuff but under Microsoft's umbrella without ugly huge corporate restrictions and complete freedom, sort of similar to the guys working on ASP.NET MVC. But we do not work in an ideal world !!
So, we'll still living in the same miss. Microsoft only is a very limited painful yet guaranteed option, ALT option is the total amazement and innovation but can simply disappear in a moment.
Happy mess, geeks :D :D :D
Bringing up the topic again. I have many talks about it in private chats, etc, and I put it here again mainly as I'm wondering what others might have to say about it here.