I don’t think the Scala Platform projects should be encouraged to use any particular kind of license, except to encourage collaboration within the ecosystem.
I personally understand all the arguments for share-alike licenses, like GPL or MPLv2. And for applications and end-user products those might be the best choice, however I don’t find the share-alike mentality to be healthy for libraries.
For every GPL success story, like the Linux kernel, you can also find a LLVM that was born primarily because GCC made it hard to extend and use as a library on philosophical grounds and LLVM is winning.
As a matter of fact, the Linux kernel itself was more successful than BSD because of the USL v. BSDi lawsuit, because Linux was the first to adopt a decentralized development model, that remains to this day much more decentralized than any of the BSDs, because it was distributed along with the GNU toolchain, because it had a community. In other words Linux was successful because people collaborated for its development and naysayers can place the blame on its license, however I don’t believe it was the license, as sharing doesn’t happen and communities aren’t built because a piece of paper says so
Apache 2.0 is a strong license created by lawyers and one of the few that has a patents grant in it. I feel safe when using Apache 2.0 licensed projects and this license is also very popular throughout the whole Java ecosystem. Off the top of my head I can name about 10 projects that I use licensed with Apache 2.0, whereas for MPL I can only name Firefox, which practices dual licensing, so it doesn’t count for much.
As a matter of personal opinion, I believe copyleft licenses impede collaboration because you can import code using a less restrictive license into a copyleft project, but that’s a one way street. In other words copyleft is about protections against reuse and that’s not relevant only for commercial projects, working against other open-source projects as well.
Of course, I don’t want to impose my preferences on the rest of the community. Everybody else should pick the license that best fits their own project. The only guidelines I would draw would be in terms of collaboration and compatibility with the rest of the community:
- license should be compatible with the popular licenses in the ecosystem (e.g. L/GPLv2 is not compatible with Apache 2.0)
- license should allow effortless embedding / linking in proprietary/commercial projects and this should include “shading” IMO (e.g. GPL without an exception clause is out, LGPL too ;-))
- license should be standard (not a roll your own BSD or MIT with dumb clauses attached - e.g. beware the “do no evil” jokes)