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.
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.
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.