Dr. Stallman in his article Free but shackled - Java Trap expresses his concern that Java developers may be unknowingly falling into an expensive trap. In his own words:

If you develop a Java program on Sun's Java platform, you are liable to use Sun-only features without even noticing. By the time you find this out, you may have been using them for months, and redoing the work could take more months. You might say, "It's too much work to start over." Then your program will have fallen into the Java Trap; it will be unusable in the Free World.

This is baloney, plain and simple. The statements are wrong on multiple counts.

Richard Stallman> If you develop a Java program on Sun's Java platform, you are liable to use Sun-only features without even noticing.

Sun-only features are clearly marked and are strongly discouraged to use by Sun. In case you didn't notice they are also in packages under com.sun.* or sun.* or sunw.* (package name starts with com.sun. or sun. or sunw.). Even extensions to Java, which are not part of the core is identified by placing them under javax hierarchy.
The sun.* packages are not even in the source zip file (src.zip).

Moreover Sun packages are not even documented in the API documentation, making them harder to find, let alone use. In fact they aren't documented anywhere. To use them you have to actually open the source code in src.zip, where available, and in most cases decompile the class files from rt.jar! And then make sense of them.

There is no way a developer can mistake them for standard Java software/classes. If he is using them then he is making a conscious decision.

Richard Stallman> By the time you find this out, you may have been using them for months, and redoing the work could take more months.

None of Sun-only implementations are frameworks or even serious functionality. They are all low level implementations, which are internally leveraged by the public API. Changing them with alternative implementation could take days at most, definitely not months, even with the worst of developers. Most of the functionality I am aware of are available publicly (alternative implementations) and hence are easy to replace.

At this point I have to ask: Dr. Stallman, have you ever coded in Java? Have you even looked at the API documentation, at the Sun classes before writing this article?

Richard Stallman> Then your program will have fallen into the Java Trap; it will be unusable in the Free World.

There is no Java trap. Java is free for all practical purposes. Dr. Stallman has made a serious error of judgement as described above.

His sun-only library argument is erroneous and highly misleading.

With all due regards, I think Dr. Stallman in his excessive zeal to promote Open Source is falling into a trap himself. I will call it "Open Source Trap". Anything that doesn't conform to his narrow world view has to be bad. As Java doesn't subscribe to his Open Source mantra so, I think, he is on a fault-finding mission. And in this case he makes no sense.

We expect better from you Dr. Stallman, even when you are bent upon promoting your agenda.

Link via The Server Side