Is .NET Taking Over the World?

.NET Performance – Steadily Climbing

When Microsoft first released the .NET 1.0 Framework, it was Java with a different name, slightly better performance, and a variety of different syntaxes to go along with it. But all that is changed now. The initial release was closely followed by a 1.1 release (.NET 2003) that focused on code reliability and performance, with minor upgrades to the languages, and two years later with .NET 2.0 – the biggest upgrade since.

Many people still believe the age-old myth about virtual machines running slower, but with .NET 2.0, it has certainly been debunked. .NET applications have integrated MSIL code optimizations and serious performance boosts via the underlying platform. While the overhead of running a virtual machine will never allow it to be as fast as 100% native code with serious effort and focus on optimization, it’s nowhere near as slow as it’s purported to be, and is faster than a standard un-optimized C++ application… But it’s the memory that hurts.

The entire .NET platform is individually loaded into the memory for every application you run, in its own private unshared memory space. But besides the overhead of the .NET Framework being pre-loaded into the memory space, .NET’s automated garbage cleanup far surpasses Java’s in terms of magnitude and “intelligence” and for larger applications can prove to be more efficient in terms of memory handling even with the overhead (stats to follow).

But what matters most is that the people maintaining the engine are the same as those maintaining the operating system. That certainly is true for Microsoft, and quite a few members of the Mono project also develop *nix OS code – but for the open source platforms that isn’t as essential since the code is there for the world to see. But for Windows, it makes a big difference. When Microsoft is the sole maintainer of the .NET platform and is dedicated to keeping it up to scratch, with the same code used in the native applications and the Windows OS itself, it can only mean better and more compatible performance for everyone.

65 thoughts on “Is .NET Taking Over the World?

  1. My first reply was a joke, my second was serious.

    Java is an excellent and more-or-less efficient language. C# is just a bit more excellent in my opinion 🙂

    But seriously, count all .NET jobs for real, take into account the fact that most businesses don’t go with the flow (some still use Cobol!!), and that it takes time for languages as new as C# to gain ground – you’ll realize that job counts do not qualify as a factor for language success.

  2. ” job counts do not qualify as a factor for language success”

    Agreed. But surely that is rather obvious. If a brand new beautiful language came out tomorrow that everybody loved and wanted to write in, job counts would not qualify as a factor for language success for a very long time.

    I take the the implication that your statement is about the future. What happens tomorrow is anyones guess. However, job counts very much qualify as a factor that a language has succeeded in the market.

    Personally, I can’t see that .net has very much going for it over other solutions. Maybe I would be more interested if the source was available and I wasn’t locked into Windows (and don’t bother mentioning Mono, it will always have huge sections of functionality missing and/or out of date).

  3. It’s funny. It’s as usual on neosmart.

     

    There are some guys around who provide facts about Java vs .NET. And then there are MS fanboys who just don’t care about facts.

     

    Give up the fight, if you want to have a reasonable discussion, go somewhere else, you won’t have it on this website 🙁 

  4. Kieron, I agree.

    If Microsoft only released a redistributable (even if closed-source) framework for Linux and OS X, it would certainly become a much more productive venue.

  5. “Java is an excellent and more-or-less efficient language. C# is just a bit more excellent in my opinion :)”

     

    The main problem with Neosmart is that Java folks are attempting a serious debate, backed up with citations (e.g. the performance comparison cited above). Most of the C# folks here are basing assumption upon assumption, based on opinions.

    The whole article that sparked this discussion appears to be based purely on the opinions of the author, which seems to be based MS press releases and marketing. There is no evidence whatsoever of any credible research. It’s not that the article is written badly, it’s actually quite readable, the problem is that it makes many false assumptions about Java.  e.g. Java not being portable. Applications written with Java version 1.0 on Solaris (SPARC) in 1996 work without recompiling on a Windows or Linux system on x86 using Java 6.0 more than ten years later. I can only guess that the author has little interest in Java (his choice), and doesn’t really know much about it.

  6. I was also referring to compability in my previous post, as this was mentioned in the article. Just in case somebody reads my previous post and jumps to the conclusion that I don’t know the difference between portability and compatibility 🙂

  7. I’ve worked on both Java and .Net and have found both to be more or less similar in terms of my general productivity with a couple of notable exceptions:

    .Net thick client development targeted at Windows is of course far more productive on .Net – not surprising.

    Visual Studio is complete crap. Without the Resharper plugin, it’s next to useless especially in terms of refactoring and intention support when compared to Eclipse and InelliJ. Even with Resharper, it still doesn’t quite match the power that the others put at my fingertips.

    ASP.Net is a really annoying way to do web apps for anything which deviates from the ‘normal’ web application. I once had to go through all those auto generated pages stripping out all the HTML and leaving only the ASP tags – then go and rewrite all the HTML and CSS around them by hand. That said, this was on a VS 2003 and I’ll be the first to admit that VS2005 may have improved things.

    Microsoft also has no support for ORM which has been around for years now. You still have to use NHibernate. OSS. Hurray.

    Ultimately, if your application follows the flow that the .Net development environment enforces, you’ve hit the sweet spot and will be productive. But if you need to deviate, god help you, because you simply can’t mix and match portions of the stack like you can in Java.

     

  8. i saw a  lot of java programs and they really look bad.  the UI is dirty and not very enticing to use.  I think the performance difference is not noticeable with the fast computers used by users nowadays.

    i think what we should consider how much you can do with each language.  i test myself and i have created a simple MDI photo-editing program using .net with brush/eraser/color selection/save tool for only 1 and 1/2 hours. is that possible in java? 

  9. I only wish that SUN could sue the pants off Microsoft for taking the idea and concept of using a VM.  I’m glad that SUN open sourced Java.  Doing so will only enhance it even more.  Now, if only wish Mr Gates would give credit where credit’s due, because he sure as hell, didn’t come up with the idea.

  10. “And just for the record, Paint.NET is as powerful as Adobe Photoshop Elements but 4 times as fast? (of course Photoshop Elements is written in Native C++)”

     
    Ahahaha. This tells you how seriously you should take this post.  I like Paint.net but it doesn’t even have soft paintbrushes.

     

    Java and C# (the languages) are 90% the same. One is not massively more productive than the other. Java is slightly faster but not enough to worry about (plenty of people like ruby which is 10-30x slower)

    The Java standard library is significantly better than the .NET one. Windows forms are a bit quicker than Swing but much less full featured as it is basically a thin wrapper on Win32. I don’t know how the Mono implementation is coming along but most Mono developers use gtk bindings instead. There is also the ever-present threat of legal action against Mono by MS.

    90% of Open source libraries for .NET are ports of Java ones e.g. Nant, NUnit, Spring.NET.

    JRuby is significantly better than the .NET Ruby implementations.

  11. Really learn .NET and you?ll see what I mean.

    I work with .NET and Java. If you really learn .NET and compare it with Java objectively, you’ll will see why .NET is a good framework to work with.

    If ASP.NET is annoying, try using JSF. BTW, where does JSF get it’s ‘code behind’ concept from.

    The main point is ‘Do not let Java or you hatred with MS affect your judgment.’

  12. Just stumbled over this article this morning and I’m really amused that nothing has changed between the .net und the java community.

    I work with .net in porfessional und at the university (part time study on software design, so I’ve still some years of proffessional expirience) we use java.

    My personal preference is .net because i like the visual studio ide more than eclipse ide (but there are stille other ide’s for java so don’t hang up on this).

    To take a look at the language features I think c# compared to java is nearly the same (both copy from both and both invent new features). With the next Visual Studio release Oracas und the .net 3.0 (and 3.5 that comes with Orcas) framework microsoft introduces a lot of new things but let time show whether this makes it more popular and even the more important thing to make it better. So for me there is no question that both platforms will be there in the future and both have their right to exist.

    Maybe we should keep a bit more in mind that the platform should support us to get our job done und companys have to decide what’s best for their requirements. And yes of course both platforms are better on differnt requirements (what a suprise!). Nearly no one would use java to create windows client apps (no suprise too). On the other hand very broad band of server applications are written in java (for me no suprise too).

    At least to bring in one fact of the populartiy of programming languages visist http://www.tiobe.com/tpci.htm. Here we see that java with 18% is the clear leader. But what i we also see in the long term trends is that java lost some of there market und “.net languages” gained some market shares. I hope that both plattforms would be the same popular. Competition is good for at least the end user and this in this case is us, the developers.

    So folks it would be really nice to see a bit more harmony between the communities.

  13. Ok, fine, as you guys sang priases that .NET was cool but it’s also true that J2ME is used in most of mobile sets available. Future is Mobile and SUN guys really knew about it.

Leave a Reply

Your email address will not be published.