(The whole thing only existed in the first place because they are stuck on a completely outdated Mono version, due to Xamarin changing the license of newer Mono versions trying to extract money from Unity.)
(The whole thing only existed in the first place because they are stuck on a completely outdated Mono version, due to Xamarin changing the license of newer Mono versions trying to extract money from Unity.)
Mono changed the license so that it could be used in Unity to begin with. Mono was available under a copyleft license. To everyone. Including Unity. Unity couldn't/wouldn't accept it under those terms, so folks at now-Xamarin said, "We'll offer it to you under a commercial license if you won't take the copyleft offering." That's standard fare. Unity said, "Okay, deal." Mono continued to improve over the years. Unity was interested in those improvements. Mono said, "Okay. You can get those under a commercial license, too." Unity balked.
So what we're really talking about is that Unity wants the improvements that have been made to Mono, but doesn't want to pay for them.
Get this: They're still free at any point to accept Mono under the copyleft license that's available to literally everyone, but they won't accept it under any terms other than their own. That's it.
Do you know the specific licensing terms that Xamarin offered to Unity? Probably none of us here do. Given that, why would you assume Unity was the unreasonable party, and not Xamarin?
Regarding the copyleft license, while it is an option for everyone in general, it isn't an option for Unity, which needs to ship on platforms that do not allow such licenses (iOS, game consoles). Products like Unity will always need a commercial license as long as such platforms exist.
I don't know what this means. What we know of the situation is that Unity doesn't want to pay a commercial license for Mono. This is even the way that pro-Unity/anti-Mono folks frame the situation. What do you have in mind here?
> Regarding the copyleft license, while it is an option for everyone in general, it isn't an option for Unity
That's all well and good, but it doesn't have much to with any obligations Mono has. Those are completely synthetic restrictions that the platform vendors are placing on the people targeting them. How does Mono get the blame for Apple and Nintendo's choices here? Why do Apple and Nintendo get treated as bedrock? Even so, that's bedrock that Unity knows they're working with. It's their choice to target those platforms.
EDIT:
> That seems like a very unfair description of the situation.
Unfair. Every reference to the Unity/Mono relationhip I've ever come across has been from someone who heard Unity's creative retelling of the conflict and parroted it exactly, down to overtly identifying Mono as the bad guy.
We just don't know the answer, and you're assuming the party offering X and Y is reasonable. But it might not be. We don't know.
edit to your edit: if you heard people on the internet being wrong in some way, that doesn't justify you being wrong in the opposite way.
Companies A and B couldn't come to agreement to license something under terms Y that include $X in payment. Okay. There's neutrality in that statement. My comment says that (and no more).
What let's not do is say, "That makes company B a bunch of jerks." That is what the comment I'm responding to does, and it exists in a sea of others with the same tack.
Overton window and that.
> So what we're really talking about is that Unity wants the improvements that have been made to Mono, but doesn't want to pay for them.
which paints Unity as the bad guy, when for all we know, it might not be. Perhaps Unity is totally OK with paying for a license, but the Xamarin terms would have bankrupted it.
But thank you for clarifying what you meant. I agree there is no point in saying either party is the bad guy, since there is not enough public information to know.
In what way at all? Entity A doesn't want to pay entity B $X. That's the only thing the comment of mine that you quote says.
There are shops around that sell quadcopters for hundreds of dollars. I want a quadcopter. I don't want to pay hundreds of dollars. Have I just painted myself as a bad guy?
I repeat: the only reason my comment sounds pro-Mono is because, at neutral, it resists the spin of the one that paints Unity as a victim and Mono as a fiend.
In particular, it sounds like Y is offering Z at a standard rate, as in "Sam wants a Chipotle burrito, but doesn't want to pay Chipotle for the burrito." Sam doesn't look good here - does Sam expect to get the burrito for free? Why does Sam think he is entitled to that?
Readers may not realize that there isn't a standard, objective rate for commercial licenses for Mono. Especially for the single biggest consumer of Mono, Unity, which uses it in products that its customers ship - a particularly complex situation.
Again, maybe you didn't intend to, but it sounded like you were saying something very negative about Unity. A less biased way to say it might be
"Unity and Mono could not arrive at mutually acceptable terms for Unity to license newer versions of Mono."
What we also don't know are the terms for the first negotiation. It's as possible that Mono made one offer and Unity countered with an insultingly lower one, then Mono accepted due to being a poor position to negotiate something "reasonable", but are no longer in a position to have to accept whatever is offered, now that Xamarin is off and running.
We don't know. Hypotheses non fingo.
AOT-compiled code can also be very fast. I'm aware .NET has options there too, but il2cpp is literally focused on doing just that, and doing it very well.
The same people who couldn't maintain their fork of Unity are now writing their own home-grown runtime, complete with their own garbage collector.
I don't see a chance of this working out "well" for any sane or bizarre notion of "well".
The same people who couldn't maintain their fork of Unity are now writing their own home-grown runtime, complete with their own garbage collector.
I don't see a chance of this working out "well" for any sane or bizarre notion of "well".
Right now, the GC performance of Unity is horrible relative to what you'd get on the JVM and there's no reason to believe IL2CPP is going to be any better.
When you don't have a generational collector, you have to seriously constrain your allocations, crimping your immutable style.
The Unity roadmap suggests they're going ahead with a Mono upgrade (I believe they dynamically link every platform sans iOS):
http://unity3d.com/unity/roadmap/
So it's probably not on the cards (no pun intended). However, the Mono upgrade will bring a generational GC to the platforms on which it's usable (which will fall somewhere on the spectrum of Editor, PC, !iOS).
The only problem I have with Mono today is Miguel's decision to completely disrespect and disregard the Linux Desktop: http://tirania.org/blog/archive/2012/Aug-29.html