"<i>When I release an open-source program, I want to guarantee something very simple. The program and its source code can be distributed and used by anyone for any purpose, and all modifications to the program must be released as open-source under these same terms. I want to guarantee that the program and any improvements made on it are available to anyone, proprietary or not, forever.</i>"<p>Those terms are contradictory.<p>On the one hand, you want to guarantee "The program and its source code can be distributed and used by anyone for any purpose." That seems to mesh with the BSD license in a straightforward way: you want people to be free to use the code in proprietary or open source applications. On the other hand, you also "want to guarantee that the program and any improvements made on it are available to anyone, proprietary or not, forever." That requirement is much closer to the GPL (or even the AGPL): if someone distributes a modified version of the software, you want the source of those modifications to be released so other people can modify their application in the same way. Unfortunately, that requirement is also completely at odds with the BSD license you champion in your blog post; under the BSD license, I'm free to modify your application and distribute a modified binary without ever releasing the source. There's no guarantee that modifications are ever made available to anyone.<p>A lot of the rest of the post appears to be hyperbolic anti-GPL rhetoric, not backed by any facts or examples. "<i>A company has zero motivation to help improve GPL'd software because they can't benefit from their improvements</i>" for instance. RedHat or Canonical serve as decent counter-examples.<p>There are many legitimate reasons to disagree with the GPL's philosophy: this is not one of them.