Mono Relicensed as MIT
mono-project.com
mono-project.com
Go is making progress there, but those that want a more mature type system will probably appreciate C# more.
(Note: I don't know anything about the Java / C# licenses. This is just talking in general.)
The tone here sounds very angry. You aren't "bit" by the GPL, you choose to participate in the usage of the license and the community of code that comes with it. It's not some unknown, nasty thing you need to constantly defend yourself against (as implied by "being bit" like it's a dog you need to watch out for everywhere).
"We're auditing everything we use for license issues because we activly choose not to participate in the GPL community and would rather abuse and profit from other people's good will" is closer to realitiy
It's not like you had a _choice_ if there's software you want to use and it's only available as GPL.
You'd have only chosen if there were 3-4 license options for the same software, and you went with GPL willingly.
Sure you do; if you don't want to accept the GPL license terms, you can write your own software that fulfills whatever function you wanted the GPL code for.
Sure you do. Write it yourself.
1) begrudgingly adopting a licence you don't like or want
over:
2) re-creating man years (or decades) of effort to reproduce a certain project
Especially if you lack the programming skills or money, it's not a choice at all -- you only have one option.
So in those cases you "don't chose GPL" -- you chose the project you want to use, AND have to necessarily suffer GPL too because of that choice.
WHATEVER THE ORIGINAL AUTHORS' REASONS FOR CHOOSING THE GPL (sic), it doesn't change the situation that one might not be happy for a project they want to use being in GPL -- including people who don't intend to make it proprietary, but who prefer BSD licenses nevertheless.
You've just outlined the choice that the person has. Admittedly, I wouldn't use the GPL for libraries, I've started using the MPLv2 for stuff like that. I don't really agree with the common reading of the combined work clause in the GPL wrt libraries (a work that uses a library's API shouldn't be bound by the copyleft of the GPL IMO -- but as Oracle has proven, APIs appear to be copyrightable).
> WHATEVER THE ORIGINAL AUTHORS' REASONS FOR CHOOSING THE GPL (sic), it doesn't change the situation that one might not be happy for a project they want to use being in GPL -- including people who don't intend to make it proprietary, but who prefer BSD licenses nevertheless.
BSD licenses allow distributors of the software to make it proprietary. That was clearly a more important problem to the author and community of the software than allowing GPL-incompatible projects to use the code. It's a fundamentally ethical decision, which you may disagree with if you follow the open source (as opposed to free software) philosophy.
The part you seem to avoid agreeing with is that it can often be a really annoying choice to have to make. Isn't everybody entitled to be annoyed when they only have one so-called choice? (Like having to move or use slower alternatives in order to get away from Comcast as your ISP.)
Continually pointing out that there is technically a choice doesn't really help anyone who feels bitten by their lack of choices.
> It's not like you had a _choice_ if there's software you want to use and it's only available as GPL.
You can either write it yourself, don't implement that feature or comply with the GPL. The GPL would be a pretty bad copyleft license if companies could just ignore it because "we want to keep our stuff proprietary".
The authors of the software wanted to ensure that all users of their code would have perpetual freedom. Complaining about it without recognising their reason for using the GPL is quite a selective argument. They don't want you to use their code if it means that you'll take away your users' freedom.
It doesn't seem fair to mention one without the other, since the latter is the primary reason why many, many developers choose to not use the GPL.
Also, I don't see how the person who said they don't want to get "bit" by the GPL is "Complaining about it without recognizing" anything? To begin with, it seems completely subjective.
I can feel totally "bitten" by the fact that I only have one choice of cable company in my area, even though their monopoly is totally legal...but I didn't agree to any of it. Similarly, no developer really has a choice but to use GPL software if they want to live in the Linux neighborhood. (But they shouldn't complain according to you because they have the "choice" of going off on their own to re-build 20 years worth of core Unix utilities.)
Only if you redefine the word "freedom". Both developers and users have the same four fundamental freedoms. The only difference is that the developers don't have the "freedom" to enslave their users. But that's like claiming that you don't live in a free society because you can't enslave people -- just because you don't have the "freedom to enslave others" doesn't mean that you don't have freedom.
> Similarly, no developer really has a choice but to use GPL software if they want to live in the Linux neighborhood.
Nobody has actually explained why this is a bad thing. Is it because "developers don't want their users to have freedom"? Many companies exist that sell GPL software, so it's not a monetary thing. And your cable company analogy is flawed because the GPL doesn't force you into a monopoly.
And, by the way, not all software in the "Linux neighbourhood" is under the GPL. So that's an unfair exaggeration (although I do honestly wish more of it was).
> But they shouldn't complain according to you because they have the "choice" of going off on their own to re-build 20 years worth of core Unix utilities.
If they don't want to contribute to a community that values user freedom, then they won't be welcome in that community. I don't understand why someone would be surprised by this.
No. The GPL removes my freedom to sell something that I've created.
> The only difference is that the developers don't have the "freedom" to enslave their users.
This is where I think your entire argument falls apart: Offering users the choice to buy my software is not enslaving them. If it is, then so is the GPL because it's a choice that users can buy into or not...just like the choice that the GPL offers to developers.
You can't have it both ways. If commercial software "enslaves" users by simply offering the users a choice to buy the software, then the GPL must also be enslaving developers by simply offering them a predatory contract.
No it does not. You can still sell the first copy, technically and practically. You can still technically sell licenses - it is just practically made difficult because those you sell the work to can share it.
> No. The GPL removes my freedom to sell something that I've created.
That's patently false. Many companies (SUSE and RedHat come to mind) sell free software. The only difference is that you can't create a monopoly of experts in the software you wrote. The business model of free software works through selling support (such as L2, L3 and developer support that can implement features and fix bugs much faster than upstream would).
> This is where I think your entire argument falls apart: Offering users the choice to buy my software is not enslaving them.
The GPL allows you to sell software. That's not how free software works. I believe you may be confused by the word "free". In this context, it refers to freedom, not price. There are quite a few companies that sell free software, and it's disingenuous to claim that they don't exist.
> If commercial software "enslaves" users by simply offering the users a choice to buy the software
Proprietary software, and the choice to "buy software" has nothing to do with the free software movement. Again, free refers to freedom. There are several commercial free software companies.
Proprietary software enslaves users by making them helpless against a developer that may mistreat the user (and the user can't do anything about it).
I find your propensity for double standards amazing. These so called "enslaved users" made a choice to buy into the developers proprietary software. It's the same exact thing as developers buying into the GPL.
So, if proprietary software is enslaving users, then the GPL is most definitely enslaving developers.
You can argue semantics all day long....but you'd still be wrong. But anyway, I'm glad that next to nobody releases new software under GPL anymore and that the vast majority of developers prefer a license like MIT that doesn't enslave developers at all.
Good luck to you!
If you don't audit, you don't know if you are in breach of the GPL or not. Your corporate counsel will want you to audit. You can't reasonably take any action, including open sourcing your project or even posting code snippets on a company engineering blog, until you know which licenses you actually use.
Its quite common to find commercial copyright infringement in all of those (except for the unreal engine, since I don't know publicized case of that), and there are artists who earn a fair income by contacting infringes and demand payment or a cease and desist. I wouldn't however describe that as being bitten by the rightful author, but put the blame on the developer who is using someone else work without permission, especially if they their own business model is based on copyright.
Just as easily as it is for a designer to use a copyrighted work. The GPL isn't a boogieman, every project that's under the GPL says so. If a developer isn't mindful enough to realise that they shouldn't randomly copy-paste library dependencies without knowing anything about them isn't a very good developer.
That's a logical fallacy called: No true Scotsman. In this case - Good developers can be good at some things but bad at other things, so there's absolutely zero correlation between "good/bad developers" and "people who remember/forget to think about licensing".
In a predatory lending/loan sharking scheme, the lender offers their product (money) to people who need it (borrowers) who must agree to extraordinarily high interest rates.
This seems very similar to the GPL since it's just a software agreement that includes extraordinary clauses for developer who "borrows" the product.
I was using "bit" colloquially, and my tone wasn't angry. We "choose not to participate in the GPL community" because we sell software, and if that software could be requested for free, we couldn't exactly stay in business trying to sell it. I have nothing against the GPL, and I'm pretty certain the management and rest of engineering don't either.
In fact, I/we aren't trying to abuse and profit form other people's good will. That's why we check the licenses of software/libraries we use: to respect the way in which it was licensed. We have to keep our software closed source, so we obey the licenses that could require us to make it open source.
I'm quite familiar with the evolution since then too. For example, back in 2006, I advocated implementing a CPS transformation to make better use of async code in .NET:
http://blog.barrkel.com/2006/07/fun-with-asynchronous-method...
It only took 7 years for async methods to come out, but they're there now; and I understand their utility in no small part because I was one of the people asking for them.
Including the APIs?
>Is Oracle JDK based on OpenJDK?
>Yes. Oracle JDK is based on the OpenJDK source code. In addition, it contains closed-source components. The final result is licensed under a Binary Code License.
It's popular as in the "popular latest javascript UI/UX" sense. Not to diminish Go _extraordinary_ achievements, however it's still to early to say.
E.g. Ruby - used to be _mega_ popular, everything was Ruby at some point. Hype is over and it doesn't look too promising. Niche is taken and it stays there.
Well, you came off sounding kind of arrogant. I'm not sure what this has to do with the discussion. There are many valid uses of java that can be done in go, regardless of its popularity. There are many valid uses of java that can not be replicated in go, regardless of its popularity. You can swap out that criticism with pretty much any language built in or after the 90s and it's still just as valid.
I mean, feel free to critique—it could very well be at its peak popularity and cannot take ANY MORE java marketshare—but this still requires argument.
I'm not going to comment on the "hype" point, since your probably right. I just wanted to mention that I found out the other day that the Go garbage collector doesn't free memory. So your process will never shrink in memory usage (on Linux it uses MADV_DONTNEED and on BSD&Solaris it used MADV_FREE -- which means that essentially the page of memory becomes an overcommitted page that doesn't exist anymore). But that still won't stop your kernel from killing it.
> It's popular as in the "popular latest javascript UI/UX" sense. Not to diminish Go _extraordinary_ achievements, however it's still to early to say.
> E.g. Ruby - used to be _mega_ popular, everything was Ruby at some point. Hype is over and it doesn't look too promising. Niche is taken and it stays there.
But it should at least stop growing (unless my understanding about non-moving GCs is off, which it could be).
> But it should at least stop growing (unless my understanding about non-moving GCs is off, which it could be).
As long as there isn't a bug in the GC :P. I'm currently debugging a Docker problem that looks like a bug in the GC, I'm not sure.
If you mean `free` as it's used in `C`, then I guess technically, it doesn't `free` memory, but I fail to see the practical difference between that and how it it releases memory back to the OS - which is does.
> So your process will never shrink in memory usage
I think you've been mislead. This statement is observably false.
> If you mean `free` as it's used in `C`, then I guess technically, it doesn't `free` memory, but I fail to see the practical difference between that and how it it releases memory back to the OS - which is does.
Misusing memory overcommitment doesn't count as "freeing" memory. Sure, it happens to mean that the kernel frees the page and provides a new one in its place (which is a Linux-ism and isn't explicitly stated in the man page). MADV_DONTNEED has several quite big issues (it's worse than munmap in almost every category since it has to do an munmap immediately and then create a new page as well). The point is that the process still will get killed if overcommit_ratio is a sane value.
> > So your process will never shrink in memory usage
> I think you've been mislead. This statement is observably false.
Depends how you want to define "memory usage". I defined it implicitly as "sum of size of all mappings given to the process". In other words, how much is committed to the process. That number doesn't go down. RSS does go down, but I'm currently investigating what looks like Go not reusing "unused" pages properly.
Well, you can try running the following testcase:
% for i in {1..1000}; do docker run -dit --name shell_$i busybox sh; done
% for i in {1..1000}; do docker rm -f shell_$i; done
You'll notice that /proc/meminfo shows a large amount of overcommited memory. If you look at pprof output from the daemon, there is nowhere near that much memory being used (so it's not a goroutine leak or something like that). If you then re-run the first command the memory still rises, which shouldn't happen because it has ample unused heap space.
So yes, it's a real bug that I'm debugging.
Plus, in fact, I get the distinct impression that your second sentence describes what COBOL actually did for companies decades ago, so the first one makes it sound like a contradiction.
So it is basically the next COBOL ;-)
50% are Windows users according to that survey. Still a significant amount for sure, but not really the same thing as 95%.
malloc() and free() can be almost as expensive as a GC in aggregate(it's a matter of paying the cost at creation vs GC time). Pooling is a really nice performance tool, just requires a bit of hand tuning to the scenario.
I do wonder if $developer_salaries < $Xamarin_licenses, specially taken into account most of the team is on Danish salaries.
Being US salaries in SF doesn't change that much.
edit: Oh, I see. They used to sell LGPL exceptions for the library and GPL exceptions for the tools. I guess they have decided to stop selling exceptions and just give everyone an exception:
https://web.archive.org/web/20150718093635/http://www.mono-p...
Seeing how they were already able to sell exceptions, they must have been sole copyright holders, so they should have no problem changing the license of everything.
Edit: The class libraries where in fact always MIT. The runtime however was not.
In the end, it depends on the goals, and usefulness of your project, and how it's used and distributed.
An analogy to the above comments: "GPL hinders sharing" - "GPL doesn't hinder sharing. GPL hinders proprietary software"
"Religion causes death" - "Religion doesn't cause death. Religion endorses life."
When discussing highly biased points. It is always wiser to be able to acknowledge that even your bias, is the cause of some sorrow. However, despite that, it is still worthwhile.
I appreciate your passion for the free software movement. But remember that in any conversation you do yourself and your position a disservice by brushing off practical criticisms for theoretical ideals.
Btw, I never said I don't believe in the morals of the free software movement, I just said I don't believe GPL is the way forward. GPL is idealistic but not very pragmatic. Open-source is the future and (ironically) a lot of big (traditionally closed-source) companies are paving the way.
Consider that Apple is still using the oldest GPLv2 version of bash on OSX.
While this is a blow to Stallman's goal, I think it's a step in the right direction for broad corporate acceptance of the benefits of open source.
In regards to the particular piece of software being licensed. The patent provisions are akin to a copyleft Apache 2. Since companies are very happy to use the Apache 2 to avoid lawsuits I'm (not) surprised that they don't want to extend the same protections to their users with the GPLv3.
I think it's a little disingenuous for you to reframe Stallman's viewpoint as 'basic human decency' since it implies that anyone who disagrees isn't a decent human being.
But why did you say that the world would be a worse place if every time someone did something nice to you, you would have to care about the legal obligation of that act? You either respect that authors has copyright, or you don't. I could never respect someones opinion if they thought that only their copyright is valid.
"Basic human decency" is not an argument against the GPL. Have you considered why people use the GPL? It isn't to stop companies from using their code, it's to stop people from making the code proprietary. There's no clause in the GPL that says "No companies allowed, lol." Companies can (and do) benefit from the work of people who put their code under the GPL.
Just because I care more about assuring the freedom of my users than the "right" of a company to make proprietary software using my code doesn't mean that I don't have basic human decency. I'd argue the opposite, I just don't have basic corporate decency.
He was arguing for the GPL.
> Have you considered why people use the GPL? It isn't to stop companies from using their code, it's to stop people from making the code proprietary.
That's one reason. Another reason is that they have no choice to choose GPL since maybe they're building on a GPL system.
Another entirely different reason people choose the GPL - to keep customers paying for their services.
Some people also choose the GPL because they just do whatever their peers do. There are lots of reasons, not just the one that you stated.
Also, I would argue that "making the code proprietary" is a very inaccurate phrase. If I take your GPL code, make some changes and then sell it without providing the source code, am I making your code proprietary? No. Because your code is still available. I'd be making a derived work proprietary, not the original code.
> He was arguing for the GPL.
Whoops, I guess it was too subtle for me. :P
> Another reason is that they have no choice to choose GPL since maybe they're building on a GPL system.
Fair point, this is what happened to GeoGebra (which has a GPLv3 core, but all of the other stuff is proprietary -- which makes packaging it quite tricky and they seem to contradict themselves in their licensing documents).
> Another entirely different reason people choose the GPL - to keep customers paying for their services.
How would that work? Do you have an example? I would assume that since the person has a program that is under the GPL, they have no obligation to continue paying anyone (unless they require support they cannot do themselves -- but even then they don't need to pay the vendor they can pay any developer).
> Some people also choose the GPL because they just do whatever their peers do.
This is a fair point, but I'd hope the peer pressure is accompanied by some explanation of why that group decided to use the GPL. That reason may or may not be because of user freedom, but at least it would make the developers less like lemmings.
> There are lots of reasons, not just the one that you stated.
I'd argue the other examples are in the minority, but I may be wrong (since I don't have any evidence to back up that assertion).
> Also, I would argue that "making the code proprietary" is a very inaccurate phrase. If I take your GPL code, make some changes and then sell it without providing the source code, am I making your code proprietary? No. Because your code is still available. I'd be making a derived work proprietary, not the original code.
A proprietary fork is still a proprietary version of a free program. Sure, you might argue that since it's a fork it's "less bad", but if the proprietary fork becomes more popular than the original it's an overall blow to free software. Not to mention that that would be a GPL violation.
Or, the other way (although I can't guarantee that this is true) would be to choose a compatible license with the one they were using before. Compatible license scenario basically means that the license changes are small enough so that they don't have to request from people to agree with the change.
https://www.irs.gov/Charities-&-Non-Profits/Charitable-Organ...
Many proponents of copyright assignment to for-profit corporations have argued that "it's just the same thing as what the FSF does, so it's fine", but their legal nonprofit status makes it a substantial difference.
A better argument against the FSF's copyright assignment practice is that it is bureaucratic overhead for somewhat questionable benefit.
We are joining a new Microsoft, with a team that is highly energized to give developers the tools they need and in particular, we are happy to be joining forces in their development efforts for .NET. With .NET Core about to be launched, there has never been a better time to get into C# and F#.
Because of this, the LGPL and GPL portions of the code required either copyright assignments, relicensing rights, or the contribution to be made under the MIT license.
This is how we built a business that allowed us to dual license the runtime for many years.
source: I have formerly lead one of the described miserable lives.
It has no explicit right grant at all, no disclaimer of warranties, blah blah blah blah blah.
(i've been through all the issues before on hacker news)
I would love to try to hack on that to try to get a cross platform GUI toolkit that's similar to WPF.
Silverlight was a great peace of tech with a ton of stuff developed for it (widgets, testing tools, libraries, etc.) having that as a cross platform GUI framework that works on windows/linux/mac and ios/android/wp would be amazing and is doable - for simplicity you could strip out the codec parts, DRM and stuff like that, implement rendering on top of OpenGL ES and do platform specific input handling.
LGPL kind of makes phones a no-go so I would like to see if it's also covered in this switch before spending time on it.
I wonder what your thougts are on this - personally ofc. - you probably thought about it at some point given your work on moonlight and xamarin. Even the MS implementation was ported to osx, you could strip codec/DRM stuff - you could get a fully featured GUI toolkit native to .NET - a lot of work went in to that before Microsoft pulled the plug - now that it's laying dead and new MS OSS trend it doesn't seem that far fetched that they could OSS it.
.NET largely only exists for Windows/OSX, or at least Microsoft Supported Platforms.
Mono was started by Novell, later Ximian starting working on. The goal was to build a C# compiler and compatible runtime for all platforms (PS3, Xbox360, wii, Linux(SPARC/IA-64/x86_64/x86/PPC/MIPS/ARM), Mac, FreeBSD, Solaris, Android, and iOS).
dotNETcore is the Microsoft implementation of .NET which supports OSX, Windows, Linux. dotNETcore vs Mono is more or the less same as OracleJVM vs OpenJVM (except they're both owned by the company). They use different JIT's. Microsoft built their own. Mono uses LLVM
The Novell-owned IP was either sold or licensed to Xamarin later.
And we did require copyright assignment or relicensing rights from the start to support a dual-licensing business. It was the One Blessed Business Model endorsed by Richard Stallman at the time.
Maybe when mono first hit, using a 2 clause BSD would have helped them win share. But now? I don't see anyone switching now because they switched to a free'er license. You either liked using it before because of the lgpl or you smelled the lgpl and ran away to use something else.
At this point in the game I don't think it matters much.
Mono now has all the benefit of recent MS open sourcings of their core libs, compiler, and several Xamarin tech -- it didn't have all those before.
The license change is just an added cherry for companies.
Here's the complete contents of his email:
---
[[[ To any NSA and FBI agents reading my email: please consider ]]]
[[[ whether defending the US Constitution against all enemies, ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]
This doesn't change my views on the general issue of assigning copyright to free software projects, which I stated in http://gnu.org/philosophy/assigning-copyright.html. There are sometimes good reasons for license changes.
---