I enjoy the SmoothSpan blog but I’m not convinced by this article on Microsoft’s rift with the web. Bob Warfield says: Ever since their spat with Sun over Java, Microsoft has been on an increasingly proprietary path called .NET. I am not sure why .NET is "increasingly" proprietary. Why is it more proprietary now than it …
Where's the beef?
The server wars between companies and other interests have never concerned me. I've made enough websites, the right and wrong way, to know that if it works - it works. Because most of these middle-layer protocols are just that, protocols, it doesn't much matter how a protocol is implemented - just that it's implemented.
I have no love for .NET simply because it's closed enough to bother my conscience and my workflow. During my ten years of web development experience, I've had to code in a multitude of languages, and prefer Open Source languages for their published benefits and my private concern to support languages which support standards; Microsoft doesn't, period.
But not liking .NET doesn't mean I am bothered by it's existence. Frankly, I wish I'd knew .NET confidently, because it would mean turning down fewer jobs. And in the end, being able to do the work and serve the client is what matters to all, not how it gets done.
Thankyou for pointing out misinformation
Thankyou for your response to the SmoothSpan article. Its nice to see such a level headed response.
The one thing which both your response and the original article failed to note was that Java is not equivalent to .NET - that is, .NET is a framework and JAVA is a language. A more reasonable comparison would be to compare JVMs to .NET or Java directly with C# - which are so linguistically close that any halfwit developer can concurrently develop across the platforms.
Futher to this point, both the JVM (Sun and other flavours) and the .NET framework (including Mono et al) support multiple languages - not just C# or Java - in fact Grasshopper supports C# and VB.Net as languages which run on the JVM whilst Iron Python runs Python on .NET framework! You can get Ruby compilers for both JVM and .NET framework... Its a non-issue and purely a matter of preference as to syntactic sugar and verbosity more than anything else.
Choosing a platform is more about integration strategies and third party vendor preferences / requirements than language choice! Being informed and choosing the right tools for the job will have a better chance of bringing success every time than being a childish fanboy. That just makes for a diminished view of the world. Take a look at the development lifecycle of the jUnit and nUnit projects for example - there was a cross pollination of ideas which came back to the jUnit framework after the nUnit framework was rewritten at version 2 to start using method attributes (akin to Java annotations) instead of the older jUnit naming convention strategy. As soon as the JVM in Java 5 supported annotations, this concept moved back to the jUnit version 4 codebase.
The sweeping statement about "loss of community" was just as absurd where the .Net framework is much less mature than Java in terms of age yet its penetration in sheer developer uptake has been staggering if you compare it to the historic uptake of Java at a similar age. He also failed to give ANY stat to back up that statement about community.
Further to this, you're right - his stats gathering overall is lazy - and its just a single dimension of stats, so they can be manipulated whichever way you want... maybe Google is being pounded by Java developers because of any other number of factors - complexity of deployment maybe? I know how much time we have spent configuring a good sized J2EE application to run correctly. Certainly not as trivial as deployment of a .Net app garden - yet, of course, its a different tool for a different job.
Finally, the stats about starting up companies on .Net are just plain old nuts - how many VCs did he interview to come up with that?
Sounds like uninformed opinion to me...
Lock in and .NET
.net was an attempt by Microsoft to counter java and the internet. Mono is an irrelevance - I have never seen a non-windows pc running a .net app. Microsoft attempted to split the market with .net, and no one cares - we don't need another java.
It's not surprising there has been growth in C# - when microsoft has a monopoly on the desktop market, people are going to develop .net apps. What's more interesting to me is what is happening to VSTO, the supposed replacement to Excel macros (it's dead, Tim). If you want to measure just how proprietary the .net framework is, try to find out how COM interop works. They have replaced a documented interface layer (COM) with a pile of caca.
I don't disagree that that c# is not a bad language. But let's face it, no serious programmer wants to be shackled to Microsoft's changing fashions. And I'd hate to see the kind of code that vba-turned-c# devs are churning out. But then Microsoft claimed vb was an Object Oriented language too.
> try to find out how COM interop works.
Ha! you need Adam Nathan's book .NET and COM, only 1500pp. I've been there...
Re: Lock in and .NET
>> I have never seen a non-windows pc running a .net app
I have. Thus your entire argument, for want of a better word, is refuted. You may go.
More followup at Smoothspan
Worthwhile readong the whole diatribe - it takes a while to get where Bob is coming from but eventually it starts to make a little sense. It doesn't really change my POV on Googlestatting to make a point, but it does clarify the whole thing.