Is Microsoft .Net behind the curve with respect to leading the industry with in Innovative new solutions? Let’s take a look Microsoft’s golden boy, .Net. When you think about it, the main technical force driving the .Net initiative (besides the countless man-hours worth of marketing material) is the .Net virtual machine.
One of the big advantages of a virtual machine approach is that it frees developers from the memory management issues that have doomed many a C++ application. Of course, you get other benefits like improved runtime type-checking but memory management has to be greatest advantage for the unwashed VB-developing masses.
The .Net virtual machine handles one specific issue that has always trouble me about the COM, namely that it’s the client’s responsibility to invoke Release(). Since the VM memory manager does its own reference counting, you don’t have to worry about client applications forgetting to make that call (or making that call too many times!).
Of course, with interpreted programs, you sacrifice a certain level of performance, but for complex non-real-time applications you can usually afford the penalty. This is especially true of prototype applications and/or applications that are developed by virtual teams. Proper management of memory allocated on the heap can be art form, and if your teammates aren’t artists – or at least vigilant about documenting their code – you can find yourself with those subtle memory leaks that somehow never show up in the test lab, but always rear their ugly head at the client site.
Were I’m going with all of this is that Microsoft is really about 4 years behind the curve with respect to rolling out its own VM. If you consider Java’s birth to be circa 1996 and .Net around 2000, that’s about four years lag time. Granted, they have had the benefit of learning from Java’s mistakes, and even had their own JVM implementation to play around with, but even if those benefits cut the dev-time in half, that’s still about 2 years. This is an eternity in the IT industry.
So is Microsoft behind the curve? Probably. Will .Net succeed anyway? Probably. But at least most of the Just-In-Time compilation bashing is gone forever.