3 ms·
Android as always in shambles. Shame that neither Google, nor ecosystem cares about Java because they’ve bought JetBrains kopium.
by wiseowise 7mo ago
Android as always in shambles. Shame that neither Google, nor ecosystem cares about Java because they’ve bought JetBrains kopium.
- pjmlp 7mo agoGoogle basically played a J++ with Android Java, with Kotlin as their .NET/C#. At least they are forced to partially update Android Java, now Java 17 subset, so that Kotlin can keep up with was is mostly deployed at Maven Central.
- xxs 7mo agoThat's a proper late 90s reference, props!
- cogman10 7mo agoPretty 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 7mo agoDo you think it's legal reasons, technical reasons, NIH syndrome, or some other reason why Android doesn't use OpenJDK?
- cogman10 7mo 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 7mo 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 7mo 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 7mo 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 7mo agoJ++ predates C#. It was Microsoft's version of Java that wasn't quite compatible.
- cogman10 7mo 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 7mo agoJ++ already had those extensions, hence the lawsuit.
- pjmlp 7mo 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 7mo 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 7mo agoI am talking about fu..... Android!
- cyberax 7mo ago> Google basically played a J++ with Android Java No, they didn't. Google happily used regular Java until Oracle played Oracle. Then Google stopped updating the supported Java language version and started diversifying away from Java.
- pjmlp 7mo agoThey definitely did not, it was Android Java from day one, and Oracle should have crushed them like Sun did to Microsoft, unfortunately Google was the geek darling of do not evil, thus they got a pass from fanboys.
- cyberax 7mo agoAndroid was not 100% compatible with Java, but mostly because it had a specialized environment. It did not support things like dynamic bytecode generation, but it faithfully reproduced pretty much everything else that made sense. And yeah, it would have been so much better with Oracle(tm)(r)(c)(fuckyou) running Android with Pure Java(tm)(r)(c)(screwyou) instead. Now with EJB5 and more XML! You might be too young to remember, but SunOracle essentially abandoned the Java language development for more than a decade, until Kotlin provided a very much needed magic kick. Oh, and if you think _Google_ is bad for splitting the Java ecosystem, let me introduce you to J2ME and JavaCard.
- pjmlp 7mo agoMy dear I am programming since 1986, and a Nokia alumni.
- krkelldlgl 7mo agoWhat a clusterfuck this still is. I’m glad I haven’t written a LOC in this brittle eco system.
- geodel 7mo agoOracle's Java Mobile Edition could've crushed Android. No one stopped them. > Google was the geek darling of do not evil, thus they got a pass from fanboys. Oracle's case against Google went all the way up to Supreme Court of US. Oracle did not win anything substantial in courts against Google is not fanboys' doing.
- sulam 7mo agoI wouldn’t blame Google for Oracle being a lawnmower.