3 ms·
Pretty sure they did a J# ;). But I agree that Kotlin is their C#. The JDK and JVM has advanced so fast while android has been lagging. It's pretty frustrati
by cogman10 8mo ago
Pretty sure they did a J# ;). But I agree that Kotlin is their C#.
The JDK and JVM has advanced so fast while android has been lagging. It's pretty frustrating, especially because google has been so slow to pull in changes from later java versions.
A part of me wishes that android would just dump their hokey dalvik, ART, and other BS and just use the OpenJDK or a fork of the OpenJDK with whatever special sauce they need. A lot of the project Leyden stuff lends itself nicely to maybe someday being able to run real java on android.
Edit: Apparently android is forking OpenJDK, since Android 7.
https://en.wikipedia.org/wiki/Android_Nougat https://en.wikipedia.org/wiki/Android_Nougat
- freedomben 8mo agoDo you think it's legal reasons, technical reasons, NIH syndrome, or some other reason why Android doesn't use OpenJDK?
- cogman10 8mo agoA little bit of all of the above. Android's usage of Java started right as Sun was being acquired by oracle and right before the jdk was GPLed. ... And I'll be. Apparently Android is using the OpenJDK since Android 7. [1] [1] https://en.wikipedia.org/wiki/Android_Nougat https://en.wikipedia.org/wiki/Android_Nougat
- pjmlp 8mo agoIt isn't, check Gerrit commit history, they only take bits and pieces, plus ART doesn't do all bytecode equivalents. Some JVM bytecode don't have counterparts in Dex, rather get desugared into multiple instructions.
- freedomben 8mo agoWas ART better at the time they wrote it? Do you know if there were any reasons other than perhaps legal, that caused them to go that route?
- pjmlp 8mo agoMostly not wanting to pay Sun for Java Embedded licenses. https://venturebeat.com/ai/google-sun-wanted-money-for-android https://venturebeat.com/ai/google-sun-wanted-money-for-andro... The problem isn't ART per se, embedded Java vendors also have their own internal implementations, but the big difference is that they pay for their licensing and support standard Java.
- hencq 8mo agoJ++ predates C#. It was Microsoft's version of Java that wasn't quite compatible.
- cogman10 8mo agoCorrect, and J# was a brief transition language to help migrate Visual J++ applications onto the .Net SDK. J++ -> J# -> C# was the evolution. I say J# is a more apt comparison because like Microsoft's Java, android has a substantial set of APIs that aren't part of the JDK standard. Working on Java vs Anrdoid is practically like working with the JDK vs .Net.
- pjmlp 8mo agoJ++ already had those extensions, hence the lawsuit.
- pjmlp 8mo agoJ# was the transition product to port J++ into .NET, I am quite sure. Not only I was there on those years, my employer was a MSFT partner that got to test .NET before it was announced to the world, so that we could have our products as part of the announcement event in Portugal. OpenJDK is cherry picked, Google only picks pieces of it, rather than full compatibility.
- rossjudson 8mo agoNo idea what you are talking about. Google internally has a massive amount of code based on JDK 21, and the (amazing and completely transparent move) to JDK 25 is nearly complete. That's the full OpenJDK @ Google, and it has been for a very long time.
- pjmlp 8mo agoI am talking about fu..... Android!