I’m very surprised that Sun chose the GPL as the open source license instead of an Apache/BSD license. For the uninitiated, the Gnu Public License more or less says that any changes you make to the source must also be given away as open source. The BSD license is more flexible and boils down to you can do anything you want with the source code like give it away, make changes, package it with your application. The only thing you cannot do under the BSD license is claim that you wrote the code.
The major complaint about the GPL is its viral nature. If you make a change to the source code, you have to give away all your changes and it taints your code such that it should all be licensed under the GPL. It’s more complex than that, but that is sort of how it works. Businesses like to keep their changes internally for intellectual property and security reasons. Businesses prefer BSD licenses because it puts very few restrictions on what you can do with the code. While Linux uses the GPL, I am more of a fan of the BSD way. I think in the end BSD just does a better job of attracting users because business users freely adopt BSD licensed source code because they don’t have to be so concerned about giving away security and intellectual property secrets.
I’m curious why Sun is giving away Java as GPL. I think it does help them insulate from forks in the Java code, but I still question whether that’s a good enough reason. All the Apache projects seems to do just fine with BSD.