The Apache way meets the Oracle way

The Apache way, an insistence on consensus, a refusal to condemn, is facing its stiffest test in the battle over Java 7.

There is nothing in open source quite like the Apache Software Foundation (ASF).

To outsiders it can be maddening. I just finished keynoting ApacheCon and I still don't get it.

Jim Jagielski (right) is currently Apache's president, but having been with the group since its start he's also an unofficial historian.

Jagielski traces Apache's birth to the original NCSA Web server in the mid-1990s. He remembers he had launched a web hosting company called Jagunet, and when the NCSA team left en masse to become Netscape "I had a business dependent on something that was not being maintained."

So did other people. They all jumped into the e-mail conversation aimed at getting something running. Apache was born.

This birth story helps explain why Apache exists, but what Jagielski calls the Apache Way evolved, like British common law, rather than being written down as with the U.S. Constitution. "We didn't realize we were creating rules and processes. We pulled stuff from here and there."

Central to the process is the concept of consensus. Committers must all agree to add something to the code base. It takes three votes or "ups" to get something in, but once it's in it can be vetoed out if someone has a good objection to it.

"You'd think we'd have rule by veto, stopping stuff from happening," Jagielski told me, but in practice persistent vetoes are a warning sign that "someone is being poisonous" and may need to leave.

This can happen within projects, or it can happen to projects. An example of the latter is Ibatis, now at Google Code. Apache officers let it go because it didn't run like an Apache project runs. Nothing wrong with it, nothing wrong with the people in it, it just didn't fit the Apache Way, so it left.

This passive-aggressive management style, an insistence on consensus, a refusal to condemn, and a will by everyone to keep quiet, is facing its stiffest test in the battle over Java 7.

Oracle's suit against Google over Java claims Google's Dalvik virtual machine is based on Apache's Project Harmony. Oracle thinks Harmony is its smoking gun. Apache denies it, and says that while the Google code may have had an Apache license it wasn't Apache code.

But all this is a sideshow next to the real issue.

Oracle wants to control Java, while Apache, which has a number of Java projects, wants Oracle to fulfill Sun's promises of vendor independence. The failure of Oracle to get its choice for the Java Executive Committee elected, while Apache's representative won 95% of the vote, has led to an impasse.

Apache is quietly waiting for Oracle to make its move, to force through a Java 7 road map over the objections of the Java Executive Committee (JEC), or to put its allies on the JEC by fiat.

This hasn't become much of a news story because Apache doesn't work that way. All Jagielski would say about it is "if Java 7 is pushed through, the ASF has some hard decisions to make."

Personally, I'd be pounding the table. That's not the Apache way.

The question is whether this quiet, consensus-driven way of doing things can work against a company like Oracle, which is accustomed to getting its way. I suggested it's a bit like the struggle between India and England, with Apache in the position of Gandhi, engaging in passive resistance.

Jagielski smiled and admitted the comparison may be apt. But only to a point.

"We're not a marching drum, proclaiming change. We're hesitant about being that, about calling anyone to arms. We prefer leading by example." And he left it at that.