views:

313

answers:

5

Hi all, I always here that Java being open-source is a big benefit, but I fail to see how Java being open-source should draw me to use it as opposed to .NET which is closed-source. This website has some Q&A sections (What is the significance of these developments to the industry? in particular) that give a little info, but is being free the only (or the biggest) advantage to Java being open-source?

Since I am a beginner, have any of you pros noticed any major difference since the change was made?

EDIT:

Please disregard the .NET part of this question, I was simply using it as a comparison. What I really care about is knowing what benefit becoming open-source has been to Java.

+1  A: 

Java and .Net are both standards for which anyone can write an open-source implementation. .Net 3.0 just happens to have no complete open-source implementations.

Regardless of openness, the difference for you (and the reason many people choose Java at all) is portability. There are far more implementations of Java, and most are closed.

Java can create apps for cell phones. Java can create web apps. Java runs on Mac. Not .Net.

Sun is just advertising the simplification and standardization which a common open-source core may provide. But if you look closely at the page you linked, you'll see that it's using the future tense.

Potatoswatter
Isn't Mono open-source, not to mention on a different OS besides Windows?
johnc
"The implementation of Java which you or your users actually use isn't necessarily open-source. " Good point. The Mac JVM certainly is not (even though it is supposedly mostly based on Sun's code)
Thilo
@Potatocorn: Even the portability argument is getting moot. Several Gnome apps use Mono now. How many Java applications do you see included in Linux distributions?
Martinho Fernandes
-1 for .net having only one platform.
kibibu
@Kibibu: I edited that out before you downvoted me.
Potatoswatter
@Martinho: How many .net apps have you seen for cellphones?
Potatoswatter
Mono is a *complete* implementation of .NET 2.0 (source: http://www.mono-project.com/Compatibility).
Martinho Fernandes
@Potatocorn: ok, removed
kibibu
+4  A: 

Not entirely fair to say .NET is closed source - Microsoft's .NET runtime and development tools are closed-source.

Mono is an open-source implementation of many things in the .NET world - the CLR and C# being the biggest.

mmsmatt
.NET is a Microsoft product though, Mono is not. That is like calling a Ford (closed-source) a Chevy (open-source) just because you change the emblem.
typoknig
@mmsmatt: sure, but you never know for how long it's going to stay 'open'. Miguel de Icaza, the biggest .Net 'believer' has very bad thing to say about this SNAFU recently: http://www.itwire.com/opinion-and-analysis/open-sauce/37880-microsoft-has-shot-net-ecosystem-in-foot-de-icaza I'd be very cautious when it comes to trusting a company that has consistently played dirty and that has been ruled to have abused its monopoly to conserve and extend its monopoly (that's the final verdict) to provide something 'open' and to play nice. Even de Icaza realizes this now. Took him years that said ;)
Webinator
+5  A: 

If you are a mainstream user, there is probably no immediate benefit for you.

However, the open-source base of Java makes it easier for people to adapt it to more niche requirements that the closed-source vendor sees no need to support. Smaller vendors (or open source projects) can come up with solutions to these special needs.

For example, Java runs on a great variety of platforms and operating systems, most of them supported by companies other than Sun (granted, that was the case even before it was open source).

have any of you pros noticed any major difference since the change was made

I like the fact that Linux distributions now include the "official" Sun JVM and JDK, rather than making you install it separately or use the "mostly-compatible" alternative implementation that was provided.

Thilo
"I like the fact that Linux distributions now include the "official" Sun JVM and JDK, rather than making you install it separately or use the "mostly-compatible" alternative implementation that was provided." Thank you, this is the kind of info I am looking for. Something about Java being open-source that has actually been a benefit to the platform. Do you have a link to any literature on this subject?
typoknig
+2  A: 

The primary implementation of .NET is closed source, though there are competing open-source implementations.

The primary implementation of JVM is open source, though there are competing closed-source implementations.

The standard for Java remains entirely under control of Sun (Oracle). Others are allowed to provide input, but final decisions are up to Sun.

The standard for CLR is entirely under control of the ECMA and ISO. Microsoft is allowed to provide input, but the final decision is up to the standards bodies. If Microsoft did ignore their decision, it's open to question whether the standard would remain relevant.

Jerry Coffin
+1  A: 

Opening up the JVM source helps in porting it to other architectures such as ARM for embedded use.

whatnick