Thursday, April 12, 2012

.Net vs. Java ?!?!


As most of programmers and developers looking to know what are the differences between .NET & JAVA. I was looking to find which one is better & WHY???!!
I read a lot of articles and discussions talking about this interesting issue, which most of JAVA, .Net programmers and fresh graduate programmers looking also.
So, I will take this initiative to starting this comparison here...

It will be as a reference for me, and I will add any new feedbacks, opinions, point of views from other experts. I will be happy to see if this discussion in the future has a lot of opinions and inputs from persons that have experience in both Java & .Net.

As I have a good experience in JAVA and a little .Net technology experience, I always have this opinion:
"If you have to choose between both, go with Server-Side as Java, and GUI/Client side as .NET".
I've been using JAVA for like 5 years. I love it. But if necessary I can and should switch to any other technology if necessary.
Hint:
Before any details, I would like to say that .Net is a framework and Java is a programming language, so this discussion talking about full technology not only programming language and not only framework.
Now, let's discuss this issue in more details, it is a huge, has many respects and criteria that should mention and know:
  1. Market: Sometimes market affects when the majority of market prefers .NET you can't force clients to buy Java Software or vice versa.
  2. Company: Company policies and the product that company has experience with affects also. for example one company uses both Java and .Net in one integrated system, but other company uses JAVA because they have their own product.
  3. Cost: .NET is a framework you can download it from web, you can develop .NET application using mono under ubuntu-linux, but if we mean the Environment so IBM WebSphere and Oracle Fusion middle ware are more expensive than .NET.
  4. Cross platform: Both are cross platform. Java is cross-platform, and ASP.Net has always been cross-platform on the client end, with the advent of Silverlight (Mono). but I don't think it's a good idea to invest in a technology already declared to be obsolete. Some people say: "Mono is not supported anymore as of few months ago. It was promising idea, but budget cuts made the developers be re-assigned" and it ain't stable enough
... & a lot of things that hope to mention later...

Conclusion:
I conclude that strictly favoring one technology without thoroughly exploring others is a sign of immaturity as a developer. That said, it seems clear that I should explore other technology in more detail. There is no such thing as a bad platform, just platforms that are unfit for certain circumstances.