License to License - A Question Of
Yes, I ended the blog title on a preposition, but I omitted needless words.
With the Mynx project there are two major elements:
Each requires a formal legal permission for use of some kind, the infamous legality -- a license.
For the Mynx book, there were four options:
From what I’ve read, a standard copyright and Creative Commons are approximately the same - fair use, cite the source and author for credit, and possibly restrict the use to non-commericial uses and no derivatives as specific permissions. Some criticism of Creative Commons in the open-source and free software movement has been directed at the fact. Creative Commons seems to formalize this as a license - and is good for online blogs and web pages (at least in my opinion), which is why I'll use it for just that purpose. But some criticism of Creative Commons points Creative Commons states the obvious of a copyright, and therefore is a license of no license.
Public domain is ultimately where a copyrighted work goes - a contribution to human knowledge (although intellectual property issues, and such laws as the Digital Millenium Copyright Act (DMCA) are changing that...). But public domain relinquishes control over the work, how it is used, how it changes.
Originally, the GNU Free Documentation License seemed problematic (see the Debian Linux discussion) but the issue of invariant sections is simple. If invariant sections are problematic, then do not use them. The invariant sections make sense to me though, if elements of the documentation should remain constant, such as references, credits, and design rationale. So using the GNU Free Documentation License seemed the best choice for the Mynx programming language manual. As the author and copyright owner, I'm open to new material, contributions, and so forth -- another version of the MPLM that would incorporate the changes, and supercede the previous MPLM. In fact, Debian opted to use the FDL.
There are a dizzying plethora of licenses to choose, but for my own work the question of license was among a quadruple of licenses.
Both the compiler/tools and software/libraries are similar, only the libraries are used as a part of applications and other libraries. The compiler and tools are used to write and create software, but not an integrated part. The distinction is important in selecting a license.
Public domain license has the problem in software as in documentation - loss of control, and for a programming language can lead to fragmentation of the language in different variants and flavors -- consider what happened to the Pascal programming language. The compiler in Pascal was copyrighted, but the software for the compiler was not licensed except freely in the public domain. Pascal became widely used but fragmented in many a different flavor.
A proprietary license would have to be created, and even then the software is restricted, going to another extreme opposite from public domain. The whole value of a programming language is in its ubiquity, so a proprietary license is not compatible with that goal.
The licensing issue boils down to two licenses - GPL and BSD. Both are open-source, promoting dissemination and ubiquity. The major difference is that GPL requires open-source under the same terms if changes are made, whereas BSD any improvements or changes can be made but not released or licensed under the BSD license. BSD is use and give credit, but no “reverse information” unlike the GPL license.
In some online forums and discussion groups, the supporters of the BSD license often focus on the “right to not restrain my or others right” to give changes back under the same terms. Using the BSD license also acts as a “freebie” - you can modify and keep the changes private, only credit the original creators.
But I beg to differ -- as the creator of the software, I can determine the legal guidelines for the use of my work. And, more to the point, I can also license per case non-GPL license of my work to specific individuals. But for the anonymous public users in general, GNU GPL is a means to ensure changes to the original work do not disappear into the shadows of proprietary intellectual property in the language or the compiler. The BSD license is open-ended, so changes can go private.
The two things I fear about Mynx are the idea of proprietary extensions incompatible with the core language, and embrace and extend approach to adding specific features to the compiler. In the case of the Pascal language proprietary extension was to add needed features to a impotent language, but in terms of a software license its to avoid specializing software into a proprietary variant of language or compiler.
By giving the software as open-source, I want it to stay open to the general public using the language--the power of the language is in its widespread use.
And there are those that might download, build, and use the Mynx compiler, but never make changes thus never have to give something back as there is nothing to give back. But the users of the software can’t just change the name, give me credit, and distribute a new variety of compiler either.
For libraries that are used, and the problem with mixing open-source with proprietary or incompatible licenses, I think the Classpath Exception works well.
So to summarize--for Mynx, the licenses for the elements of the project are:
Using both GNU licenses has the added advantage of simplicity. One final consideration was existing software out there, and I opted to err on the side of caution. The GNU C (GCC) project are released under both GNU licenses, so from the long-term experience in practice in widespread ubiquity, was the compelling factor in line with the goals of the Mynx project.
With the Mynx project there are two major elements:
- Mynx programming language manual (MPLM) “Mynx book”
- Mynx compiler/tools
- Mynx libraries
Each requires a formal legal permission for use of some kind, the infamous legality -- a license.
Mynx Programming Language Manual
For the Mynx book, there were four options:
- Copyright with All Rights Reserved
- Public Domain
- Creative Commons
- GNU Free Documentation License
From what I’ve read, a standard copyright and Creative Commons are approximately the same - fair use, cite the source and author for credit, and possibly restrict the use to non-commericial uses and no derivatives as specific permissions. Some criticism of Creative Commons in the open-source and free software movement has been directed at the fact. Creative Commons seems to formalize this as a license - and is good for online blogs and web pages (at least in my opinion), which is why I'll use it for just that purpose. But some criticism of Creative Commons points Creative Commons states the obvious of a copyright, and therefore is a license of no license.
Public domain is ultimately where a copyrighted work goes - a contribution to human knowledge (although intellectual property issues, and such laws as the Digital Millenium Copyright Act (DMCA) are changing that...). But public domain relinquishes control over the work, how it is used, how it changes.
Originally, the GNU Free Documentation License seemed problematic (see the Debian Linux discussion) but the issue of invariant sections is simple. If invariant sections are problematic, then do not use them. The invariant sections make sense to me though, if elements of the documentation should remain constant, such as references, credits, and design rationale. So using the GNU Free Documentation License seemed the best choice for the Mynx programming language manual. As the author and copyright owner, I'm open to new material, contributions, and so forth -- another version of the MPLM that would incorporate the changes, and supercede the previous MPLM. In fact, Debian opted to use the FDL.
Mynx Compiler/Tools and Mynx Libraries
There are a dizzying plethora of licenses to choose, but for my own work the question of license was among a quadruple of licenses.
- Public Domain
- Proprietary License
- GNU General Public License (GPL)
- BSD License (BSD)
Both the compiler/tools and software/libraries are similar, only the libraries are used as a part of applications and other libraries. The compiler and tools are used to write and create software, but not an integrated part. The distinction is important in selecting a license.
Public domain license has the problem in software as in documentation - loss of control, and for a programming language can lead to fragmentation of the language in different variants and flavors -- consider what happened to the Pascal programming language. The compiler in Pascal was copyrighted, but the software for the compiler was not licensed except freely in the public domain. Pascal became widely used but fragmented in many a different flavor.
A proprietary license would have to be created, and even then the software is restricted, going to another extreme opposite from public domain. The whole value of a programming language is in its ubiquity, so a proprietary license is not compatible with that goal.
The licensing issue boils down to two licenses - GPL and BSD. Both are open-source, promoting dissemination and ubiquity. The major difference is that GPL requires open-source under the same terms if changes are made, whereas BSD any improvements or changes can be made but not released or licensed under the BSD license. BSD is use and give credit, but no “reverse information” unlike the GPL license.
In some online forums and discussion groups, the supporters of the BSD license often focus on the “right to not restrain my or others right” to give changes back under the same terms. Using the BSD license also acts as a “freebie” - you can modify and keep the changes private, only credit the original creators.
But I beg to differ -- as the creator of the software, I can determine the legal guidelines for the use of my work. And, more to the point, I can also license per case non-GPL license of my work to specific individuals. But for the anonymous public users in general, GNU GPL is a means to ensure changes to the original work do not disappear into the shadows of proprietary intellectual property in the language or the compiler. The BSD license is open-ended, so changes can go private.
The two things I fear about Mynx are the idea of proprietary extensions incompatible with the core language, and embrace and extend approach to adding specific features to the compiler. In the case of the Pascal language proprietary extension was to add needed features to a impotent language, but in terms of a software license its to avoid specializing software into a proprietary variant of language or compiler.
By giving the software as open-source, I want it to stay open to the general public using the language--the power of the language is in its widespread use.
And there are those that might download, build, and use the Mynx compiler, but never make changes thus never have to give something back as there is nothing to give back. But the users of the software can’t just change the name, give me credit, and distribute a new variety of compiler either.
For libraries that are used, and the problem with mixing open-source with proprietary or incompatible licenses, I think the Classpath Exception works well.
Synopsis
So to summarize--for Mynx, the licenses for the elements of the project are:
- Mynx book/MPLM - GNU Free Documentation License
- Mynx compiler/tools - GNU General Public License
- Mynx libraries - GNU General Public License with Classpath Exception.
Using both GNU licenses has the added advantage of simplicity. One final consideration was existing software out there, and I opted to err on the side of caution. The GNU C (GCC) project are released under both GNU licenses, so from the long-term experience in practice in widespread ubiquity, was the compelling factor in line with the goals of the Mynx project.

