Oracle sinks its claws into Android

2 Comments and 4 Shares

This is my first blog post since leaving my role as Mozilla’s CTO 6 months ago. As you may have read in the press, a good chunk of the original Firefox OS founding team has moved on from mobile and we created a startup to work on some cool products and technologies for the Internet of Things. You’ll hear more about what we are up to next month.

While I am no longer working directly on mobile, a curious event got my attention: A commit appeared in the Android code base that indicates that Google is abandoning its own re-implementation of Java in favor of Oracle’s original Java implementation. I’ll try to explain why I think this is a huge change and will have far-reaching implications for Android and the Android ecosystem.

Why did Google create its own Java clone?

To run a Java app, you need a runtime library written in Java called the Java standard classes. This library implements basic language constructs like hash tables or strings.

Since the early days, Android didn’t use Sun’s version of the Java standard classes. Instead, the Android team enhanced the open source Apache Harmony Java standard libraries. Harmony is an independent “clean room” open-source implementation of the Java standard libraries maintained by the Apache Foundation.

There is basically no technical advantage in using Harmony. Its a strictly less complete and less correct version of Sun’s original implementation. Why did Android invest all this effort to duplicate Sun’s open source Java standard classes?

Apache vs GPL

Over the course of Android’s meteoric rise, the powers behind Android demonstrated a deep strategic understanding of different classes of open source licenses, their strength, and their weaknesses. Android has from its early days successfully used open source licenses to enable proprietary technology. Sounds counter-intuitive, but it explains why Google rewrote so much open technology for Android.

Java is actually not the only major open technology piece Google reinvented. Since Android 1.0 Google uses bionic as its standard C library. There were very few strong technical reasons to use bionic over open source alternatives such as the GNU libc. Quite to the contrary, at Mozilla in the earlier days of Android we had to constantly fight deficiencies in bionic in comparison to existing open source standard C libraries. Famously, bionic was not thread safe in many cases, crashing multi-threaded applications.

Writing a standard C library from scratch is crazy. Its one of the most commoditized pieces of software. Its almost impossible to do it significantly better than existing implementations, and it costs a ton of time and money and compatibility is a huge pain. Why did Google do it anyway? There is a simple answer: Licensing.

Bionic (as Google’s Java implementation) is licensed under the non-viral Apache 2 (APL) license. You can use and modify APL code without having to publish the changes. In other words, you can make proprietary changes and improvements. This is not possible with the GNU libc, which is under the LGPL. I am pretty sure I know why Google thought that this is important, because as part of launching Firefox OS I talked to many of the same chipset vendors and OEMs that Google works with. Silicon vendors and OEMs like to differentiate at the software level, trying to improve Android code all over the stack. Especially silicon vendors often modify library code to take advantage of their proprietary silicon, and they don’t want to share these changes with the world. Its their competitive moat–their proprietary advantage. Google rewrote bionic — and Java standard classes — because silicon vendors and OEMs probably demanded that most parts of Android are open (ironic use of the word in this context) to this sort of proprietary approach.

“Open”JDK

OpenJDK is the name for Oracle’s Java that you can obtain under the GPL2, a viral open source license with strong protections. Any changes to OpenJDK have to be published as source code (except if you are Oracle).

Because Oracle has means to control Java beyond source code, OpenJDK is about as open as a prison. You can vote on how high the walls are, and you can even help build the walls, but if you are ever forced to walk into it, Oracle alone will decided when and whether you can leave. Oracle owns much of the roadmap of OpenJDK, and via compatibility requirements, trademarks, existing agreements, and API copyright lawsuits (Oracle vs Google) Oracle is pretty much in full control where OpenJDK is headed. What does this mean for Android?

In short: there is a new sheriff in town. The app ecosystem is at the heart of every mobile OS. Its what made Android and iOS successful, and its what made Firefox OS struggle. The app ecosystem rests on the app stack, in Android’s case Harmony in the past, and going forward OpenJDK. In other words, Oracle has now at least one hand at the steering wheel as well.

Its anyone’s guess what Oracle will do with it, but Google and Oracle have a long history of not getting along, so its going to be quite curious to watch. Java itself aims to be a platform, and it is similarly vast in scope as Android. Java includes its own user interface (UI) library Swing, for example. Google has of course its own Android UI framework. Swing will now sit on every Android phone, using up resources. Its unlikely that Oracle will try to force Google to actually use Swing, but Google has to make sure it works and is present and apps can use it. And, Oracle can easily force Google to include pretty much any other code or service that pleases Oracle. How about Java Push Notifications, specified and operated by Oracle? All Oracle has to do is add it to OpenJDK, and it will make its way into Android. Google is now on Oracle’s Hamster wheel.

A rough year ahead

In the short term Google’s biggest challenge will be to rip out Harmony and replace it with OpenJDK. They actually have been working on this for a while. It seems this project started in secret already 11 months ago, and is now being merged into the public repository.

All this code and technology churn will have massive implications for Android at a tactical level. Literally millions of lines of code are changing, and the new OpenJDK implementation will often have subtly different correctness or performance behavior than the Harmony code Google used previously. Here you can see Google updating a test for a specific boundary condition in date handling. Harmony had a different behavior than Oracle’s OpenJDK, and the test had to be fixed.

The app ecosystem runs on top of these shifting sands. The Android app store has millions of apps that rely on the Java standard classes, and just as tests have to be fixed, apps will randomly break due to the subtle changes the OpenJDK transition brings. Breakage will not be limited to correctness. Performance variances will be even harder to track down. Past performance workarounds will be obsolete but it will be hard to tell which ones, and entirely new performance problems will pop up. Fun.

And of course, licensing is changing as you can see here. The core of Android’s ecosystem runtime is now powered by GPL2 library code, copyright Oracle.

I also have a very hard time imagining Android N coming out on time with this magnitude of change happening behind the scenes. Google is changing engines mid-flight. The top priority will be to not crash. They won’t have much time to worry about arriving on schedule.

The winner

No matter how you look at this, this is a huge victory for Oracle. Oracle never had much of a mobile game, and all the sudden Oracle gained a good amount of roadmap and technology influence over the most important mobile ecosystem by scale. Oracle is a mobile titan now. I didn’t see that one coming.

The losers

Google, and silicon vendors. The entire middle part of the Android stack will be subject to proprietary Oracle control. Google calls this “reduced fragmentation” in their press release. That’s true, kind of. There will be less fragmentation because Oracle will control anything Java, including Android.

Silicon vendors will be still allowed to do proprietary enhancements if they obtain the same library code under a difference (non-viral, non-GPL2) license from Oracle — for a fee. Oracle has actually already a history of up-selling OpenJDK. They are offering certain components of the Java VM only for royalty payments. You get a basic garbage collector for free. If you want the really good one, it’ll cost you. I expect Oracle to attempt to monetize in similar ways the billions of mobile users it just stumbled upon.

Like this:

Like Loading...

Related

PPPJ'07 Paper Accepted

A paper describing the Java Virtual Machine Language (JVML) interpreter we have implemented as part of our trace tree just-in-time (JIT) compiler has been accepted to the ACM Conference on Principles and Practice of Programming in Java (PPPJ'07). What makes our JVML interpreter unique is the fact that its implemented…

In "Trace Compilation"

x86 backend

We have started working on a x86 backend for our compiler. Initially the backend will emit 32-bit x86 code, because our default VM (Apple's Java 5 VM) is 32-bit only. Even the preview of Java 6 seems to be 32-bit only on Mac OSX, which is pretty disappointing for a…

In "Trace Compilation"

Technical Leadership at Mozilla

Today, I am starting my role as Mozilla’s new Chief Technology Officer. Mozilla is an unusual organization. We are not just a software company making a product. We are also a global community of people with a shared goal to build and further the Web, the world’s largest and fastest-growing…

In "Mozilla"

Read the whole story
rosskarchner
3574 days ago
reply
I suppose Go on Android is going to become more of a priority.
Share this story
Delete
1 public comment
futurile
3573 days ago
reply
Really well written post exploring the implications of Android using the standard Java classes and the continuing competition between Google and Oracle. Worth noting that the first part of the post covers how strategic and deep the understanding of OSS licenses (and how to get around them) is within Google - G uses OSS to pursue its own goals and not as some social goal. Second, while a massive win for Oracle I'm sure the G team will have thought through this deeply - they are formidable negotiators and long-term planners.
London

A seed of the iMac G4 design

3 Shares

Through the libraries of the local Polytechnic University, I fortunately have access to a seminal book: AppleDesign — The Work of the Apple Industrial Design Group, by Paul Kunkel with photos by Rick English (1997). The book went out of print not long after being published, and it’s an amazing treasure trove of information on Apple’s design approaches and investigations from the early Apple II days until 1997. And that means not only a lot of details about several projects which never saw the light of day, but also a lot of photographs of prototypes and mockups illustrating the various ideas and explorations within the projects — whether they led to a known Apple product or not. Needless to say, I find this to be incredibly fascinating, and I return to this book on a regular basis even though I know it quite well by now.

Since I’ve just talked about the most recent addition to my collection, a 17-inch iMac G4, I’ll share a brief extract from that book showing a design idea that, while considered many years before, and for a different project, might be viewed as a first seed of the iMac G4 design.

The Pomona design investigation

#alttext#
(Image source: KCG Computer Museum)

The final design of the iconic Twentieth Anniversary Macintosh (codename: Spartacus) was the result of a long investigation that had started a few years before, in the autumn of 1992. The investigation was internally code-named Pomona. From the AppleDesign book:

“For years, I’d wondered how the computer would evolve from a box into something more physically compelling that would fit better in the home,” says Bob Brunner [the Director of Apple’s Industrial Design Group at the time]. “In survey after survey, customers told us they want ‘power systems’ with expansion slots and extra drive bays that allow them to add to their system at a later date. That demand forced us to adopt a box-like design to hold the cards and drives. But most home users never add to their system, which leaves them with unused slots, drive bays that remain empty, and a box they don’t really need.”

Eventually, says Brunner, “home users should realise they only need a standard setup with a single expansion slot. When that happens, we can stop thinking of the computer as a plastic box and instead give it a shape that expresses its function, using materials such as wood, metal and leather that are more in tune with the home environment.”

To anticipate this change, Brunner launched the Pomona Design Investigation in October 1992, wrote a two-page design brief, and invited IDG’s designers, as well as consultants from Silicon Valley, Tokyo and New York, to submit concepts in an effort to redefine the home computer, invent shapes to better address user’s needs and employ materials that would function as well in a domestic setting as Apple’s platinum grey plastic works in the office. […]

The Pomona design brief was distributed to IDG’s designers and five outside consultants — Eric Chan of EC Design (New York), Tangerine (London), IDEC (Tokyo), Montgomery & Pfeifer (San Francisco), and IDEO Product Development (San Francisco). Their task was to create a desktop Macintosh with high object value using miniature components, high aesthetic content, and alternative materials. […]

As Brunner expected, the Pomona brief sparked an avalanche of ideas, many of which did away with the traditional computer box or shrunk it to a barely noticeable size. Eric Chan and his staff at Ecco Design generated dozens of sketches showing tabletop, desk-mounted and freestanding concepts.

One of such concepts took inspiration from Richard Sapper’s Tizio lamp, with the motherboard and drives housed in a desk ‘base’, and a flat panel display mounted on a long, adjustable arm. Sounds familiar?

#alttext#
(Source: P. Kunkel, AppleDesign — The Work of the Apple Industrial Design Group, page 212)

Above you can see a scan of plates 388-389 from the AppleDesign book. The notes on the sketch should be fairly readable, while for sake of completeness I’ll transcribe the caption printed in small text under the photo:

Pomona Design Investigation: Hard Models. 388 Phase One Sketch for a Desktop Computer, by Eric Chan (Ecco Design, New York, NY), inspired by Richard Sapper’s Tizio Lamp. 389 Tizio Concept. Industrial Design: Apple Computer: Robert Brunner, based on a sketch by Eric Chan. Dates of Design: January-April 1993.

1993 means almost ten years before the introduction of the iMac G4. Now, I don’t know if the iMac’s design was achieved internally through a completely different, independent route, or if the designers went back looking at past ideas and thought about giving this concept a second chance, but it’s a nevertheless intriguing connection.


Filed under: Hardware Tagged: Computer history, Design
Read the whole story
rosskarchner
3574 days ago
reply
Share this story
Delete

DNC, DPVA Steering Committee Member Frank Leone Demolishes "GOP Loyalty Oath Myths"

1 Share
by Lowell

Great job by Democratic National Committee (DNC) member and Democratic Party of Virginia (DPVA) Steering Committee member Frank Leone in demolishing a bunch of "myths" surrounding the Virginia GOP's "loyalty oath" for the March 1 presidential primary.  Key points, with a bit of my commentary mixed in.

1. Despite the media's relentless, dishonest attempts at creating a false equivalency between the Democratic and Republican parties, Leone explains that in fact both parties do NOT do "loyalty" oaths for Virginia presidential primaries. In fact:
...Since Va. Code 24.2-545 was adopted in 1999, parties may require voters to sign a statement of affiliation to participate in the state-administered presidential primary. Republicans required a statement in 2000, asked for a statement in 2008 and 2012, but withdrew their requests when outrage ensued, and have required a statement for 2016. Virginia Democrats have never required an oath to participate in their Presidential primary. Ever.
2. As I've pointed out as well, it's a very different thing for parties to require loyalty "pledges" or "oaths" in party-run, party-paid-for, low-turnout caucuses and conventions. A primary, in contrast, is run and paid for by the state. Also important to note is that the Virginia General Assembly, in its infinite wisdom (heh), has not passed legislation to require registration by party in Virginia. In other words, if Republicans are so worried about Democrats crossing over and messing with their preeeeeccciousssss primaries, then why don't they pass a law requiring party registration? Uhhhh.

3. This Republican "loyalty oath" fiasco is 100% the Virginia Republicans' doing -- Democrats had nothing to do with it. Nor, I'd add, did this blog, which the Virginia GOP's Executive Director bizarrely attempted to argue the other day.

4. Frank Leone's final point is an important one, and worth reprinting in full.



My primary concern with the GOP requiring an oath is it will be administered by non-partisan election officials who may have a hard time answering questions like: What does it mean to be a Republican? Does this mean I have to vote for Trump if he is the nominee? Can I vote for Trump if he runs as an independent. There should be a way to allow Democratic primary voters to bypass this nonsense.
Or, as a well-informed reader emailed me.
* Data collection for a political party is the responsibility of that party, not of non-partisan Officers of Election. 
* This is clearly partisan political activity. By statute, partisan political activity cannot be conducted within 40 feet of the polling place entrance and is PROHIBITED inside the polling place. 
* Officers of Election have enough to do already.
* Finally, the last thing we need is for Officers of Election to have to spend time arguing with knuckleheads who don't want to sign the "Statement." 
My concern is not with the RPV Statement of Intent, or any other form of a party "loyalty oath." My concern is that neither the local Electoral Boards, the General Registrars, nor the Officers of Election (all volunteers) should be policing political party discipline and collecting personal data for a political party -- for ANY political party. If a party wants its members to sign a notice of intent, they can do it outsidethe 40-foot limit, with their own people, at their own expense.
All excellent points. Having said that, as a partisan Democrat, I'm honestly thrilled that Republicans are pushing this divisive measure that is almost guaranteed to anger and alienate a lot of Tea Partiers and other independent conservatives. In other words, if you're a Democrat, this is pretty much a situation in which we just thank our lucky stars that the Republican Party of Virginia is led by such "knuckleheads," to use the BV reader's highly appropriate word. :)
Read the whole story
rosskarchner
3575 days ago
reply
Share this story
Delete

The Developer Formerly Known as FreeBSDGirl

2 Shares
I've been trying to publish this post for 5 months. It's been sitting in my queue, and I've been too worried about fallout to publish it, despite the support of friends familiar with the situation. But I'm not going to enter 2016 knowing that I was too scared to do something. So here it is.
Read the whole story
rosskarchner
3578 days ago
reply
Share this story
Delete

Surviving meetings while remote

1 Share

I work remote. This means that in most of the meetings I’m in, I’m a remote participant. If you’re in an organization that has a lot of remotes, maybe this will be useful to you! There are two scenarios I want to talk about:

  1. Every person in the meeting is in a different location (100% remote)
  2. There are 6 people in the meeting (5 local, 1 remote)

Scenario #1 is great! Everyone has the same connection problems.

Scenario #2 is a disaster. It took me a long time to understand why, but I think the primary reason is that it’s very hard to interrupt and indicate that I want to speak when I’m remote. You can’t indicate it visually as easily, so if I just wait for a break in the conversation to say something… well, it will never happen :)

Also, sometimes people can’t hear me, and I’ve had this exchange a lot

  • other people: stuff
  • me: minor remark
  • other people: what? we didn’t catch that
  • me: never mind.

I’ve gotten way better at being remote in meetings and interrupting. Now if I have something to say I just say “HI I HAVE A THING TO SAY”. And people say “yes julia?” and then I say the thing. It feels awkward but it works for me. But it took me a really long time to learn how to interrupt! Recently I was in a meeting with 8 local people and me and I said more than 5 things! I am now a remote meetings wizard.

It’s also hard to tell when a remote person is done speaking. I sometimes explicitly say “that’s all I have” or something at the end. So my interactions are awkwardly delimited by HI I HAVE A THING TO SAY – I AM SAYING THE THING - I AM DONE SPEAKING NOW YOU MAY PROCEED. This is great and it works.

local people can help

I once ran a meeting with 6 remotes and 6 local people, where I was local. Normally, this means that the local people do all the talking and the remotes are totally silent (because the barrier to entry is high). To combat this a little, I frequently asked the remotes if they had anything to say (Dan, I know you care a lot about this. What do you think?), and they frequently did have something really interesting to say! They were just not saying it.

Read the whole story
rosskarchner
3578 days ago
reply
Share this story
Delete

North Carolina citizenry defeat pernicious Big Solar plan to suck up the Sun

2 Comments and 4 Shares

We looked for solar panel farms in Woodland, N.C., but didn't find any. (credit: Google Maps)

The citizens of Woodland, N.C. have spoken loud and clear: They don't want none of them highfalutin solar panels in their good town. They scare off the kids. "All the young people are going to move out," warned Bobby Mann, a local resident concerned about the future of his burg. Worse, Mann said, the solar panels would suck up all the energy from the Sun.

Another resident—a retired science teacher, no less—expressed concern that a proposed solar farm would block photosynthesis, and prevent nearby plants from growing. Jane Mann then went on to add that there seemed to have been a lot of cancer deaths in the area, and that no one could tell her solar panels didn't cause cancer. “I want information," Mann said. "Enough is enough."

These comments were reported not in The Onion, but rather by the Roanoke-Chowan News-Herald. They came during a Woodland Town Council meeting in which Strata Solar Company sought to rezone an area northeast of the town, off of US Highway 258, to build a solar farm. The council not only rejected the proposal, it went a step further, voting for a complete moratorium on solar farms.

That seemed to please the residents evidently tired of Big Solar's relentless intrusion into their community. One resident, Mary Hobbs, said her home was surrounded by solar farms and has lost its value. That led Ars to the satellite view of Woodland on Google Maps, to see if we could verify the veracity of Hobbs' claims. This publication will not look the other way as Big Solar attempts to railroad the good citizens of small-town America. Alas, when we looked at the satellite view we didn't see any sign of solar farms as we perused the verdant fields and woods of the aptly named Woodland.

Read Comments

Read the whole story
rosskarchner
3596 days ago
reply
whut
Share this story
Delete
1 public comment
jhamill
3596 days ago
reply
'Murica!
California
Technicalleigh
3596 days ago
I don't want to live on this planet anymore.
jhamill
3596 days ago
It's almost like there are some people who *want* a new Dark Ages period to start.
Next Page of Stories