O.K. I've written my "worlds fastest" life engine, and now I want to release it as open source. It's of no commercial value, but I don't want bad people to pass it off as their own work, or distribute messed-about versions with my name on it. I do want people to be able to use it as the basis for a complete program however.
So should I GPL it? Or just rely on copyright?
Any advice would be gratefully received.
GPL ticks all your boxes with the caveat that the programs people derive from your work would also have to be open source. If you can dig that, that's fine. If you want people to choose whether or not for it to be open source, I think you want something more BSD-y.
Plagiarism won't be an issue so long as you make your release visible on Google. Of course, the XviD peeps once had a problem with someone nicking their code, IIRC.
A lot of people will ignore copyrights, and a lot of countries won't honor them.
Depending on how big your code is, add a few orphans in there that give you credit. You may want to disguise them so that they aren't obvious, but you can find them in the code to see if they stole it.
Check out the list of open source licenses.
The BSD license does sound like the one you'd want.
GPL is good. I don't see how GPL would alter the chances of people putting their name on your code, though. I also thínk lots of people are being ridiculously overprotective with their source code.
BTW, Is it world's fastest or "world's fastest"? :) Your sig and your post say two different things. :)
You can't just "rely on copyright". By law in most countries (I'm guessing the US), anything you write is copyrighted by default, and no one is even allowed to run your code let alone view/modify it. All rights to it are reserved to you.
Thats why you need a license agreement, which basically spells out what rights you give to users of the application. Licenses like the GPL give users the right to run and compile your code, and to modify it, but usually under the condition that they offer to give back any changes they make that might benefit you (I believe).
>>but usually under the condition that they offer to give back any changes they make that might benefit you (I believe).
Thats more or less right. It says that any derivitave work must be released under a compatable license. So, anyone that uses GPL code in their project, must distribute the source for their project under a license compatable with the GPL.
Many thanks for all your input. I've never heard of the BSD licence, so I'll take a look at that. Obviously if someone really wants to rip me off in some way then I can't do much about it, but if it's in the public domain already then hopefully there's no doubt that "I got there first". The protection is moral I guess, not physical.
>BTW, Is it world's fastest or "world's fastest"? Your sig and your post say two different things.
Well it's a little difficult to quantify, but based on comparsions with Johan Bontes excellent Life32 program (engine written by Alan Hensel - generally acknowledged to be the quickest) its between about 0.75x and 20x the speed, depending on exactly which test. I had hoped it would blow Life32 away in all cases, but that's over-optimism for you. (Mind you V2.0 will have an advanced periodicity checking system which should help).
>I also thínk lots of people are being ridiculously overprotective with their source code.
I couldn't agree more. That's why I'm making it open source. For instance the Life32 code wasn't released, the author claims it's too complex (many thousands of lines of delphi + asm) to be useful for others to learn from. I don't really buy that. My hunch is that some people are afraid to let others see how bad their coding style is. My own code is quite small, only about a thousand lines or so. The algorithm will be fully documented too.