A freelance software developer has released a program on the Net that could allow programmers to take code from Java applets without permission.
Called Mocha, the program is a Java decompiler, a tool that allows programmers to translate the byte code of standard Java applets into source code, which the programmers can then reuse in other applets.
Although no one is claiming copyright or trademark violations as a result of the program, such issues are likely to arise as legal protections for software emerge from the court cases. Hanpeter van Vliet, the Dutch developer that created Mocha, defended his program as a tool for recovering deleted Java source code but conceded that the potential for abuse of Mocha by unscrupulous programmers exists.
"You can use Mocha as a learning tool, and that's cool. Or you can use it to violate licenses, patents or copyrights, and that sucks," states a posting on Vliet's Web site. "Mocha cannot make the distinction. That is up to you and your, errr, conscience, or something, if you have one."
Vliet said Mocha is less useful for programmers that want to steal code from large applications, rather than smaller applets. That's because the decompiler strips out useful information, called comments, from the resulting source code.
"For large-scale stealing of code, Mocha is not very useful," Vliet wrote in an email. "In the absence of comments in the source, it is very hard to make significant changes to a complex piece of software."
Officials at Sun Microsystems' JavaSoft division said they were aware of Mocha, and they are evaluating the possibility of creating something called an "obfuscator" which scrambles decompiled source code so that it's useless to programmers. JavaSoft officials added that decompilers are available for virtually every programming language.
"There is something like this for every language," said Lisa Poulson, a spokeswoman for JavaSoft. "It's possible for any sophisticated hacker to decompile any code. This program makes it a little easier. There are people on our team evaluating what should be done."