views:

290

answers:

7

C# is owned by Microsoft and Java is owned by Sun/Oracle. What dangers does that really expose to the users of these languages? Has anyone felt their code was "owned"? Do projects like Mono help keep the "owners" honest?

Please do not make this a holy war of languages. I just want to know if it's rational to avoid such languages or if that's just paranoia. An interview with the inventor of C++ got me thinking, but I also want to balance his thoughts with the thoughts of the community as a whole.

+4  A: 

No such danger for C# language. It is an ISO standard. Formally it is owned by a committee. But Java is a trademark

RocketSurgeon
Even if Java is a trademark, near 100% of Java is free and open source under openjdk. So no such danger for Java as well.
Marcelo Morales
+5  A: 

Java is not "Owned", it is open source. If you find a bug in it that you absolutely cannot deal with, you CAN fix it. (There are both open source and closed source implementations, however)

I don't know if you can get the source code to C#, but since Mono copied it there IS an open source for that as well.

I don't know if there is a second source for the .net libraries.

As for the actual "Dangers" (Which was your real question, after all), it would be that the company decides not to release updates any longer--if they do, will the language wither and die or will it take off on it's own? Java is in the process of transition from one of these states to another. Sorry, don't know about C#.

There is also the (Perceived) danger I mentioned earlier about--can you fix it if you hundred-million dollar company absolutely needs it fixed in order to continue.

This was a more significant problem twenty years ago, these days the fact is that if it's a good stable language, this isn't something you ever need to worry about.

Bill K
More precisely, Mono _implemented_ C#, not copied.
Srdjan Jovcic
This isn't really true. Microsoft _used_ to make an excellent Java compiler and got sued to make them stop.
John Knoeller
An excellent Java compiler with Microsoft extensions. They were sued because they weren't conforming to the standard.
duffymo
Surely it was just Suns java implementation that was open sourced?
vickirk
Microsoft was sued as their implementation did not meet the requirements to be considered a java implementation, they were therefore using the trademark correctly.
vickirk
@vickirk Sun was in the process of open sourcing java, but had not completed it. No one knows if Oracle will continue that. If you want a fully open sourced implementation, you need OpenJava.
Joel Coehoorn
@Joel Actually sun opened everything they could already. The parts they haven't been able to open are the ones they don't own--third party pieces in the libraries generally involving font rendering and the like. OpenJava has taken Sun's open libraries and replaced those parts. I'm not sure about HotSpot though, that particular runtime might still be private, but since there are very viable, absolutely legal replacements for both the language and library, they are not "owned"
Bill K
@John Knoller Microsoft was stopped because they did not meet the java standard--and was only stopped from calling their language "Java", not from creating an java clone. They were in no way sued to stop making their product, just for abuse of the name (which is a certification of cross-platform ability which Microsoft deliberately did not meet)
Bill K
+7  A: 

As compared to what? Since you put it in these terms, the original C and C++ languages are "owned" by Bell Labs.

Joel Coehoorn
+1 though I'm unsure about the C++ part.
Bob Denny
Bill K
Also, -1 does not in any way answer the question that was asked.
Bill K
+1  A: 

If there are not two independent implementations, language is "Owned" and you are at the mercy of the vendor should he raise prices or can the product.

I don't like that.

EDIT: As often as not, you can count legally forkable codebases as two (the second is yourself).

Joshua
How much are you paying for Java? What fee was extracted from your last download?
duffymo
Clearly Perl is "owned" and we are at the mercy of the vendor.
Anon.
And all users of Python are under the thumb of the BDFL. He can crush you at his whim.
duffymo
A: 

Aren't all languages owned by a person/company/standards body. The only way I can think of where it isn't really owned by anybody is if the person who made it is anonymous and also public domain

Matt S.
Many are owned by a standards body such as ISO or ECMA.
vickirk
+4  A: 

Getting up in the morning is risky, but that doesn't keep the world under the covers.

I feel like this is one of those acceptable risks. In Java's case, companies have used it for the last 15 years or so to their benefit.

What's the alternative? Developing and maintaining your own language so you own it? That's what SAP did. It seems to have worked out for them, but it'd be interesting to calculate the cost they've incurred.

Bjarne Stroustrup is a brilliant man, but let's not forget that he has biases. He isn't happy that Java eclipsed C++ as the primary object-oriented language when it came out. He's attributed it to Sun's marketing, not conceding that it might have improved on C++.

It's a good practice to try and spot biases on the part of any speaker to make sure you're not swallowing someone's view whole. This is one of those cases.

duffymo
Programmers like fads, but they always return to what they love. Really, how many people have permanently switched from C++ to Java? Java and C++ are different languages for different problem domains. Java's success came from its applicability in its specific domain, plus catching the end of the 80s wave of OOP hype that was driven by C++.
Jon Purdy
Lots of people permanently switched from C++ to Java. I'm not following your point here. Personally, I think Java rode the Internet tsunami more than the OOP ripples. Applets and dancing teapots in browsers were the thing that drove Java forward in the beginning. It evolved into a server-side language for web applications after the Java EE spec was announced in 1999 at Java One. None of that had much to do with C++. It was C++ that didn't have the libraries to keep up. STL was added, but not much else.
duffymo
A: 

hmm, well Xbox only supports C# for indie games, and no other platform supports it.

obviously the danger is that if you want to do multi platform code, you want the language supported by the most platforms, the more "owned" language is probably going to be supported by less platforms.

the only issue I have is support for the language, and how hard it is to convert from one to the other, for instance I would say c++ to c# is easier than the other way because of memory management.

matt
C# is supported on Xbox360, Windows, Linux and MaxOS (and probably more I'm not aware of) and there are projects out there looking to port XNA to the non MS platforms as well (e.g. http://code.google.com/p/monoxna/)
Grant Peters