With a recent article stating that Sun is looking to open source Java and have it ship with Linux, I thought I might take a look at how open source Java might affect the open source development world. People like to focus on the doom and gloom when these kinds of “announcements” are made, but the fact of the matter is this: open sourcing Java will have zero effect on Mono.
The reason is mainly due to the languages. They are different and different people use them for different reasons. Mono is great for Windows .Net developers looking to get into Linux development. There is very little syntax differences between working on the .Net framework versus working with Mono (there are some differences as some libraries are not completely finished). But for the most part you can take C# code from Windows and compile it flawlessly under Mono’s compiler.
Java is meant for true cross platform development. It defiitely has the goal of “write code once” and have it run on any system. This is due to the way the Java runtime is designed. Java code runs on top of a Java “virtual machine” (not like VmWare). The code can be written once and run on multiple platforms because the engine that runs Java code is the same no matter what system you are on.
Basically, the people who code on top of the Java stack do so for a reason, and the people that code .Net do so for their own reasons. Both serve a distinct purpose in the development world and one is not really “better” than the other. I say “.Net” but you can insert Mono because Mono is meant to be a .Net runtime for Linux. You see, no one that develops using Mono is going to jump ship for Java just because it’s now open source. Also, the fact you have a ton of .Net developers in the Windows world means that there will always be a need for Mono.
So no, the open sourcing of Java will not threaten Mono.