Why I like working with Java more than .NET

For many years I enjoyed working on the Windows platform writing applications in C++, Win32, MFC and ATL/WTL. I was not an early Java adopter. I had taken a Java course but continued to work in C++. More and more of my friends had made the switch to Java and told me how much they liked it.

In 2002 I started programming in Java. In 2005 I took a course on C# and .NET as well as doing my own learning. I only got a little hands on experience with it because I was doing to much management.

There are many things about C# that I like more than Java:

  • The verbatim strings: @”string that can span lines”
  • Unsigned integers
  • Structs for defining your own value types
  • How types are unified so that value types can be used as objects (Boxing and Unboxing). Yes, Java has this now but the C# way seems more unified.
  • The namespace concept is a little better than packages.
  • Properties
  • Delegates and events

I can take or leave the C# preprocessor. I’m not too fond of attributes or annotations. They have their uses (and abuses) I just haven’t had a strong need for them. I didn’t work with the .NET library enough to say if I like it better than Java. I don’t like ASP.NET because it doesn’t seem as flexible as the Java layering of Servlets and JSP. I could be wrong about that.

The reason I like Java better, and it out weights all of C#’s advantages, is the perceived attitude of the Java community. When I look around at what is going on in the Java community I see many people working on all kinds of interesting things. There is an attitude of “Hey that would be cool, I’ll build it”. When I look around at the .NET community I get the sense that people are waiting around for Microsoft to provide all the infrastructure.

I know this is a gross generalization. I’m sure there are people doing interesting things with .NET and more importantly people who are happy to be working with .NET. This is just how I perceive things. As a data point there are about 5,000 C# projects on SourceForge and 23,000 Java projects. This could be because Java has been around longer or perhaps SourceForge is not the place to look for .NET projects.

4 thoughts on “Why I like working with Java more than .NET”

  1. Thanks Ian, Fertility is an interesting way to think about it. I hadn’t thought of applying that word. As you say there are advantages and disadvantages.

    Java IDEs are another good example of this. Many choices fragmented the market changing jobs could mean having a new IDE forced on you. It seems like things are settling down on that front at least with most people using Eclipse but there are still choices. With .NET there is just Visual Studio, no choices, so everyone learns it well. The trouble is that there is also no competition so it is far behind Eclipse in terms of features.

    For me the tradeoff is worth it. I’m fine with many competing choices if it means there is greater chance of me doing some interesting work.

    As for “true” open-source languages – who knows, perhaps I will jump on the next band wagon.

  2. Agreed. The Java/Eclipse world seems to be moving much faster than .Net. Although in the dimension of “fertile communities”, Java is midway; true open-source languages like Python, Ruby are moving much faster.

    I was going to say that fertility is itself a problem because you end up with multiple competing libraries. Want a Java web framework? There are dozens! It Balkanizes the community and often leads to people jumping on the latest shiny thing.

    But Microsoft has the same problem. Internally there are 30,000 programmers working away, and most problems have been solved multiple times. Want inter-process communication? Well there are pipes, mailboxes, sockets, MFC sockets, .Net remoting, and now Windows Communication Frameworks.

  3. I am a C# user, I like the language, the framework but I think u r absolutely right. Most .net users try to conform to what MS is proposing (ASP.NET Page framework for example) rather then evaluating open source frameworks. MS is not trying to promote existing open source projects but to create versions of its own.

    I can see this attitude from the management when they hear something that involves abandoning the MS way of doing things…

Comments are closed.