I was reading through a Blog article written by Glyn Moody .
This talks about the interview with Richard Stallman and talks about the Microsoft’s patents , Open Source Implementations ( Mono , DotGNU’s-Portable.NET) .
I thought i put across my views on few points that were mentioned in the blog post .This one has nothing to do with the comparison of .NET with other languages
So , Here’s my views .
Richard Stallman mentioned that – “But as part of Microsoft’s general loss of leadership, .NET never took off in the way that some feared.”
.NET never took off ????? That seems like a small Joke 🙂
Most of the Microsoft Developers would already be knowing the amount of growth .NET had from its initial launch .
.NET is just around for 8+ Years and see the amount of efforts being put in to it to reach the C# 4.0 version with the Visual Studio 2010.
“You shouldn’t write software to use .NET. No exceptions.”
Was that meant for the OpenSource Implementation ( Mono ) or for .NET .
The amount of time taken to develop an Application in .NET is much lesser than any other languages . I understand that Mono / Opensource implementation is free both price as well as sourcecode , but will one get the same flexibility and features like the Microsoft’s .NET .??
The rest of the article seems to talk about the patents / Opensource and looks great though.
8 Comments
I tend to agree with the fact that .NET never really took off way M$ intended it. How do I say that?
1. By the time .NET was out, javaEE had peaked out. Major corporations had already invested millions of dollars in javaEE stacks. Adoption is definitely a yardstick by which to measure a technology’s success… corporations started to consider .NET as a viable alternative only after .NET 2 had come out (which was over 5+ years after .NET 1.1 was released)
2. A good indicator of the maturity of a technology would be the street time and number of stable released versions – .NET is still nearing v4, while Java is nearing v8. Lot of catching up to do for .NET
3. Development in .NET is a breeze? The dev times for real world enterprise apps that are scalable and available takes pretty much the same time. I will go one step further and say that with a large number of open source frameworks already available in the java microcosm, I suspect if .NET dev will be even close to the doing the same work on a java stack. But then, if the sole purpose is to create winforms then .NET kicks ass!
Just my 2 cents from over 8 years of working on Java and .NET
Hi Siddharth ,
Nice to see your reply 🙂 .
Good points .
You mentioned that Lot of catching up to do for .NET .. and thats what MS has been doing and i feel they are in the right track too .
What about Mono ?? Do u prefer Mono Opensource over Microsoft’s .NET ??
Hi Siddharth
Street time or No. of releases is not the best yardstick for measuring the maturity or stability – unless both the technologies started out at the same time.
besides adaptability, there isn’t a huge difference in the capabilities of either platforms. it depends which technology the enterprise has already invested in.
If its a java house, why would they want to invest in .NET unless there is something Java is missing? and vice-versa.
and yes, .NET development is a breeze if you know what you are doing! (guess you may say the same about java)
Just my 2 cents. .net developer for 5 yrs 😉
Kalyan
Unless you know what “M$” intended, how can you say that it didn’t take off like they wanted?
Surely adoption, reliability and maintenance are ways to measure a technology’s success? If I release a piece of software that is widely adopted but buggy as hell and breaks constantly, I wouldn’t consider it a success…
Version numbers are a completely baseless comparison. If they had exactly the same features & roadmap, then it would mean something. A piece of software at version 1 can have more features than a piece at version 3.
“You shouldn’t write software to use .NET. No exceptions.”
If people want to use Mono to program C# for Linux, what’s the issue? It’s free, it’s cross platform and if it’s what you know, use and love then why should you not program in it? “Because it’s Microsoft” is not a valid reason.
Besides, if it gets more people using and developing apps for Linux then it’s happy days!
hi Siddharth
Could you pls be more specific on what aspects .Net v4 needs to catchup with Java v8? – not being sarcastic just wanted a few pointers 🙂
in my opinion, which stack one chooses depends on familiarity, availability of resources and existing investment if any.
and Yes, development in .NET is a breeze – if one knows what they are doing. I am sure Java has similar options but hey can’t beat VS!
have virtually no java experience so open to your views.
Kalyan
Although I may or may not agree with Stallman, his point is quite different. Its not whether or not .NET is any good, its about the potential locks IF your business depends on the fact that .NET is multiplatform (hey, there is Mono).
If your business is depending on multiplatform viability, then if in the future Microsoft decides to well, sue everyone who is using Mono due to patent rights, well though. Because MS own the patents, and because they do not indemnify those who are using Mono (why should they), then your business totally depended on MS mercy, at least in this case.
And if you know Stallman, he always try to prevent possible lock down that may effect open sources. He is quite overzealous, even Linus don’t agree with him entirely (see GPL v3 debacle). I’m with Linus in most of the case.
@Siddharth,
.NET v 1.1 was release 3-Apr-2003; v2.0 was release 22-Jan-2006. That’s actually less than three years.
Further, Java is preparing to release version 7 now, not version 8 — and it got to that high a version number by skipping from 1.4 to 5. And the new features of version 7 are pretty much just catch up to things add in version 3 & 4 of .NET (lambdas, closures, dymanic language support) https://en.wikipedia.org/wiki/Java_version_history#Java_SE_7.0). Basically, Java has had 8 major releases in 16 years, while .NET has had 6 in 8 years. .NET is moving much faster.
Folks, it took me a long time and an accidentally spammed e-mail to get me back to checking this post. So, apologies about the delay.
@Senthil: The choice of picking .NET does not come naturally to me. The only reason I’d pick .NETMonoDotGNU as a stack to build on would be if there was an external compulsion to do so. For instance, if I were to build a WPF app or if an end-user of the productservice was locked into the technology 🙂
@Kalyan: I beg to differ. Street time does have bearing on a technology simply because of the fact that modern technologies thrive around user communities and feedback. Simply put, the longer the technology has been around, the better the people get to know it, use it, and make recommendations about what they think should be improved, added or simply dinged. That feedback quite literally translates to a new release of some sort. That is what I meant when I spoke of street time. As for the maturity of the technology, there is a direct correlation between the number of releases and maturity, because, feedback alone is not always the reason to make a new release – it is also determined by internal engineering considerations such as performance, interoperability and the likes. So technically, what I’m saying is that more releases translates to more maturity.
@Andrew: You have a valid point in that the success of .NET could be best measured against Microsoft’s intentions for releasing it. Having said that, here’s what I think: the release of .NET came about as a logical bridge between VB6VC++ and the rapid strides other technologies (predominantly Java) were making in the pre internet boom. However, by the time .NET was out, a large part of the internet app dev pie belonged to other technologies and .NET was more of a strategic initiative to keep late adopters from moving to another technology. MS surely had some uique features that Java lacked, but then, I’d assume any new entrant in the market has got to have key differentiators to capture its share of users.
Your argument about buggy releases versus stable ones might be valid. I’m not sure if initial Java releases were buggy, but that would be a reasonable assumption to make given that Sun was working on the very fringe of the internet technology. Any new development takes time to mature. However, it might be interesting to note that while Java has matured since its initial releases, .NET development piggy backed on a huge collective learning effort of the engineering community, users and technology providers. I’d be more comfortable if both of these technologies were developed in the same time frame if I were to be fair to Sun 🙂
@James: Sure .NET made some awesome progress in a short time – no doubt about that. But that does not preclude the fact that many technology providers contributed to a large community knowledge base much before NET came along. Obviously, a smarter and more knowledgable userbase has more demands from a technology causing it to adapt frequently with newer, better releases. Hypotetically speaking, would the NET releases be just as frequent and mature had it not been for the ground work laid by Java? I’m not sure of the answer but I surely think that end-user awareness most certainly has a strong correlation with it and a large part of that awareness was built by companies such as Sun way before MS.
As for the number of versions: you’re right JavaSE 7 is the next release candidate. I was already working on the 7 beta at the time of my initial post and made the mistake of assuming it was an official release. That being said, the argument that Sun got from version 1.4 to 5.0 does not in imply that Java7 would not be the 7th release. In fact, on the contrary to what you are suggesting, Java did indeed go though 6 version releases – it’s just that their version numbering scheme changed.