Jesse McConnell wisely suggested that I start cross-posting my
blog posts here. So here it is.
I would also like to apologize for my spotty participation on this
list over the past few days. I've actually been traveling on
vacation.
We are now about six
months into the process of migrating Java EE to the Eclipse
Foundation, and I think we’re all learning a lot as we go. I
wanted to take a moment and take stock of the scale of this
project, its complexity, and where we are.
Java EE is a (roughly)
twenty year old technology that is one of the world’s most
successful software platforms. It powers the business critical
applications that run our modern world. Millions of developers
work with Java EE technologies every day. Billions of users use
these systems every day. Throughout Java EE’s twenty year history
it has been developed and marketed in a pretty particular way.
At the core of Java EE’s
success has been an approach that enabled a multi-vendor ecosystem
where enterprises had a choice of compatible implementations from
a number of companies.
- Java EE
specifications were developed at the Java Community Process,
using that JCP process where all intellectual property flowed to
the Spec Lead, which was usually Sun (later Oracle). All
participants in the specification process are signatories of the
Java Specification Participation Agreement, which is a fairly
complex legal document.
- Progress and
innovation in Java EE was largely governed by and driven within
the constraints of this specification process.
- Java EE reference
implementations were, for the most part, developed by Oracle as
part of the Glassfish (and related) project and made available
under the CDDL and GPLv2+Classpath Exception licenses. Most of
the developers were from Oracle, and the architectural vision
and project management roles were performed by them.
Contributors to the projects signed the Oracle Contributor
Agreement that gave Oracle joint ownership of all contributions.
- TCKs were developed
entirely by Oracle and were highly confidential and tightly
controlled. You had to sign an NDA just to get a copy of the TCK
agreement if you were interested in getting access to the TCKs.
The agreements were pretty dense and complex legal documents.
- It was called Java
EE. It had a logo that looked like a coffee cup. These
trademarks were owned by Oracle and tightly controlled.
- Generally speaking
the big enterprises that used the technology were not involved
in its evolution. For the most part, the contributors to the
specs and implementations were from the Java EE platform
vendors.
Together we are changing
every single one of those items above. All at once. While
retaining the core value of enabling compatible independent
implementations in a multi-vendor ecosystem.
This is big and it is
complicated.
I honestly believe that
no institution other than the Eclipse Foundation could handle this
task. We have the people, the skills, the history, and the
knowledge of how the Java ecosystem works. The staff at the
Eclipse Foundation are highly skilled and community minded
professionals. Similarly, the team at Oracle, along with the folks
from IBM, Payara, Red Hat, Tomitribe and the EE4J PMC are working
hard to move this along. Collectively they are working their butts
off to support this transition and to make Jakarta EE the platform
and community of choice for the next twenty years.
Overall, I believe we’ve
been pretty successful at managing the complexity, and working
hard to communicate our progress and plans. We haven’t always been
perfect, as case in point this past week where we had a bit of a
kerfuffle on our Jakarta community mailing list. Without going
into the details, I would say that the root cause of that was poor
communication on my part. I didn’t do a good enough job in
communicating the plans and dates for selecting the new logo. My
bad.
Chris Anisczcyk, a good
friend and open source community colleague of mine tweeted some
months back that “Open source would be a lot more fun if everyone
assumed good intentions.” With his wise words in mind, I want to
say is this: what we are collectively undertaking here is a
massive and complex task. Mistakes and miscommunications are going
to happen. But let’s all assume good intentions, and build a
community based on trust, honesty, and respect.