40
Should I worry about referencing other people's code?
(lemmy.world)
Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!
Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.
Hope you enjoy the instance!
Rules
Follow the wormhole through a path of communities !webdev@programming.dev
By all means, use the publicly available code within the limits its license permits. Always strive to give credit back (I oftentimes add notes to where I took config bits even in my private my-eyes-only repos to have some breadcrumbs).
Remember that licensing and copyrights are kind of separate things. People own copyright to their work (unless they explicitly give it up), and licenses are the terms on which you can use their copyrighted work.
Know the basics of the OSS licenses and know which ones you can copy things from verbatim (e.g. don’t touch AGPL code unless you also use AGPL). Generally, I just keep the original license and add a note to my license file saying that e.g. this code is licensed under Apache 2.0, but some parts are MIT.
It gets somewhat murkier when you use someone's code and base yours on that. IANAL, and that's very much the legal territory. If at all possible, just reuse the original copyright and license and then derive your work (given the license allows that).
Being on the receiving side of this a few times (people using my code verbatim in their projects I stumbled upon) it leaves a bit of a sour taste in the mouth when you see your copyright header replaced with someone else's completely. Don’t do that. All the three times it happened to me, the other party was quick to remedy the situation, though (2 added the original copyright note back, 1 removed all my code). So just don’t do that. Make a habit to read that dumb tall copyright notice at the top of the file every time and you’ll quickly learn what to expect.
Just to clear this up: copyleft licenses, GPL variants for example, require the license of your code to equally preserve the freedoms provided to your users, or in other words also be a copyleft license. There are some loopholes like GPL on a server, but be very careful when using copyleft code unless you want to use a copyleft license as well.
That all depends on the license AFAIK, but IANAL. Most FOSS licenses allow you to do whatever you want while preserving copyright claims, and that includes rewriting or changing the license. GPL forces copyleft, so even if you rewrote it from scratch, you could still be liable if you saw the original code.
For example I've heard that corpos bootleg copyleft code by having completely separate teams doing design and implementation. The implementation team can't ever see any part of the original code, and they have limited communication with the design team. I think that would also go around the copyright claims as well.
Or just slap a GPL and subsume everything within a vortex of FREEDOM, and thusly become a true FOSS dude
Yeah, no. I suppose this is sarcasm, but just in case: not every license is compatible with GPL, GPL has a few versions, and not everything is GPL-3-and-above.
Personally, I prefer Apache-2.0. It just seems more fair.
https://www.gnu.org/licenses/license-list.en.html
Issue with GPL is, that I mainly developing stuff for gaming, and GPL is hard or tough to monetize, and stuff will get even spicier when we have conservations whether code is asset itself (especially scripts).
What do you mean?
That's true. What about LGPL?
Too late, I've already went with BSL.
I'm not much of a coder anymore (and even then, it was self-taught hobby projects) but this is soooo good to do aside from just giving credit. I'd leave comments "I learned about this from here: (link)" so I could go back and reference it later.
I made a simple batch script to generate project folders at work and then a year later our standards changed....I would have had to start from scratch if not for the links I left because I forgot everything I learned