I really wish more effort was put into D... I think that's really the best path to freedom vs Java and .Net... I wish Nokia would would adopt D because nobody wants to use C++ and Python is slow...<p>I just saw this on twitter...<p><a href="http://twitter.com/casperbang/status/27134952930" rel="nofollow">http://twitter.com/casperbang/status/27134952930</a><p>"Java has an official open source reference implementation, but is not free. C# has only unofficial open source implementations, but is free!"<p><a href="http://www2.research.att.com/~bs/bs_faq.html#Java" rel="nofollow">http://www2.research.att.com/~bs/bs_faq.html#Java</a><p>"Java isn't platform independent; it is a platform. Like Windows, it is a proprietary commercial platform. That is, you can write programs for Windows/Intel or Java/JVM, and in each case you are writing code for a platform owned by a single corporation and tweaked for the commercial benefit of that corporation."
I think the author is just taking advantage of Java's name having been drug through the mud by Oracle to push his point-of-view.<p>Many of Apache's projects are Java-based, and I don't seem them making any effort to port all of them over into a different language.<p>Though Oracle stunk up JavaOne this year, and the lawsuit against Google is making Oracle look like a supreme ass, companies like IBM, RedHat, SpringSource, and many, many others have a significant investment in Java.<p>Java has been and will continue to be close to the top of Paul's heap in terms of jobs for the foreseeable future:<p><a href="http://www.indeed.com/jobtrends?q=java%2C+Python%2C+Javascript%2C+C%2C+C%2B%2B%2C+PHP&l=" rel="nofollow">http://www.indeed.com/jobtrends?q=java%2C+Python%2C+Javascri...</a><p><a href="http://www.indeed.com/jobs?q=java" rel="nofollow">http://www.indeed.com/jobs?q=java</a><p>However, I would be the first to say that if you are looking to the future, explore dynamic and functional programming languages. If I had to pick one right now, I'd lean toward Ruby, not because it is the most well adopted (and for goodness sakes, it has had enough time to be), but because the language itself is great, and it has a growing and thriving community.<p>But Java is not dead yet, and it is far from a trap.
This is not trolling. I honestly ask: why is TCK important? How does it prevent Apache Harmony from ever shipping a "real release"? After all, before OpenJDK, GCJ and lots of other free Java implementations released fine without TCK.
Didn't Stallman write an update to his original?<p>It's really hard to miss, right under the title, in big bold type:<p><a href="http://www.gnu.org/philosophy/java-trap.html" rel="nofollow">http://www.gnu.org/philosophy/java-trap.html</a>
Let's say we buy into the Java Trap Hypothesis; the question then is: what's next? What do you choose if you're a corporation with large projects and large teams of mostly non-rockstar developers. For the sake of the argument let's assume the JVM is out, and you can't use .Net (e.g. need Linux, or more flexible licensing, etc). I'm curious what people would choose, if given a clean slate for this kind of situation.
I agree with the article and use truly free dev tools whenever possible, but for some there is no choice because of the platform they have chosen to target. If you decided to do Android apps, you'll probably use Java for 90% (or more) of the work.
Why does anything need to be run the TCK? Why does anything need to use the name Java? Isn't this more of a people problem then a licence problem? Am I really to believe that if someone doesn't have access to Oracle's magical testing kit then it's impossible to make something that runs java source code? Isn't it more just a corporate perception problem? Who cares?
I agree with the article, but I'm also starting to not see why Oracle even cares about Java anymore. There are enough fantastic free / open source products available that if you told an investor you were starting a company to build J2EE infrastructure, they'd probably laugh you out of the room. At this point the only reason to use a commercial J2EE platform is either lock-in (it'd be too much time to move to open source) or for some corporate reason (support, big name, impressive, etc). In what other ways can Oracle monetize the Java platform at this point?
De facto, if Oracle/Sun refuses to TCK any independent implementation of Java SE, while tolerating their implementation under open source license, then there is ground for anti-trust action.<p>The argument being that 3rd parties have no means to validate their implementation. Hence, there is no practical way to implement Java SE independently.<p>Considering the dominant position of Oracle/Sun, we can't exclude the possibility that the European Commission will start a new anti-trust investigation against Oracle/Sun.
What is not clear in the article is that languages and platforms are almost completely orthogonal in most cases.
If we are speaking about the Java platform lock-in, languages are irrelevant, because I can use this platform from multiple languages. Even if I use Python, I can be locked into the Java platform because I call existing Java classes (using Jython). Also, for example whether Java the language is good or bad is irrelevant, because I can use Scala to compile to the Java platform, which is the best programming language I have ever seen (for my taste at least). I can also choose to target the .NET platform from Scala.<p>So Java platform lock-in can be a problem, I understand. But this seems to be totally orthogonal to the topic of from wich programming languages to which platforms you can compile. These different issues are somehow mixed in the article I think.
JNI minimizes the Java trap, since your entire program doesn't need to live in the JVM. Other functionality can be implemented in native code, and it will work with Java just fine. Oracle does not control native code, so they don't control what platform you target in the future. JNI is not a panacea - your code still runs on Oracle's JVM. But it provides an escape route, since pieces of your application can be ported away from the JVM without requiring an entire rewrite.<p>If you've reached this escape point, yes, you're wasting time by porting your application away from Java. But you knew Java is a closed platform owned by one company, and you took that risk.
Ok. From my limited understanding of the FAQ. Sun agreed to release the TCKs without "field of use" restrictions when they entered the community process? But they failed to meet that obligation with the JavaSE TCK? Isn't there some legal structure to force Sun/Oracle to meet that obligation?
Summary: "I don't agree that users deserve freedom, but if someone takes away my freedom, then its wrong."<p>I'd love to hear his reasoning for disagreeing with RMS's ideal of user freedom.
At the multinational I work at, we recently upgraded to Java 1.5. By the time we have to upgrade to Java 1.7, I expect this little storm-in-a-teacup to be well and truly forgotten.