If I take a program, and basically translate its source from some language to python, with some small changes, can I do a entirely my new lib or I have to make a "version" of the old one?

would this be a copy of the first or a new lib based in the ideas of the first?

OBS: Consider the original lib is using Apache License v2

Not sure if well explained, but I can't see for now how to make it more clear.

  • This brings up the question of copyrighting specific code, or patenting specific functionality... Not that it matters, considering that it is an apache-licensed library. But ideas come from many places, including existing projects. You are rewriting, not translating, btw. – gahooa Nov 20 '12 at 0:37

I am not a lawyer, this is not legal advice. Which means, if you follow my advice, and it turns out to be wrong, don't sue me for it.

A copyright owner's permission is required for doing anything that is covered under copyright law. A copyright license gives you that. Copyright law recognizes copyrights even after every word is replaced. As might happen if you translate a book from Spanish into English. Thus your translation of, say, a Java program into Python would still be subject to copyright.

That said, as long as you follow all of the terms of the Apache License v2 (including attribution, etc), you have permission. That license doesn't say what your library should be called, so your translation can be called anything that you like.

But you're still bound by the author's wishes and copyright.

  • Copyright law can be weird with semantics. If you translate a Java program to Python, you are likely violating the license, however, if you write a Python program that does exactly the same thing as the Java program, you are not. This is one reason why trials involving copyright can be so complicated. – Gort the Robot Nov 20 '12 at 0:43
  • Agree. Probably would be a rewriting(as @gahooa said) not a new lib, even if some implementations had to be different, because incompatible things in the rewriting. – Arruda Nov 20 '12 at 0:55
  • When in doubt, use the API and write the new code to that. That's what Google did with not-Java for Android and they cleaned Larry Ellison's clock in the courtroom. If not in doubt, then it's pretty much a non-issue. – Peter Rowell Nov 20 '12 at 2:58
  • Sorry @PeterRowell didn't understand what you mean by "use the API" – Arruda Nov 20 '12 at 15:46
  • API ::= Application Programming Interface. Basically take all of the documentation on all of the classes/libraries (but none of the actual code) and write new code that accomplishes the same thing. If no one on the team has looked at the "unclean code" (whatever that means), then this could qualify as a Clean Room implementation. – Peter Rowell Nov 20 '12 at 19:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.