I have asked a similar question before but this time I want to focus on go
language. I have been reading the wiki page of go language and realized there is a license segment in the summary which says BSD style + Patent grant
. I'm aware that there is also a gcc
frontend for go
which I'm guessing have something like GPL
license although there was no mention of it in the wiki page, which made me wonder:
Is the mentioned BSD
license intended for:
if there are such distinctions at all?
A practical answer would be welcome (i.e. how can I license a source or binary?) as well as a contrast to the old languages (C
, C++
, Java
) if any..
Most parts of Go are licensed under a three-clause BSD style license and patent grant. This includes the gc compilers, standard libraries, and other related tools. There are two notable exceptions I'm aware of:
The language specification and other website documentation are licensed under the Creative Commons Attribution 3.0 License. Scroll to the very bottom of any page on golang.org to see. (I suppose this means that some source code comments are licensed the same way, which seems a little strange.)
gccgo's frontend is uses the same BSD style license as the rest of Go, however because it must be linked with the rest of gcc, it's effectively GPLv3. (Note that, contrary to janneb's claims, gccgo does not share any code with the other compiler. It does share some runtime code.)
There are ongoing efforts to separate out the parts of the gccgo frontend that depend on gcc so that it could be used as a frontend for other Go compilers, such as maybe an LLVM-based compiler. Such a compiler could be released completely under the BSD style license.
The BSD license applies to the compiler and the standard library. I don't know what license the "language itself" is under; what does that even mean, the text of the language spec, or?
The go frontend in GCC is also BSD licensed (AFAIK it shares code with the other go compiler), although the rest of the GCC compiler remains under the GPLv3.