V: Which license to use?

Created on 16 Mar 2019  Â·  36Comments  Â·  Source: vlang/v

I was going to publish the source under GPLv3 with the linking exception.

To me it looks like an ideal option: it protects the project and its contributors, and it doesn't result in any inconveniences for companies, since a compiler is not a library that has to be linked. And of course it can be used to develop proprietary software.

But several people think I should go for a copyfree license.

What are the drawbacks I'm not seeing?

Update I'm now considering MPL instead of GPLv3.

Most helpful comment

All 36 comments

Use Apache 2 or MIT or someting non viral, non threatening. Just seeing letters GPL may scare many people.

Yeah, or some sort of three clause BSD license.

ISC / MIT. Many companies will now stay away from GPL as much as possible.

the compiler must be under a permissive license if you want it to gain more popularity. I do not think that we will lose anything from this. It is beneficial for proprietary companies to commit their work to the community in order not to support their own code.

GNU recommend Apache 2.0 if permissive
or you can make dual licensing, as Rust compiler do

https://www.gnu.org/licenses/license-list.en.html
https://choosealicense.com/licenses/
https://choosealicense.com

Thanks.

Can you please explain why developers/companies could be scared off by a GPL licensed _compiler_?

I'd understand if it were a library, then most simply wouldn't be able to link it. But you don't link a compiler, and the linking exception allows to use the stdlib without any limitations.

And if they want to modify the compiler, well, then like you said, it's easier for companies to contribute rather than support their own fork any way.

Just genuinely interested.

With a permissive license, companies can use your product inside their products, for example, as an alternative to Lua or Python scripts, for example in games. I do not know how your compiler works, whether it generates a native binary or just transpile to C. You know it better. If it is a C transpiler, then probably the GPL license will be enough for all.

Otherwise, a permissive license is necessary or the business will not need it, which means your product will not receive additional investments (human resources)

As a developer, GPL looks complicated to me.
Is there a reason why MIT or Apache isn't good enough for the V compiler?

Among the others, I think that the MIT License will be the best choice for the V compiler.

There is no regulation of patent relations in MIT.
Apache 2.0 is a more modern, balanced license with patent law regulation. Which is recommended by GNU.

With a permissive license, companies can use your product inside their products, for example, as an alternative to Lua or Python scripts, for example in games.

V is not an interpreter. It generates binaries. Companies are free to use binaries/libraries generated by V inside their products.

I do not know how your compiler works, whether it generates a native binary or just transpile to C.

V can emit C and generate machine code.

If V under GPL included in some OS, all OS should be under GPL. So, with GPL V won't be included in Windows and other proprietary systems.

Also, if someone wants to use V as DSL in some proprietary system he can't do it with GPL.

And yes, nobody knows anything about licenses except MIT and Apache, so other licenses will slow down popularity growing for V.

If V under GPL included in some OS, all OS should be under GPL. So, with GPL V won't be included in Windows and other proprietary systems.

I don't think that's correct. For example, macOS includes bash (licensed under GPL2), this doesn't mean entire macOS has to be GPL'ed. You have to GPL your code only if you link against GPL libraries and distribute the result.

And yes, nobody knows anything about licenses except MIT and Apache, so other licenses will slow down popularity growing for V.

The license and contribution rules can be explained at the very top of README.md.

You could go the route of ISC instead of MIT.

"The ISC license is functionally equivalent to the BSD 2-Clause and MIT licenses, removing some language that is no longer necessary."
Sources: choosealicense, wikipedia

I don't believe the MPL has been mentioned yet and it seems to provide much the same Conditions as GPLv3 but without all the backlash that comes with it.

Thanks @genuinebyte

What are the benefits of MPL over GPLv3? Allowing to do static linking? That's handled by the linking exception.

I was only commenting on the `Linux Kernel not adopting GPLv3. Your judgment is almost certainly better than mine. If anything MPL might be shorter to digest for a developer but if the license is explained at the top of the readme any license will probably be fine. I'm not a lawyer :)

I like simplicity. So MPL looks like a better choice.

In my opinion, just having the letters GPL in the license are likely to put people off - linking exception or not. What benefits does the GPL have in this instance?
For example, if I were writing a game and wanted to create a byte-code backend for V so I could use it as a scripting language and embed that in the game, I wouldn't be able to do that without releasing my entire game as GPL.
Also it makes creating tools around the language harder. Things like IDEs might want to use parts of the compiler more like a library in order to support things like displaying errors as you type, or code reformatting and so on.
MIT is my preferred option, but anything permissive would be better than GPL in my opinion.

I like simplicity. So MPL looks like a better choice.

Simplicity for people is not to use licenses that not known for them. Seriously, nobody knows about licenses more than "Apache and MIT is cool, other licenses are strange".

There's the Blue Oak Model License which is modern and clear.

A compiler can be a library, too. I'm just a random nobody, but if V uses a non permissive license, it doesn't exist, as far as I'm concerned. Sometimes, you need to be brave instead of trying to be protective. Be a good caretaker with a good community, and you'll stay at the center.

From my point of view, while not as burdensome as the GPL, the MPL still suffers from a couple of issues. Firstly, it is not as well known as other licenses, so in order to determine whether it will fit my use case, I would need to read through the licence and understand it's implications, and/or pay a lawyer to do that for me.
That is going to be a definite barrier that I wouldn't underestimate.
Assume again for a moment that I were interested in embedding parts of the compiler into a game engine in order to use it as a scripting language. As the game engine would constitute a larger work, I would only be required to share my changes to the original compiler source files, but the MPL seems to leave some open questions here. Without the surrounding code, would the changed files even need to compile anymore?
If I particularly wanted to be secretive, what would be the benefit to the community of sharing my changes if all the interesting bits are simply put into new source files (and therefore don't need to be shared)?
These kinds of open questions would definitely put me off considering using V for this kind of project - which would be a shame as I think it could be a good fit (simple, quick to compile etc).
For a brand new language trying to build a community, the fewer barriers to entry the better, I would say.

Thanks a lot for your input @wilberton

Alex said in a private email about an hour ago that he had dropped the idea of using GPL and was now deciding between MPL 2.0 and Apache.
Of those two, I prefer Apache. Personally, I use the simple and well-understood MIT license for the freeware I write.
By the way, I agree with most of the comments above, including those by @wilberton

Needless to say, I recognize and respect Alex's right to choose whatever license suits him.

All right, the consensus is clear :)

Thanks to everyone for your feedback.

For better adoption I need to reduce friction wherever I can. Simple language, simple license.

MIT.

@medvednikov ,

For better adoption I need to reduce friction wherever I can. Simple language, simple license.

MIT.

Although it's post factum, as a passer-by I would like to remark the offer of @rgb-one here.

MIT and BSD seems simple only to a non-lawyer. Lawyers get a legal confusion. Then, they avoid stating clear relationship regarding patents. Then they explicitly don't expect contributors other than the first ones. Times have changed, as the saying goes.

Due to all that several lawyers say to have created a Blue Coat Model license 1.0.0:
https://writing.kemitchell.com/2019/03/09/Deprecation-Notice.html

It's like Apache License 2.0 -- permissive and cares of software patents, but also is designed to maximize clarity for both lawyers and tech people.

(2 cents)

Gotta say, after reading the argument linked and the license itself, Blue Oak really seems like the best choice. Not sure if this will be revisited, but fwiw

Very fair points, especially re: the length of time MIT has stood. Blue Oak might fit the aesthetic of V though? Replacing things that have worked well enough but could be better, after all. But that's a somewhat specious thing to base the choice of license

One big thing to seriously consider here is the pragmatism of choosing a license that is friendly to both Apple's and Microsoft's potential utilization of the language. It's really, really good you've moved away from the GPL, however it might be important to also take one more good look at MIT vs BSD: https://opensource.stackexchange.com/questions/217/what-are-the-essential-differences-between-the-bsd-and-mit-licences

I don't think you can go wrong with MIT, but BSD MIGHT be more friendly to Apple simply due to their attorney's familiarity with it from necessity by using BSD code bases.

Again, _I think MIT is fine_, but I just wanted to put a razor's edge to the topic for one final glance to make sure licensing doesn't somehow come back down the road to bite V in the butt.

people prefer MIT. No difference with BSD-2, but MIT is more accurate. It doesn't look like Apple will find the difference between MIT and BSD-2.
https://github.blog/2015-03-09-open-source-license-usage-on-github-com/#breakdown-of-license-usage

@whoizit interesting read. I have to say that I disagree with the author on his points and experiences from my own context.

@whoizit wrote:

No difference with BSD-2, but MIT is more accurate.

What do you mean by being more accurate?

If getting this from the lawyer's point of view, MIT is legally uncertain in a quite strong way. At least with regard to the US federal IP law: https://writing.kemitchell.com/2016/09/21/MIT-License-Line-by-Line.html

To quote some redflags:

Grant Scope
[...]
has no specific meaning in court [...] What the court will see is that the language is intentionally broad and open-ended. It gives licensees a strong argument against any claim by a licensor that they didn’t give permission for the licensee to do that specific thing with the software, even if the thought clearly didn’t occur to either side when the license was given.

First, “including without limitation” is a legal antipattern. It crops up in any number of flavors:

[...] many, many pointless variations

Second, the verbs given as examples of “deal in” are a hodgepodge. Some have specific meanings under copyright or patent law, others almost do or just plain don’t:

And more.
So I am very interested in what way is the MIT more accurate.

@sskras sorry, my English is bad. Nevermind

Was this page helpful?
0 / 5 - 0 ratings

Related issues

cjmxp picture cjmxp  Â·  3Comments

lobotony picture lobotony  Â·  3Comments

shouji-kazuo picture shouji-kazuo  Â·  3Comments

arg2das picture arg2das  Â·  3Comments

taojy123 picture taojy123  Â·  3Comments