Google Confirms Next Android Version Won't Use Oracle's Proprietary Java APIs 215
An anonymous reader writes: Google is ditching the Java application programming interfaces (APIs) in Android and moving to only OpenJDK. The news first came by a "mysterious Android codebase commit" from last month submitted to Hacker News. Google confirmed to VentureBeat that Android N will rely solely on OpenJDK. “As an open-source platform, Android is built upon the collaboration of the open-source community,” a Google spokesperson told VentureBeat. “In our upcoming release of Android, we plan to move Android’s Java language libraries to an OpenJDK-based approach, creating a common code base for developers to build apps and services. Google has long worked with and contributed to the OpenJDK community, and we look forward to making even more contributions to the OpenJDK project in the future.”
Good time to be an Android developer! (Score:4, Insightful)
Re: Good time to be an Android developer! (Score:5, Funny)
As long as it pisses off Larry Ellison, it's worth it.
Re: Good time to be an Android developer! (Score:5, Funny)
I'm sure Google is telling Larry that he can kiss their puckered brown Oracle.
Google could tell Larry to go fuck himself.
But I wouldn't be surprised if he married himself.
Re: (Score:2)
Lol, good lord, thanks for that laugh.
Re: Abstractions: a purely academic concept. (Score:2)
If the most complex software you write is a guestbook, then yes, you should probably avoid OO. The rest of us, though, who write complex, 10,000+ line code bases have much nigger problems than the 4 guestbook signatures on our nerdrage blog with a total of 3 posts bitching about MS, Oracle, and systemd.
Re: (Score:1)
I see a good reason to use spell checking, or if not then what program do you use for spell checking?
Re: (Score:1)
The only spellcheck fails in that post are OO, nerdrage and systemd, at least according to my Firefox. The real error passes spellcheck, but fails the grammar check and meaning check Firefox doesn't have.
Re: (Score:2)
As for the rest of us, well, we have to get real work done! And that means getting down and dirty with messy APIs, with legacy code, with ever-changing specs, and facing down the uncertainty that's present in real projects.
That sort of thing only increases the importance of having an abstraction layer so you don't spread all those problems throughout your code, the problems stay on their own messy side of the line.
Re: (Score:2)
Re: (Score:2)
Re:Abstractions: a purely academic concept. (Score:4, Informative)
Wow. Longtime Java programmer here. Switched to OpenJDK a few years ago to make deployments on Linix easier (many distros stopped providing Oracle JDKs through their package managers). Not a single thing broke. Not even a little.
So many many mane projects are likely to continue to work after a switch from Oracle to OpenJDK. Basically, as long as you don't directly use any com.sun.whatever or sun.misc.whatever code directly (like everyone used to do for base64 encoding, or writing JPG files), then you should be fine. Basically, if you have been doing what both Sun and Oracle have been telling Java programmers to do for about 10 or so years, now, your code should move from one JVM to another without blowing up.
But isn't Android "not Java"? *ducks*
Re: (Score:1)
I see the recall reading the OpenJDK was the reference build for Java 7 anyhow. Java 6 had a bunch of nastiness that was pure oracle, but for 7 the Open JDK had most of the desired functionality with the Oracle version just bolting some additional functionality on to it.
Re: (Score:3)
Wtf is a mane project?
Psycho touchscreen spell correction
Re: Abstractions: a purely academic concept. (Score:1)
Fuck off,asshole. You're full of shit.
The JVM is an abstraction, as so is SQL and MVC (Score:2)
ignorant rant mixed with bleats, snorts and narfs
You work in the real world, eh? It sure shows.
Re: Abstractions: a purely academic concept. (Score:1)
"Working correctly" is out of scope for this app?
Re:Good time to be an Android developer! (Score:5, Insightful)
I don't quite get why Google doesn't address one of the app developer's longest standing complaints, and ditch Java completely. They don't have to do it right away, just next version of Android they should feature a new runtime based on something else, and over oh say 5 years, (when the old apps are probably not terribly relevant) they can hard compile all of the existing apps in the play store that haven't been updated to both ARM and X86 (for e.g. old games that the developer no longer maintains but people still want to play) and then remove the old runtime.
Re: (Score:2)
Then one wonders why they just didn't do a whole Linux OS and use (some of) the existing infrastructure in addition to the kernel
As far as usability, I had a Nokia 770 which ran Maemo, and I was able to add the appropriate Debian repositories and get updates, new packages, etc.
Re: (Score:3, Informative)
Re: (Score:2)
The Psion 5 had similar hardware limitations, but the UI was fine. But perhaps that's because, having a more or less unique OS, most of its apps were designed specifically for it.
Re: (Score:2)
Re: (Score:2)
doesn't address one of the app developer's longest standing complaints, and ditch Java completely.
Any links for that? What would be a sensible replacement for Java, except Swift?
Re: (Score:2)
Google has been working on Dart [has its own VM which is more efficient, but can cross-compile to the JVM]. But, Dart hasn't caught on quite the way they hoped. And, then there's Scala ... And, I do believe perl6 can [or will] compile to the JVM.
They could also migrate away from the JVM since they [sort of] do already by doing JIT conversion to dex format [which is a "general purpose register" model rather than a "stack machine" model, IIRC].
This gets done when a new APK is installed. Also, when my Galax
Re: (Score:2)
Re: (Score:2)
I don't quite get why Google doesn't address one of the app developer's longest standing complaints, and ditch Java completely. They don't have to do it right away, just next version of Android they should feature a new runtime based on something else, and over oh say 5 years, (when the old apps are probably not terribly relevant) they can hard compile all of the existing apps in the play store that haven't been updated to both ARM and X86 (for e.g. old games that the developer no longer maintains but people still want to play) and then remove the old runtime.
I'm sure is in the works. It was actually a shrewd move, to use Java as it opens up the development field to potentially millions of developers with significant less tech-stack training (comparing to, say, Objective-C, for example.) I'm not saying this is ultimately good or bad. I'm simply saying it made sense at the time.
Myself, I think a higher level language like Python or Ruby, or something along the lines of Swift (with a shim/support for native C development when needed) would have been better, but
Re: (Score:2)
I don't quite get why Google doesn't address one of the app developer's longest standing complaints, and ditch Java completely.
Who's been complaining about that? What language would you prefer they use?
Re: (Score:2)
Who's been complaining about that? What language would you prefer they use?
When I read developer commentary on modern app development, they always complain about how long it takes to develop apps for Android vs other platforms, the chief reason cited is java.
As for what else they'd use? I don't know, I'm not a developer, but they often say nice things about c#. I know, Microsoft language, but it's both an ECMA and ISO standard (ECMA-334 and ISO/IEC 23270:2006, respectively) so there shouldn't be any lawsuit issues. And besides, Xamarin doesn't seem to have any problems with it. Ev
Re: (Score:2)
When I read developer commentary on modern app development, they always complain about how long it takes to develop apps for Android vs other platforms, the chief reason cited is java.
I don't know what commentary you are talking about really, I've done a decent amount of Android programming and the Java is fine. The layout is a little wonky, but once you get used to it, that's not a problem.
As for what else they'd use? I don't know, I'm not a developer, but they often say nice things about c#.
C# and Java are basically the same language. There are minor differences, of course all languages have differences.
Most likely if someone complains about Java in Android, but not in C# for Windows Phone, they are having trouble because the GUI builder tool for Windows Phone is a lot nicer than the on
Re: (Score:2)
Re: (Score:2)
That's my first thought as well. OpenJDK is almost identical to Oracle Java as far as I know (it's even the reference implementation for Java starting with 7), so what are the real implications of this? And just what exactly is Google "giving up" by moving to OpenJDK?
Re: (Score:1)
While OpenJDK is almost identical to Oracle Java, I have had many problems with OpenJDK in the past. OpenJDK will core dump on code that Oracle Java won't; literally the entire process crashes. So I'm also curious as to what the new and exciting problems will be.
Considering that Android doesn't actually run the Java code, it just uses the same API, it shouldn't have any problems like that. The only thing that should break is binary compatibility if there is an API call mismatch.
Re:Good time to be an Android developer! (Score:5, Insightful)
I wonder how much stuff this is going to break?
The difference between OpenJDK and Java JDK is meaningless (In Android), so nothing will break. I think the core build systems has been using OpenJDK over official java for a while, and I would imagine this is the shift for the app developer stuff, but it won't really change anything aside from having to download a new JDK.
Re:Good time to be an Android developer! (Score:4, Informative)
Here is the commit message [googlesource.com]. Right now they are just copying files over, so it's not entirely clear what they will be doing with the OpenJDK stuff, but it's in there. Presumably Google will modify it to use Dalvik (or whatever VM they are using now).
Re: (Score:2)
"OpenJDK is under the GPL, which means there will be a lot more GPL in Android now."
Good, let the virality begin.
Muahahaha... yeah baby, this will force Google to open source all of the code that is... er... uh... open source.
Re: (Score:2)
Depending on how Google uses OpenJDK, they may be forced to open source other code that is being linked into GPL code.
Re: (Score:2)
Depending on how Google uses OpenJDK, they may be forced to open source other code that is being linked into GPL code.
No, no they won't, because Android is already Open Source. You can already download it (if you have a good connection and a super shitload of disk space) and build it (if you have a super monster machine with all the advantages in the world) and run it on your own device. Google has already segregated their closed-source stuff out into Play Services.
Re: (Score:2)
And what about third party apps now linking to OpenJDK instead of the Java JDK?
Re: (Score:2)
Re: (Score:2)
What I meant is that there are bits of code currently under something like Apache (where Google releases the source code but OEMs are under no obligation to actually release anything) but where using OpenJDK will now require those pieces of code to be GPL (and therefore shared by Android OEMs)
3rd party apps that just call the Java APIs will be covered by the "classpath exception" in the OpenJDK license.
Re: (Score:2)
It was a strategic mistake to use Apache Harmony code in the first place, but I suspect it was done to avoid stricter OpenJDK licensing.
Yes. A lot of Google's Android partners don't like the GPL.
Re:Good time to be an Android developer! (Score:5, Interesting)
The difference between OpenJDK and Java JDK is meaningless (In Android), so nothing will break
If that's true, why haven't they been using it all along? The first commercial Android phone was unveiled in late 2008. The OpenJDK class library was pretty complete by then.
Re:Good time to be an Android developer! (Score:5, Informative)
The difference between OpenJDK and Java JDK is meaningless (In Android), so nothing will break
If that's true, why haven't they been using it all along? The first commercial Android phone was unveiled in late 2008. The OpenJDK class library was pretty complete by then.
The answer was Eclipse. Eclipse didn't work very well with the OpenJDK.
Re:Eclipse didn't work very well with the OpenJDK. (Score:1)
Is the situation different [and Eclipse fully supports OpenJDK] now?
Re: (Score:3)
OpenJDK is GPLv3 with Classpath extension (it basically says "GPL does not infect your code"). Android was using libraries by Apache Harmony, which are under Apache v2 license.
Re: OpenJDK is illegal too (Score:3)
Anything source compatible is copyright violation subject to the dmca thanks to the Oracle court case.
Compatibility is intermingled with copyright. Terrible decision
Re: (Score:2)
If Google were to replace their existing implementations of the Java APIs with the implementation from OpenJDK and followed the GPL in doing so, they would be legally in the clear since the GPL explicitly lets Google use that code (and those APIs) and says that doing so is not a copyright violation as long as you follow the license.
Re: (Score:2)
Anything source compatible is copyright violation subject to the dmca thanks to the Oracle court case.
No, there might still be a fair use defense. Eagle Technologies copied the IBM bios, for example.
The Oracle vs Google trial is ongoing, it is up to Google to present a fair-use defense (but these things move slowly).
Re: (Score:2)
The IBM vs. Compaq case about BIOS would almost certainly have gone the other way today if it had not by itself set a precedent.
At the time, copyright was a more limited concept, and a work had to show artistic merit to be protected. It was decided that the mere functionality of a program did not have artistic merit, only the particular expression, and Compaq only copied the functionality without copying the particular expression. Today the same applies in theory, but the standards for what is required for
Re: (Score:2)
The IBM vs. Compaq case about BIOS would almost certainly have gone the other way today if it had not by itself set a precedent.
Maybe. There's a clear interoperability clause written into copyright law now, so it seems like it would probably still go the same way.
The weakness in Google's fair-use interoperability defense is that they didn't use Java for interoperability purposes. So I'm interested in seeing which way the case will go, but I don't have much hope for them.
Re: (Score:2)
This changes nothing, both legally and technically. The API is exactly the same.
Stupid.
Re: (Score:2)
Re: (Score:3)
Application-wise, probably not much, what with the official move over to ART.
Re: (Score:2)
I wonder how much stuff this is going to break?
None on the OpenJDK side. OpenJDK has been the officially recommended JDK for Android development for the past year already.
I suppose this announcement means that Android will stop supporting the Oracle JDK from now on, and I suppose that means there will be a lot of breakage on that side.
Re: (Score:2)
i hate java, and i hate the java on android even more. good thing there is an NDK.
I fiddled around with java and it was interesting, but I confess I didn't put enough time into it to get fluent.
I could see a lot of the upsides/benefits to it but I just got sidetracked by other stuff and lost interest. It didn't "grab" me the way some other languages did, but some of the java jockeys I know are pretty adept with it and won't use anything else.
Different strokes for different folks, I guess.
Re: (Score:1)
Limitations? Name one.
Re: (Score:2)
Too little, too late (Score:1, Informative)
All the apps continue to be developed for iOS. That's where the money is, less theft, less radically different OS's.
Re: (Score:1)
it crashes faster, okay?
Re: (Score:1)
D. Trump, the first Troll President?
I think that was William Henry Harrison (although maybe he took it a little too far for a troll)
Re: (Score:2)
Re: (Score:2)
It'll get worse, thats what it means
Try Kotlinlang.org (Score:2, Interesting)
If you're developing for Android it is worth checking out Kotlin [kotlinlang.org] along with the Anko [github.com] libs from Jetbrains.
Kotlin, by the company that provides the Android Studio platform, is built on the Java platform and adds a modern, fashionable multi-paradigm (OO, functional) syntax, fixes some gaps in the Java standard libs, adds optionals that are (IMHO) easier to read than Swift's. It seems to be the best bet for getting a modern, fashionable language on Android, ie does not add to download size, seamless operation w
Re: (Score:2)
Re: (Score:2)
The IntelliJ platform is much more than an editor. For example, it provides the following:
Re: (Score:2)
Kotlin is not Scala. Kotlin is Java 3.0.
Re: (Score:2)
They are not "Oracle's proprietary Java APIs". (Score:2)
"Proprietary" is a word meaning ownership. Oracle does not own any APIs.
If you mean "hold the copyright to" well the US Congress wrote the law and it says they can't.
The courts last year said they sort of can (in the 9th District). So in the 9th district Oracle
has copyrights (but it's still not their proprietary anything) and in the other districts nothing.
SCOTUS declined to hear it. Perhaps with conflicting rulings in other districts they will
harmonize this and once again APIs will be free from copyrigh
Re: (Score:2)
The courts last year said they sort of can (in the 9th District). So in the 9th district Oracle has copyrights (but it's still not their proprietary anything) and in the other districts nothing.
It was the Federal Circuit's decision, not the Ninth Circuit. While not binding on other circuits, the Federal Circuit is extremely influential.
Re: (Score:2)
Yes, but the Federal Circuit's decision in this case is binding (only) in the 9th Circuit, I believe. You are right, though, that it will have influence in other circuits.
While I don't like the result, contrary to what others have written, I do not find the Federal Circuit's decision in this case to be hasty; on the contrary, I think it was very well reasoned. It's not for the courts to make law, but to interpret it. The decision made, in my opinion, well the case that this is what the law says and it is fo
Open Source Google (Score:2)
"As an open-source platform, Android is built upon the collaboration of the open-source community,” a Google spokesperson told VentureBeat.
Is that why they are making 'closed source' versions of apps that was a part of the open source Android? Like Camera, Dialer, Keyboard, Contacts, Calendar, etc. It seems, if Google could, they would make Android closed source... I just take it that they don't want to pay licensing costs to Oracle anymore.
Re: (Score:1)
Oracle Lawyers Confused By Latest Google Move.. (Score:1)
Oracle Lawyers Confused by Latest Google Move. Have no idea who to sue so sue themselves.
Highly appropriate that the captcha is "losers." Which is a good description of Oracle/Larry Ellison.
Apache Harmony (Score:5, Informative)
Re: (Score:2)
My guess is that this has nothing to do with Oracle and everything to do with that Apache harmony isdead and it is annoying to maintain a fork.
Using OpenJDK insulates Android from Oracle lawsuits over Java.
Does this mean anything at all (Score:4, Insightful)
Re: (Score:2)
That is Java 1.6, which is EOL.
javax.swing (Score:2)
OpenJDK is 100% compatible with the Java public APIs.
Does this mean Swing apps will run on Android?
Apache Harmony getting replaced (Score:4, Insightful)
Wasn't Android using Apache Harmony as basis? Given that Harmony is no longer being developed due to OpenJDK being just as open and available, it's only a logical choice to upgrade to a modern Java API.
Additionally, using OpenJDK instead of Harmony (or any other Java Classpath implementation) does nothing with respect to using "Oracle's Proprietary Java APIs".
Wrong title (Score:1)
At least at this site posts should be accurate enough to distinguish between interface and implementation correctly.
Title should state that next version will switch *implementation* of Java API from Google's proprietary *implementation* (taken from Apache Harmony as they had told the judge) to OpenJDK *implementation*.
Ditching Java API (Application Programming *Interface*) would be a catastrophe for entire Android ecosystem as Google would need to reinvent all the library APIs for Java language. At that poi
Inaccurate Heading!!!!!!!! (Score:2)
Google Confirms Next Android Version Won't Use Oracle's Proprietary Java APIs
That's not what Google is doing. It is switching the internals from Apache Harmony to OpenJDK. Seriously, who the fuck writes these titles and headings. Slashdot, news for nerds and hackers? Suuuuuuuuuuuuure.
Re: (Score:2)
Google Confirms Next Android Version Won't Use Oracle's Proprietary Java APIs
That's not what Google is doing. It is switching the internals from Apache Harmony to OpenJDK.
Implications:
* Google overcame their longstanding irrational anti-GPL bias, at least for the toolchain
* Google follows the lead of IBM, 5 years later [wikipedia.org]
* Google finally saw the wisdom of going it alone with a project that end-of-lifed> 4 years ago [wikipedia.org]
* The Harmony project forced Sun/Oracle to fully GPL the JDK, achieving its primary goal, and after that had no reason to exist
Re: (Score:3)
Further to that, Javalobby has the definitive analysis [dzone.com] and answers a bunch of misconceptions.
Re: (Score:2)
I think most Android developers would just be happy if Android wasn't locked to JDK6. A real christmas miracle would be if they could stop using Gradle and its outrageously long build times.
Re: (Score:2)
For the most part, Microsoft CLR users already don't care. Have you heard of IKVM [ikvm.net]? They're already yo-ho-ho-ing code like Zookeeper libraries and other stuff at a prodigous rate. And given that the CLR has versioning that lets it update its binary engine without deprecating the entire universe that came before, they're doing it with a language with features at least 5 years ahead of what the Java working groups are even considering.
Given the open sourcing and license of the .NET core libraries [github.com], CoreCLR [github.com] and