On the Ethics of a Code Split?
McWizard asks: "We've recently had a code split at a project I'm leading. (No name given, as this is a question, not an advertisement campaign). While both projects have done some major design decisions in opposing directions, we've been keeping a close eye on the changelog of the spinoff for small changes that could be used. So, whenever we've found an interesting piece of code (mostly GUI stuff, nothing longer than 20 lines of code), we transferred it to our project and gave credit to the spinoff team in the changelog.
What does Slashdot say on that matter? Is this unethical or are such things fair game?"
"Yesterday, I was contacted by the leader of the spinoff project who told me that he's quiet angry at us for doing that and that it's considered unethical and rude to copy code from the spinoff.
As both projects are under the GPL, we have an opposing opinion on that matter and we've more than once invited him to copy code from our project. Nevertheless he's thinking about obfuscating his changelog and only open the source as packages when he's doing a release, which is, as he says, his right under the GPL."
Legally, there's nothing wrong since both projects are GPL'ed (I presume).
Ethically, I don't see anything wrong with it. In the end, it's your design decisions that are going to make a difference, which is why the code split in the first place. In fact, there's no reason why both projects shouldn't take code from each other; if there are common areas where there's actually no disagreement, this will help to reduce duplication of effort.
Gan Family Homepage
It's open-source. If he doesn't want certain people re-using the code, well, then he shouldn't release his code under the GPL. Trying to restrict use of open-source code because he has a personal grudge with a project he split off of is the real unethical behavior.
If he wants to do this and not share with everyone, he needs to start over with his own commercial implementation from scratch. Until he does, just tell him to suck down a nice big mug of STFU.
Can you imagine human history without being able to use other people's good ideas? I mean even if it's not derived? "I'm sorry, you can't have that steam train - I represent the estate of the ancient greeks, and we have a patent on the steam engine."
Having said all that, accreditation is nice - aknowledge the work that people have done, it's cool that you are doing this. This is what polite people in academia do - just recognise the derivation of the idea, then use it with what you're doing.
T
Arguably, it might have been more polically aware to ask permission before using the code, but I'd say the more serious problem is that the leader of the spinoff doesn't appear to fully understand the concept of the GPL. Anybody can take a project and expand on it. That code can, in turn, be added to any other project. It's all about sharing and showing your stuff, so someone using your code should be taken as a compliment, not theft.
Maybe you could try and talk to him and ask why this is a problem; perhaps it's a matter that can be settled. In any case I wouldn't borrow any more of their code until the matter is cleared up since that would only escalate the feud.
===== Murphy's Law is recursive. =====
If we are talking about the GPL, not only is it ethical, but it's expected and encouraged by the community at large!
Soccer Goal Plans
I've seen this happen in pretty important chunks of code - even gcc - which is pretty sad.
As a maintainer for a file system, I try to treat people as "customers". Sure, unless they're paying, they don't have any legal rights, but there is still some moral obligation to serve. I try to add the features that people want without breaking the design goals etc. I'm sure this is easier with a file system which is very deeply buried than with a userpsace program where everybody has a beef about itty-bitty features.
Engineering is the art of compromise.
For the curious, Google turns up that mcwizard is on the MegaMekNet and MegaMek projects. Both are games: Java clones of BattleTech.
There is a difference of opinion. In both patches and directions. The trick here is to be the best person possible in these situations.
a) Post minor bug fixes between code to their bug notification system. Prove that you have good faith and are not sabotaging their ability to compete, you have a difference in opinion about methods but you are working on the same goal.
b) Post a request for developers to cross post any bug fixes into your system to the list. Request that the project sponsor post this on their page. (Sounds like they will decline but you should be polite and officially ask).
There is no real ethical debate here. The reason for the fork is apparent and ANY code changes that makes the project a better one is for the common good. Is is anoying when the competition "stands upon the shoulder of giants", hell yes.
Ego and programming do not mix and is the biggest problem with most developers.
I knew someone who had this problem. I frequent TinyMUCKs, which are online text-based environments much like MUDs, only more socially oriented. TinyMUCK has a programming language called MUF (Multi-User Forth), and lots of people write MUF programs to do various silly things in the system.
A while back there was a particular developer; let's just call her M, who would go utterly BALLISTIC if anyone tried to port her code from one TinyMUCK system to another. Even though she wasn't being paid for the work, she had this obsessive requirement that she be on the system and in control of the software at all times.
Her eventually got the admins of various TinyMUCKs pissed off at her, and they wrote clones of her various programs, removing her code. She has since disappeared from the various TinyMUCKs.
Funny how life works, eh?
If you want to see an example of her paranoia, go to http://zorin.org/txt/quotes.txt and search for the string "huge warning". She must work for Microsoft, I swear. }:)
-Z
Ah, but the GPL is also an ETHICAL document. The purpose of the GPL is to share code. It's not merely that sharing code is *permitted* by the GPL, but that it is *encouraged* - indeed, prescribed by the GPL. The purpose of the GPL is to disseminated shared and reused code, and obfuscation and claims of "code theft" are in direct opposition to the moral basis of the GPL. In other words, you're comparing a prescription to a proscription.
What? You mean you don't comment your code to include not only what it does, but why it does it?
.
Yeah, because when someone changes your code they always make a point of updating the comments. The 'non-technical boss' mentioned in the grandparent is unlikely to know the difference . .
I'm lucky in that I'm working in a two man dev team, and we've got a good working relationship. When I'm about to commit a change to his code to Subversion I point it out to him (he's the senior dev, knows his shit, and I value his opinion), and when he changes mine he does the same (due to professional courtesy - he normally knows he's right).
For the most part this is what bothers me most about OSS. It seems to attract the egocentrics. Sure, we may all have Asperger's, but we also need to get along . . ,
"If being a geek means being passionate about something, then I pity those who aren't geeks." - Pike65
I've had one of the most popular Sourceforge projects for a number of years now (the popularity is waning now, for obvious reasons... but I was in the top 10 for awhile) - My project is ShowEQ. We had a code split with SINS, and SINS developed in conjunction with ShowEQ for a time.
We did incorporate a lot of SINS stuff back into ShowEQ, because I did believe some of the directions that SINS headed in were good, but the overall direction I did not believe was what was needed for the community. However, the code was not a drop in replacement into ShowEQ for current fuctions (or to add new functionality, etc...) so we used the SINS code as a starting point and wrote the SEQ code with SINS as a base idea.
Regardless, the point is that Open Source and GPL are meant to do exactly this. There is _NOTHING_ unethical/immoral about taking bits and pieces of code from other projects and using them in your own. That's exactly what SHOULD be happening. The maintainer of SINS contacted me about using some of the code/ideas from SINS and asked me to give him credit in ShowEQ, which I had neglected to do since we didn't take the code directly and drop it in to the SEQ codebase... but I agreed that giving SINS credit within SEQ was the right thing to do... so in your case, I would definitely attribute portions of the code to the other guys project, even thank him. But there is certainly nothing what so ever immoral about what you are doing with GPL code.
Whoever the guy is that said that is the immoral asshole for even suggesting that... especially if he is the one that forked the code base to begin with and is using other peoples code himself.
I work for a primarily FLOSS company. We recently developed an application which we were pushing at trade shows all over Europe. During our travels, we met several other companies' suits who were developing similar or identical solutions. Even though some of these companies are direct competitors, we encouraged them to look at our code, see the solutions we had created and adopt some of our code. Result: Out of 22 companies we talked to 20 made their solutions OSS. We have now integrated some of their code into our own product just as they have used our code. Moral of the story: Sharing makes the community stronger, eliminates much inefficiency and makes the software better! We survive separately BECAUSE we have different ideas of how features should be implemented.
--cros13
It's just spreading FUD about open-source. Don't fall for it people! It's a troll!
If I'm understanding this right, someone forked a GPL'd project, but they're now claiming that the original project is being unethical in back-porting changes from the fork? That's crazy! Surely the whole point of the GPL, as opposed to say BSD-style licences, is that if you take GPL'd code you have to give back what you build on it? I don't see how the spin-off project have a leg to stand on, either morally or legally.
On the subject of obfuscation, it seems clear that they only have to give back the "finished product", and aren't under any obligation to allow access to development code. However, attempting to obfuscate the code given back also seems to be obviously contrary to the GPL, so the worst he can do once he makes a release is obfuscate the changelog as he suggested, which any decent diff tool will overcome in seconds for the original dev team.
Really, this just seems like exactly the kind of ego-promotion the GPL was intended to prevent. No-one forced them to take GPL'd code as the foundation of their spin-off project, but if you're going to take someone else's code, you have to do it on their terms, which in this case means "licensed under the GPL". If you don't like those terms, you're free to write your own code and release it under whatever licence you like...
If you disagree, post your argument. (-1, Overrated) isn't your personal censorship tool for views you don't like.
If you can't make a closed fork, then many people who would otherwise want to make one are instead motivated to either contribute back to the main project, or not use it at all.
You can't contribute if the committers aren't interested in your patches and won't put them in CVS. Most of the time this is due to a quality or style issue, but sometimes it's just due to the fact that the committers might have another vision of the project than you do. In a case like that, where you are quite willing and able to do the work, you have two choices: patch every new version with your changes or fork the project. If enough people value your choices you might be able to develop a viable fork.
Although forking should never be undertaken lightly, it is the sine qua non of freedom in software.
#!/usr/bin/english