I'm a software engineer and I'd like to port (translate) a library from programming language A to programming language B.

The library is distributed under the Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 United States license.

I found this definition of a "derivative work" - Title 17 Section 101 of the Copyright Act:

A “derivative work” is a work based upon one or more preexisting works, such as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording, art reproduction, abridgment, condensation, or any other form in which a work may be recast, transformed, or adapted. A work consisting of editorial revisions, annotations, elaborations, or other modifications which, as a whole, represent an original work of authorship, is a “derivative work”.

Does porting fall under the "translation/transformed/adapted" category in this definition?

Thanks, erip

  • Interestingly, it appears Creative Commons is not recommended for software. See Can I apply a Creative Commons license to software?: "We recommend against using Creative Commons licenses for software. Instead, we strongly encourage you to use one of the very good software licenses which are already available."
    – User
    Nov 9, 2015 at 8:54
  • Emailed the authors and got clarification - the documentation of the library was distributed under CC, but the code itself was covered under Apache 2.0.
    – erip
    Nov 9, 2015 at 13:05

2 Answers 2


Under the original Creative Commons license, yes, you can't do this. Since the translated software can't effectively exist without the original, it would be considered a derivative work, and cannot be done under the terms of the license.

However, in the comments that you note that the project uses the Apache 2.0 license. In this case, yes, you can port something to another language. Just make sure that you follow the terms and conditions of that license - which is basically just attributing the original project for the most part, and including the license and notice files.


No, you can't do this. Yes, it is translation.

Translation from C++ to Visual Basic is no different to translation from English to French.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .