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