4 ms·
Use the right license for the job. If I was making a stand alone program, then it would probably be GPL or AGPL (for anything that could provide a service over
by H3g3m0n 13y ago
Use the right license for the job.
If I was making a stand alone program, then it would probably be GPL or AGPL (for anything that could provide a service over the web).
However I would probably avoid it if I could see the potential for it to be made into a library and many stand alone programs can benefit from that (Look at Clang vs GCC). Ideally you make the core meat of your program as a library from the beginning but and just provide a thin frontend but thats not always how projects go. For example if you make a GUI app but now have a save file format that you could allow others to interoperate with.
For a library I look at either MIT style, or CC0. MIT does seem like a silly requirement. Yeh some outsourcing company somewhere can legally dump your code into their project and charge for it, (and with CC0 not tell anyone it was your code but) that doesn't really hurt you. If it's a closed project no one will be looking at the code anyway. And you can always point to the code and prove it's yours (well someone could claim you stole their code and re-licensed it but that can happen with any license).
I tend to avoid the LGPL, the restrictions seem like a massive pita to me. You now have to deal with dynamic libraries rather than static due to stupid legal issues with what should be a technical decision.
I also don't like that GPL'd stuff can take from MIT/CC0 and the reverse isn't true (without converting their codebase). Seems kind of unfair in the opensource environment.