GPL places no restrictions on how you USE the software.
You can use it for any purpose. You can modify it, adding or deleting code in any way you want.
If you don't redistribute the software, it ends there.
The GPL only comes into play if you redistribute the software. You then have the responsibility to pass on the source code with any modifications you've made so that subsequent users have the same rights you do.
Other licenses like BSD and MIT do not have these restrictions. You could fork and close the software, distributing binaries that do things the users might not agree with but would not be able to discern and counteract.
I've been debating GPL vs MIT in my head a bit lately. I've always thought that when I do open source my projects they would be GPL because I always liked the idea that if I am going to share, you have to share as well.
In the last little while I have been wondering if the negative side effects of forcing others to be open outweigh the benefits.
I don't really have a point. I just think its interesting.
I used to be pro-MIT, now I'm increasingly leaning towards licensing my stuff under GPL. Yes, this means some of that stuff won't be usable in a typical commercial settings (and there were times where I had to roll my own implementation of some functionality at work, because the only good library available was under GPL). But I want to live in a world GPL tries to make happen.
MIT & friends are licenses that benefit developers. GPL family focuses on benefits to end users.
The core MIT/GPL licensed code is always going to be free.
The license restricts people in what they can do with _their_ modification of that code. E.g. whether they can package _their_ modifications of it as closed.
As the recipient of an MIT-licensed binary, you have no rights. As the recipient of a GPL-licensed binary, you have the right to ask for the accompanying source code.