Is .NET Taking Over the World?

.NET Powered Revolution

So what makes .NET better than Java? After all, Java can do all that.. can’t it?

As a matter of fact, it can’t. Microsoft’s .NET surpassed Java in power, usability, and functionality long ago, and here’s why.

  • The Engine Takes Care of Everything

    Everyone knows Java’s motto: “Write once, test everywhere.” Microsoft promised their own .NET Framework wouldn’t fall into that trap. As such, Microsoft (and the Mono developers for Linux/Mac) take it on themselves to provide true 100% cross-compatibility for any and all code. As a dev, your job is to write the code, and Microsoft’s job is to make sure it runs. That simple.
  • Technology at the Fingertips

    Technology changes at break-neck speeds, and if you don’t keep up with it, you’ll certainly fall off the band-wagon faster than you can say ‘Ow!’ But with .NET you needn’t worry about code-compatibility. If there’s an update to the network stack code & libraries, you don’t have to edit your code. Ever. The engine dynamically updates your MSIL compiled code to use the latest and greatest available technologies at no cost to your code.
  • Stable Coding Platform

    .NET provides a stable coding platform no matter what system you’re writing for. The best example is Windows Vista – native code broke left and right because Vista wasn’t ready and its libraries were constantly changing, but applications written in .NET 2.0 were right-on and never failed (the logic of .NET for our own EasyBCD was along the same lines).
  • Backwards Compatibility

    New technology is always streaming in, and sometimes you just can’t teach an old dog new tricks – but with .NET you don’t have to. WinFX – the bleeding edge display and backend code framework taken straight from Windows Vista will run on Vista, XP, 2k, all the way back to Windows 98. As you go down the chain, the complexity of getting that new technology going only grows, but you don’t have to worry about it.

But these arguments aren’t new, far from it – these were used ever since the creation of the Virtual Machine, but something makes them stand out with Microsoft.

What makes .NET Framework so different from the traditional Microsoft application development model is that they’re not afraid to innovate. With Microsoft pushing dynamic language support, it is obvious that they’re willing to push .NET to the extreme, something that Sun Microsystems refused to do with Java and as such it quickly became an outdated bit of code, which just doesn’t cut it for most.

But support for dynamic languages doesn’t make a platform perfect nor is it the ultimate symptom of innovation. What makes .NET work is the fact that it is directly integrated with the operating system, especially Windows. It means that you are running native applications straight from the official binaries with close to no middle-men along the way. But the next section deals with that more.

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.