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