Say you wrote a superb open source library called XXX in language YYY and share it on the net.
Someday, some people notifiying you that they are translating (not porting) your great codes into language ZZZ.
How do you feel about this?
Say you wrote a superb open source library called XXX in language YYY and share it on the net.
Someday, some people notifiying you that they are translating (not porting) your great codes into language ZZZ.
How do you feel about this?
Just GET it OFF out my mind!!
"Cool beans" is what I would say (but not if anyone could actually hear me, of course). Are they the ones making the careful distinction between translating and porting or are you?
Well, but that's what porting is too. I'm guessing translating vs. porting will have somewhat different connotations to different people, but to me porting just means that you do exactly the same things in exactly the same way, just in a different language, while translating means that you try to do the same things in whatever way works the best in the new language (for instance, going from C to C++, porting might mean turning malloc into new, while translating might mean turning that dynamic array into a vector).
EDIT: Although, yes, you do more often hear people use "port" in the sense of moving from one machine to another, where you have to change all the system-specific stuff but the base code remains the same. Either way, if this (porting/translating/whatever) is a problem for you somehow, then why did you open-source it in the first place? This is the most natural form of "derived work" there is....
Last edited by tabstop; 09-05-2009 at 12:30 PM.
If you're keeping it open-source then you're giving others the opportunity and right to do this. It's really part of embracing the open-source culture for other users to be able to take your ideas and develop them in their own fashion.
You have to recognize that some languages may provide distinct advantages over another language... so if someone goes out and writes a program in Java and some user recognizes that they can overcome some of the application's issues by re-writing it in C# or perhaps a language that the original developer is not proficient in... then it is a logical advantage to do so and shouldn't be seen as different from any other adjustment of the code like if someone rewrote one of your algorithms to be more efficient.
Sent from my iPadŽ
They concept here is that you shared it.
Unless you clearly stated your desire for people not to do so by including the proper copyright, not only you can't do a thing about it, but you also encouraged and implicitly stated your desire for people to use your code as they see fit, including their ability to use your code and make money of it.
Originally Posted by brewbuck:
Reimplementing a large system in another language to get a 25% performance boost is nonsense. It would be cheaper to just get a computer which is 25% faster.
That's not true in the United States at least. All creative works are copyrighted by the author even if the copyright is not spelled out explicitly. You don't have to "state your desire" that the work be under copyright -- it is under copyright automatically. In order for a work to be placed into the public domain without a copyright it must be explicitly placed in the public domain.
I do not know the situation in other countries. The fact that laws differ from one country to another is reason enough to spell out your intent as clearly as possible.
To answer the original question, I would not really be happy with somebody translating my code to another language. They could do it incorrectly, release something crappy, and give the wrong impression of my code. Then I'd have to deal with numerous "support calls" from users who aren't actually using my software but rather some shoddy translation of it.
Depending on the circumstances, I'd be supportive of an effort to port my code to another language but I would want to be heavily involved in the project. Failing that, I would insist that the other party make a fork, change the name of the codebase, and state very clearly in the documentation that it is a derivative of my work unrelated to me and not supported by me.
Code://try //{ if (a) do { f( b); } while(1); else do { f(!b); } while(1); //}
I would consider it an honour. Obviously if someone's going to all the trouble to port/translate/convert your code, whether to another machine or another language, they like it. Or find it useful. Or something.
dwk
Seek and ye shall find. quaere et invenies.
"Simplicity does not precede complexity, but follows it." -- Alan Perlis
"Testing can only prove the presence of bugs, not their absence." -- Edsger Dijkstra
"The only real mistake is the one from which we learn nothing." -- John Powell
Other boards: DaniWeb, TPS
Unofficial Wiki FAQ: cpwiki.sf.net
My website: http://dwks.theprogrammingsite.com/
Projects: codeform, xuni, atlantis, nort, etc.
Nice responses.
I love to read and examining people's codes in many languages nowadays, and just translate it into my current project's language, hell yeah, I'm just too lazy to learn the concepts behind it (especially something with ugly math symbols).
I tought by doing so, I'll be called plagiarism or something.
Just GET it OFF out my mind!!
... but those are the most fun.
Warning: Link contains strong language... yada yada yada...
Sent from my iPadŽ
At least they are notifying you, and hopefully giving you credit. Note that opensource code can still have copyright. The BSD license, for example, says you need to credit the original project (I believe).
I too would feel honoured.
That is the point of open source projects. You can tweak everything to your liking (including porting it to a different language).
The GPL also stipulates this *and* that the GPL must be applied to the derived work, ie, you can use the source, but you must release whatever you do with it as itself open source licensed by the GPL.
I don't know how applicable this is to a translation, however, since that would not include any of the original source. I think people who copy a concept, even down to very fine details -- such as the linux kernel is a copy of the unix kernel concept -- are not, in fact, bound by you having copyrighted the code. Linux does not include any non-original source code, so it did not violate any copyrights.
This is a pretty straightforward distinction. If I am writing an essay, and during my research I find a similar essay and I decide to say:
You do not need Dr. Smith's permission, but you do need to respect his/her authorship of public, copyrighted work. If you do this:A similar perspective has been advanced by Dr. Smith, "notice the quotes"
Without mentioning Dr. Smith, etc., you are now plagiarizing.A similar perspective could be that...
C programming resources:
GNU C Function and Macro Index -- glibc reference manual
The C Book -- nice online learner guide
Current ISO draft standard
CCAN -- new CPAN like open source library repository
3 (different) GNU debugger tutorials: #1 -- #2 -- #3
cpwiki -- our wiki on sourceforge
I think we need to distinguish between the copyright itself and the license agreement that comes with it. The copyright is simple and consists of the words "Copyright 2009 Foo M. Bar." The license agreement is basically a promise that you won't sue people for using your copyrighted work in some limited set of ways.
Just because code is open source doesn't mean it isn't copyrighted. In fact, it MUST be copyrighted because without the underlying copyright there can be no license agreement since there is no legal force for it to operate on. The situation would then be "public domain" where the code has no legal owner at all.
Code://try //{ if (a) do { f( b); } while(1); else do { f(!b); } while(1); //}
It would be plagiarism if you claimed that the translated work was entirely your own original work. Additionally, it would be copyright infringement if you have no license to perform that translation yourself.Originally Posted by audinue
Look up a C++ Reference and learn How To Ask Questions The Smart WayOriginally Posted by Bjarne Stroustrup (2000-10-14)