If, like me you are rarely sure what your goals are when you are building software… (maybe the programming game is more like whack-a-mole, with multiple targets rather than football or hockey where are only goals at either end of the field) you could think like this:
What Are You Afraid Of? Another way of looking at it is that you’re picking a license based on what you are afraid of. All of these licenses assume you’re afraid of being sued. The MIT license is if you’re afraid no one will use your code; you’re making the licensing as short and non-intimidating as possible. The Apache License you are somewhat afraid of no one using your code, but you are also afraid of legal ambiguity and patent trolls. With the GPL licenses, you are afraid of someone else profiting from your work (and ambiguity, and patent trolls). This is a radical simplification, but if nothing else it can be a helpful framework in discussing with your attorney what license makes sense for your software. Which License Should I Use? MIT vs. Apache vs. GPL
For me, the most salient context for building software is historical. My decisions have been based on observing the centuries old battle between proprietary resource protection instincts vs. what I’d call ‘socialized’ IP regimes, like FOSS… As a sidenote, if like me, you are apprehensive about Big Tech interfering with FOSS, there are more and more licenses that speak to those common anxieties too.