Once I complete my web development class, I fully plan on using the GPLv3 for all of my work. I am all about free/open source. I feel like corporations need to be forced to give back to open source and not just be fucking leeches.
While there’s parts about the GPL that I do like, I think it’s a generally bad license. Above all, because it limits even FOSS projects from using your code, because it would basically force them to also use the GPL. A massive amount of FOSS projects are not GPL compatible.
I think it generally often just discourages the usage of your code. You have to be something utterly outstanding for most companies to consider even touching GPL code. At least with a more permissive license, some corporations will use your code and even if they don’t all contribute, some will. e.g., my company uses a ton of FOSS code. We can only import code with certain licenses, obviously not GPL code. Me and my coworkers have personally made upstream contributions to improve these projects when we discover bugs or limitations. We do certainly also have some projects where we make internal only modifications, but most of those are changes that don’t make sense to commit to the upstream (like adding compatibility with internal systems or adapting to our build system). Point being that the projects with permissive licenses will at least get some commercial contributions whereas most GPL software simply won’t get anything (the likes of Linux is a rare case – most GPL projects aren’t worth it for companies).
As an aside, have you seen the LGPL? Depending on what you’re developing, it can sometimes make more sense. Its use case is for libraries. It basically makes it so that if you change the library, you must open source the changes (like the GPL), but if you merely link the library, you don’t need to do so. That can make it a bit more compatible with other people’s projects while still having GPL-like tendencies.
> I feel like corporations need to be forced to give back to open source and not just be fucking leeches.
I’m inclined to agree, although I think there might be some software where I would rather they steal the software and not give back than not use the software and rely on them to develop their own copy. For example, if I wrote a real-time PID control library with integrator windup protection and built-in saturation arithmetic, I’d license it as MIT for sure [1]. I don’t trust corporations to give back to the community, but I trust them even less to exhibit basic engineering judgement or care for the safety of their customers.
Also, I’m a recently graduated engineer. It’s possible that I’ll have to write code for my company where I don’t control the licensing of the final project. Unfortunately, “fully avoiding proprietary licenses” means “not working in engineering”. I wouldn’t choose a proprietary license, but if it is forced upon me then I gotta play ball. I’m sure there are others in a similar boat.
[1] Incidentally, the Arduino PID library was released as GPLv3, but later switched to MIT.
I will likely have to do the same if I am working for a company. The initial work I will most likely do though is personal projects to build a portfolio and showcase what I can do. All that stuff will be GPLv3.
Well companies could still be liches. If what they are building around your software isn’t a direct derivative (which it will most likely not be), then companies will still be able to publish their closed source work, while mentioning your open source software (if they even need to).
They benefit from your code and give nothing in return.
This can also be true if the companies use your software without redistributing it. They will just use your software and never give anything back.
Libraries and examples/tutorials: MIT because do whatever you want with it, that’s the point.
Full programs/websites: (A)GPL because I want these to remain fully free/open.
Depends on what I’m making and which ecosystem it will be a part of. For libraries, I use the MIT license most of the time, although I’m probably going to switch to Apache 2.0 for future stuff. It’s a bit more robust and has a helpful licensing framework.
When I make applications (and if possible), I tend to use (A)GPLv3. GPL sometimes doesn’t work though (for example, for my primary language, Clojure). I like the MPL 2.0 as a weak copyleft alternative.
However, recently, I’ve been reconsidering the whole open source/free software ideology, especially the focus on granting unconditional freedoms. I think the view that engineers shouldn’t care what is done with their work is outdated and irresponsible, and it applies to software devs as well. So I’m keeping an eye on the development of alternative source models such as ethical source or licenses like the Anti-Capitalist License.
I’ve been considering copyfarleft licenses like the Anti-Captialist Licence and the Peer Production Licence for a while now; I like the licenses themselves, my only issue is that since there is no body like the FSF to enforce them, a company large enough is likely just to steal the code or break licence.
Yeah. I really like the idea of the ACL, but I wouldn’t use it for anything serious right now because it hasn’t undergone proper legal review and its enforceability itself is rather questionable. The author said he was going to work on getting that done this year, we’ll see what happens.
To clarify, I also don’t think the problem I’ve mentioned can be fixed with licenses alone and I still support FOSS in general. The fact that there’s organisations like the SFC and FSF is a bonus, of course.
That is really interesting. I had not heard of the ethical listences before.
I imagine with licenses like those it would increase the beaurocracy and legal review for corporations. And that’s probably not such a bad thing.
I’m still a student so I’m not exactly the target audience of this question, but still: It’s either MIT or no license at all, because it’s not like I’m going to enforce the license or something. People can do whatever they want with my code
No license at all means that no one can use it. Even if you aren’t enforcing it the person who wants to use it doesn’t know that.
I mean, that’s not stopping people from copypasting or something, and, as I said, I’m not going to try to enforce it so I just don’t bother
It definitely stops anyone who is at least a little bit serious about what they’re doing.
I don’t think any license stopped Microsoft from training Copilot on any public Github Repo. And people usually don’t bother with licenses if they just want to copy a few lines of code. I doubt my whole projects are going to be of much interest to the public anyway
It’s not so bad if companies don’t use your project. Normal people won’t care.
Other FOSS projects can’t use it, either. The only other “normal people” would be, like, tiny private projects and bad actors. Maybe clueless students, but my university project classes required us to appropriately follow licenses when using other people’s code, or we’d get marked down.
The ability for FOSS projects to use your code is the best part about the FOSS movement. They can generally all copy from each other to improve efficiency, especially since many FOSS licenses are compatible with each other.
If you want to stop corporations from using your project, use a license that does that. Most typically, the GPL will do that (while still allowing some FOSS projects to use the code). It doesn’t prohibit commercial usage, but for the vast majority of projects, the license is basically a poison pill and thus no closed source project will generally use GPL licensed code. But I personally strongly recommend against the GPL, as it goes too far. Most FOSS projects can’t use GPL code themselves. It’s a rather extreme license.
If you don’t care, just use something like the MIT, Apache, or BSD three clause licenses, which are all super simple licenses that have broad compatibility. Doesn’t really matter which you use. I kinda like the BSD three clause because I like the “no using us to promote yourself” clause.
It is if they want to do something academic or commercial with it.
Couldn’t you just put “use what you want” on your profile or something where you upload instead of wasting time with licenses?
> no license at all
I think the point of a license is to affirm user freedoms, and to make explicit that it is free to use.
If something public has no license, I would probably assume that it’s proprietary (but not necessarily closed-source) and therefore is illegal to use without getting the author’s permission. The default is that you in general can’t use copyrighted material without the copyright owner’s permission, save for fair use. In my view, this position is stupid and bad because it impedes freedom of information, but unfortunately this position is the law.
>The default is that you in general can’t use copyrighted material without the copyright owner’s permission, save for fair use
More like the default is you can do whatever the fuck you want with copyrighted material as long as the owner isn’t made aware
I sympathize with that attitude, but I cannot guarantee an employer or my customers that the owner won’t be made aware by some goodie two-shoes.
I’m not saying you shouldn’t ever use copyrighted material without permission. Actually, my view is that copyright is stupid and needs to be abolished, and that the entire purpose of FOSS licensing is to protect against the quirks of copyright and actors powerful enough to abuse them. However, just because you can (and arguably should) pirate copyrighted material doesn’t make it always a prudent choice.
I am an anarchist, so I’m not interested in complying with the law for its own sake. However, I am interested in how the (thugs who enforce the) law could clamp down on me or my customers for reusing other people’s work. Unfortunately, that requires either using FOSS, or going through the dog-and-pony act of setting up a licensing agreement. It is absolutely plausible considering my field that an employer might force me to use proprietary software or even allow my product to be proprietarily licensed, as much as I loathe proprietary shitware.
I usually use MIT, partially because my current interests (AI/LLM stuff) involve interfacing with some other projects that are MIT and partially because it’s just a simple “do whatever” license and I don’t really care to enforce terms. Of course, if I thought some government or company was going to use stuff I develop to launch the nukes or control a robot fist to punch cute little puppies right in the snout then I’d start using a more restrictive license but the odds of that are… pretty much nonexistent for everything I’ve ever created.
> if I thought some government or company was going to use stuff I develop to launch the nukes or control a robot fist to punch cute little puppies right in the snout then I’d start using a more restrictive license
A more restrictive license wouldn’t help in that case. They would just have to publish any changes they made to your code. The primary benefit of restrictive licenses like the GPL is to prevent someone from using your code in a proprietary project without contributing anything back.
> A more restrictive license wouldn’t help in that case.
Well, it depends. Elsewhere in the thread, people mentioned licenses that have ethics clauses:
How enforceable (or whether I would actually have the resources to do something) these are is another problem, but it still might give some entity pause. Just generally though, using a restrictive license like GPL is pretty likely to make Puppy Punching Worldwide Inc look for other alternatives as well. Odds are, their puppy punching software isn’t going to be compatible with a license like the GPL.
Always MIT, I want to be able to use my own (and others) software in my commercial ventures.
Usually (A)GPL for my own, personal projects. I don’t want my effort to be commercially successful elsewhere when I see nothing of it. Theoretically, it would still allow licensing to other parties if any show interest - although that never happened and I doubt it ever will.
Otherwise - I guess mostly when I work on other projects that are not personal / self-created - MIT or BSD. I generally don’t have a problem with contributing permissively.