Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Just when I thought I'd rid myself of Java...


I think that in the medium/long run google will, at least, add a new language officially supported and a bit more modern that the pseudo-java5 they are using right now. I mean something like what apple made with swift. Also considering google is already working on Go and Dart, there could be already something in preparation related to them.


I hope they go with C#.


C# (using the Mono VM) actually works inside of Chrome Native Client.


Agreed. Alternatively they could try to poach Anders Hejlsberg, the guy behind C#, and have him make an even better language. Google is big enough to provide the initial push behind it and he has shown that he can repeatably build great tools (Delphi, C#, Typescript).


Kotlin already runs very well on Android, and people seem to love it.


April Fools!


The CLR would be a pretty good universal runtime, to be honest. It's open source under a liberal license, so you don't have to worry about the copyright dickery that Oracle. It has a lot of modern language features, like closures, with syntax that doesn't want to make one punch kittens. Plus, it has things that go beyond a lot of languages, like having the compiler classes in all versions of the runtime, so you can extend your app as it's running. There are very few frameworks out there that give even a few of those features.


The CLR has actually been open sourced under an extremely restrictive license[1]. It does not allow any modification or derivative works that are not part of the .NET runtime or a .NET app, or changes that make the platform non-conforming to the spec. The license is so restrictive that it probably even fails to meet the minimum criteria set forth by the OSI for being called "open source" (as it only allows grants very limited modification and derivation rights).

Remember the great lengths Google went to avoid the OpenJDK's GPL license (which, BTW, is a plain-and-simple open source license, with its implicit, unrestricted patent grant); this one is a lot more restrictive (and dangerous).

[1]: http://www.ifross.org/artikel/4-shifty-details-about-microso...


This is inaccurate. The CLR has been released under the MIT, a permissive non-copyleft license that has been certified by the OSI. Microsoft has a separate patent grant that the article takes issue with, but the source itself is open.


The source itself is not "open" (though it is available for you to read), neither is it under the MIT license.

To meet the minimum requirements for open source, the copyright holder must grant you permission to modify the source and create derivative works. Microsoft most certainly does not grant you those permissions.

The MIT license implicitly grants you patent-use permissions; MS has taken those permissions away, hence this is not the MIT license, but an MIT licensed that has been ammended (so much so that it is perhaps no longer open source at all).

You can read DannyBee's comments here for clarification and a more thorough and precise discussion: https://news.ycombinator.com/item?id=9111849 (he's an open source lawyer).


What you are saying contradicts what is posted here:

https://github.com/Microsoft/dotnet

".NET open source projects typically use either the MIT or Apache 2 licenses for code. Some projects license documentation and other forms of content under Creative Commons Attribution 4.0. See specific projects to understand the license used."


Well, they "use" the licenses and then amend them considerably (those licenses grant you patent use permissions, while Microsoft doesn't). The licenses are still there, only with a nice juicy amendment on the side, which basically says: "You know all those permissions granted to you by the license? Well, were taking most of them away now, thank you".

The legal instrument by which those permissions are taken away is patents, which is actually worse than copyright because patents are sneaky. See those DannyBee comments I linked to for an explanation.

In any case, Facebook does something similar with React which also "uses" the BSD license, except not really, which is why Google, for example, have already said they can't use Facebook's open-source projects.

Facebook keeps the project open source, except adds an unrelated auto-destruct mechanism; the CLR isn't even really open source (because you don't have permission to freely modify the code or derive from it). I don't know which is worse...


The DannyBee comments you linked are entirely about Facebook, React and the BSD license. They are not about Microsoft, the CLR and the MIT license.

At any rate -- the MIT license for CLR is not amended. The patent grant is separate from, not an amendment to, the MIT license.


Amendments are often separate. But call it what you like, the MIT license includes an unconditional (implicit) patent grant, which MS takes away.


Microsoft's patent promise does not override the MIT license. Whether or not the MIT license implies a patent grant is an open question not yet tested in court. If that unconditional (implicit) patent grant succeeds in court then Microsoft's patent promise is unnecessary. If that fails in court, then the patent promise protects compatible implementations (like Mono).


IANAL, but DannyBee is, and he says (re. Facebook and a BSD license, but it's the same thing):

This grants an implied patent license to the patents necessary to actually do this, as long as you meet the restrictions... This is actually well-settled law. You don't get to give people stuff unrestricted, and say "you can use this for free", and then say "just kidding, what i meant was, you can use this for free as long as you pay me for the patents"

However, when you do what facebook has done, and give an explicit license, you have overwritten the terms of that implied license, and you get no implied license. So it is not only "not unambiguously safer", you are not "left with the same rights you had under the bsd license if it is revoked". This is because if you revoke the explicit grant, you get nothing in terms of patents. But the implicit grant is not revokable unless you violate the copyright license.

most engineers are not familiar with implied patent licenses. BSD normally carries one. So you do in fact, get a implied grant. By doing this [i.e. have an explicit patent grant] you don't, you only get the explicit grant. The implied grant is normally not revocable unless the underlying BSD terms are violated, whereas the explicit grant is revocable for other reasons.

To summarize, it is well-settled law that an open source license carries a patent grant, unless that grant is restricted by an explicit one (which supersedes the implicit grant as it amends the license). The restrictive MS patent grant is therefore not in addition to, but instead of the implicit promise.

It seems like Google's legal department is also under the impression that this is settled law, as they've said they cannot use React and other open source Facebook projects because they contain a restricted, explicit patent grant, while they do use projects without them.


You forgot to quote this part:

> The reason people use explicit patent grants is to avoid getting into some unsettled law. Particularly, the sublicensability of implied patent licenses is not clear. The TL;DR of this is "the answer is clear if you get the software directly from person owning the patents. If you get it through someone else, like say, a linux distribution, it's not clear what happens". The related doctrine of "patent exhaustion" that plays into this is also not settled, and currently the subject of a Supreme Court cert petition by Cisco.


If you read the whole thing, what he's talking about there are licenses, like Apache, that explicitly grant those patents that are only implicitly granted by the MIT and BSD licenses (and even that, he says down the page, does not really solve the sublicensing problem).

But Microsoft's explicit grant does not clarify the grant implicit in the MIT license (as the Apache license does) but restricts it, beyond even the minimum bar for being considered open source.

So, if you ask: "do I have permission to use the CLR source code as I wish, as long as I comply with the MIT license?" the answer is a resounding no, Microsoft does not grant you that permission (true, they might not have the specific patent to go after you, but they might, too, and they don't have to tell you).


For any open source project you can violate a patent completely unrelated to the author and be sued just the same. Heck, Microsoft probably makes money from Android than Google does.


But nobody at Google writes C#. I think you're much more likely to see Go (or Python) where Google designed much of the toolchain.


Jon Skeet, highest rated user on staklckoverflow, is a C# expert and he works for Google UK. I remember reading somewhere that parts of teams in Google's London offices are Microsoft technology driven.


He is not writing C# at Google.

That said, sure, there ARE people writing some C#. Google has applications that run on Windows. But very very few people are writing C#.


Presumably you could use any language that targets the JVM, since the code could be further compiled down to ARC.

That leaves things like Scala, Kotlin, Grovy, etc.


Oh don't worry, Dalvik/ART is completely different from Java, at least for legal purposes.


Neither run Java bytecode. They happen to have Java semantics. But they are one (Dalvik) or two (ART) steps removed. Once your Android toolchain has produced Java bytecode, it is translated to Dalvik bytecode before being packaged. Then it might, or might not (pre-ART systems), get translated to native code before being run. And, depending again on version, might get JIT compiled, or not.

Once can take advantage of this in interesting ways. If you are Myriad and you have a Java(tm) runtime for mobile devices, you can skip (or reverse) the Dalvik bytecode translation and run Android apps in your runtime. At which point Oracle sues your ass, and the settlement is confidential. You can see this approach at work in the Jolla handset.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: