Java vs .Net
The argument of .NET vs Java has been around for a long time and there’s no clear cut winner. Both are valid development environments, with pros and cons to both. Here are 4 links to balanced articles on .NET vs Java:
Article 1
Article 2
Article 3
Article 4
From “There’s More to Java vs .Net Than Technology”, I found some interesting excerpts:
According to Gartner analyst Mark Driver, that’s the reality—most large organizations are using both platforms. In fact, he rarely encounters a company running only one. And although he sees plenty of momentum right now around .NET, Driver says that’s simply because it’s a newer platform. “There’s a lot of hype around it,” he says, while Java isn’t as exciting because it’s no longer new. The Java programming language has been around for about 10 years; Sun first introduced J2EE in mid-1999 as a platform-independent, Java-centric environment. Microsoft, in turn, announced .NET in 2000 as a major new platform and infrastructure strategy for the company.
Given that large corporations need to keep both environments strengthens the fact that it is based on requirements. We believe for the LMMS current and future requirements, Java is the best fit for us. A common theme in all articles is that if you’re looking for a portable and robust solution, Java would be the one to go with.
Another interesting point from this article is from the cost prospective:
His advice includes carefully considering the product development lifecycle. If you’re looking at a three to five-year lifecycle, he says, where time to market is dominant, .NET might be a better choice, other things being equal. That’s because in shorter development cycles in which upfront costs are dominant, Microsoft can be a plus. “For ease of use and produce-ability, Visual Studio is a very, very nice development environment.” Although there are no absolutes, he emphasizes, Visual Studio can mean that .NET is a faster and cheaper choice for shorter development cycles. On the other side are the larger costs and longer development time of a five- to 10-year lifecycle, or projects with more than 500 concurrent users and heavier legacy integration features. In those cases, Driver says, consider the additional flexibility of being able to change course over time with less impact. That points to a Java platform, because “I can switch middleware and I can switch tools, not at zero cost, but at less cost.
This is a comforting fact for us given the potential scale of the project and the ever changing requirements for humanitarian aid work out in the field.
Another key question to the .NET vs Java argument is the availability of programmers, especially on the Java side. This has changed in recent times. Given that when I went to University, the majority of classes used Java, open source projects and tools, it’s no surprise that the numbers have balanced out. The comment that I pay special notice to is in regards to skill level, where the higher the skill level, the more balanced the availability of programmers from both sides are.
Who you can find also depends, of course, on what skill level you’re looking for.
At Number Six, Lyons says, the company needs high-end, sophisticated developers for both platforms. “At that level, I can’t say that there’s any difference,” Lyons says, “either in salary or in ease of finding [candidates].” If you’re just beginning a .NET project, Lyons says, “you might find people on the Visual Basic side, but [they’re] not really enterprise designers.”
And I definitely like the way this article ends, because it not only helps reassure that using one of the two platforms is not a cause for a concern, but being that they have to compete only makes these development platforms stronger.
“For ease of use and produce-ability, Visual Studio is a very, very nice development environment.”
I can’t resist reacting to this type of comment. I happened to have used Visual Studio and other IDE’s for Java such as Eclipse, and speaking from my own experience, Visual Studio is far from being a productive environment compared to the Java ones, and you have to pay a pretty price for it too while the Java tools are free. To get Visual Studio to a comparable level of richness, one would need to buy third party plug-ins such as ReSharper to make up for VS’s shortcomings.
Take this from a developer who has actually done significant work in both .NET and Java: It would have taken me longer to write LMMS in the .NET environment and the resulting code base would have been larger and less flexible. This is not about the language at all. Both Java and C# are very productive languages to develop in. The difference is due to the development environments and the frameworks.