# Importance of Java EE, JCP, Java EE Guardians and Microprofile--Interview With Reza Rahman

Reza, please introduce yourself
I am just a professional server-side Java developer, architect and 
    consultant. I have been involved in the Java EE community for a long time 
    (about 15 some years now). For folks interested, a long version of my bio 
    is on my LinkedIn summary. 
    For most readers here, it's probably significant that I am the former 
    official Java EE evangelist at Oracle and a long time contributor to 
    Java EE JSRs in the JCP. My  humble blog 
    is here. I also try to do something 
    useful with my personal Twitter 
    account. As a relatively frequent speaker, I try to share pragmatic 
    Java EE code on my GitHub account.

Which application servers, tools or IDEs are you using?
Like most Java developers I use a wide variety of things including Java EE,
    Spring, WebSphere, WebLogic, JBoss, GlassFish/Payara, Tomcat, Spring Boot, 
    Eclipse and NetBeans. My clear favorites these days are Java EE, WildFly, 
    WebSphere Liberty and NetBeans. I think WildFly Swarm is a really cool 
    project. I am a little sad to say I had been a long time fan of GlassFish 
    and to a lesser extent I still am. I think TomEE has a lot of yet unmet 
    potential and could be a significant player if the right things are done.

You are the chief Java EE Guardian. 
        How big is the Java EE Guardians community? Who else is involved?
I don't think there is actually a chief Java EE Guardian (and I hope there 
    will never be). From the very start
the core folks involved have had a gentleman's agreement to remain a very
egalitarian community where everyone is treated absolutely equally. We try our 
best to operate under open collective consensus based decisions. It is certainly 
fair to say I am a key Java EE Guardian responsible for bringing our community and 
concerns to the open. It is also equally fair to say the core Java EE Guardians 
started their most important work together far before I had anything to do with it.
I would say considering our age, the Java EE Guardian community is quite large.
    Our full list of supporters are always 
    available on our web site.
    Without needlessly naming names, our support comes from fifty JUGs, about a 
    dozen official Java Champions, forty some JUG leaders, many JCP members, bloggers, 
    authors, speakers and educators. One name I think is fair to mention is 
    James Gosling - the father of Java. Most importantly, many ordinary Java
    developers choose to support us. There are well over 3K signatures on our 
    change.org petition 
    to Oracle executives on Java EE. About 4K people follow us on 
    Twitter. There are over 
    600 people subscribed to our 
    Google 
    Group account. There isn't a heavy Java EE vendor presence in our
    community. I think that's a good thing.
None of this means we do not still need more support. The broadest possible support
will help us achieve our mission faster, more effectively and ensure that the
results of our efforts last a very long time. We are a grassroots organization. 
Our only job is to serve the best interests of the Java EE community. The most important
voice that matters for us is the ordinary Java developer, particularly people
that see the need to keep vendors on the Java server-side accountable for 
their words and actions.

What is your opinion about the 
        Microprofile?
I think MicroProfile is a very important and timely initiative. The issue is
that it is very difficult to separate hype from reality in microservices. I 
already see a number of clients struggling under the weight of vendor
driven microservices hype. I fear a lot of these projects are headed towards
needless failure by buying into hype driven products too quickly. Java EE is 
facing the same issue.
There is a very real danger Java EE may wind up prematurely standardizing many 
features that in the end will not stand the test of time in a few years. The 
MicroProfile is a great way for Java EE vendors to pseudo standardize microservices 
features and market those features into their products without risking polluting 
Java EE too much with a bunch of yet unproven ideas (or worse, outright bad 
ideas that happen to be trendy for a moment).
MicroProfile also serves as an important reminder to Oracle that it does not
have a monopoly on standardization in server-side Java. If it fails to be a good
steward for Java EE, an alternate standard can and will be naturally formed.
Lastly, MicroProfile is a good antidote to some of the deliberately designed Java EE
bashing some vendors engage in (I think we all know who these vendors and 
individuals are). They know fully well that Java EE tries to do the right thing
by avoiding hype-driven features. They take advantage of this principled and
disciplined standardization approach by continually claiming Java EE is 
"not relevant" because it does not immediately jump on the hype of the day. Things like
MicroProfile are great because it allows vendors that embrace Java EE to still
take part in the hype bandwagon in their products without destroying one of the core value 
propositions of standards as a critical insulator against vendor hype.
My only current concern with MicroProfile is the potentially needless
duplication of effort with what Oracle has announced for an accelerated Java EE 9. 
I hope the people involved with MicroProfile are keeping a cool head and properly
negotiating and collaborating with Oracle, even if it is behind the scenes.
Whether we like it or not, any standardization effort without a major vendor
like Oracle is weaker, not stronger. It is also a Herculean and perhaps Quixotic task
to try to re-create the JCP. Given an opportunity, I know Oracle has
the resources to do the right thing for it's business and the community. Like 
anywhere else, there are plenty of idiots at Oracle. The way to make sure the idiots
are not too empowered is by working with the right people still inside Oracle.

Why Java EE is important?
Java EE is so important it is very difficult to explain its full significance in 
   the span of a single interview. As soon as time allows I plan to blog about
   this very topic soon. The topic is timely because it is very poorly 
   understood by most developers and that's very dangerous, especially with 
   certain vendors taking a deliberately anti-Java EE stance to advance their own 
   proprietary business agendas - especially on the cloud.
The most obvious critical function for Java EE is that it is the only open 
standard we have for server-side Java. That's been the case for a very long time 
and hopefully will remain the case for many more years. Without Java EE you 
have two very bad possibilities - one far worse than the other. The lesser of the two 
evils is a bunch of competitors that don't really collaborate and have basically 
incompatible products. In such a scenario developers are basically locked into a given 
vendor. If that vendor turns out to be the wrong choice for any reason you have to 
pay a very high cost of porting all the APIs your application uses. By far the 
most terrible situation is that the entire server-side Java ecosystem is left to 
the mercy of a single monopoly vendor with no viable competition. All this is 
even worse on the cloud since you are locked in not just at the API level but 
also at the infrastructure level.
By contrast what Java EE enables is a set of uniform APIs that are shared 
across vendors and implementations. Vendors can effectively compete on 
implementations, quality of service, price and extensions. Developers are far
freer to choose between vendors at will. This is the model that has enabled
a robust server-side Java ecosystem for a long time. Developers should be 
genuinely frightened of what will happen to Java without an important competitive
safeguard like Java EE in place.

What is your opinion about JCP?
I have worked inside the JCP for a very long time and honestly have only
good things to say about it. I felt I had a real impact, people that really care
collaborate openly on the expert groups and the rules that govern the JCP makes
sure everything happens in an open, transparent way. This is in sharp contrast
to open source projects I have seen. Such projects are open in name but in 
reality are completely controlled by a small set of committers (often even
just a single dictatorial committer). By far the biggest problem with the JCP
that I have seen is that not enough developers take the time to participate or care.
That is not by any means to say that the JCP is perfect (let's face it - 
   nothing in real life is). Oracle definitely needs to open up more and
   relinquish more control of the JCP and Java. Participating in the JCP and implementing
   Java standards needs to be easier. The only way any of this will happen is 
   by participating and working with Oracle. Having a more open and vendor
   neutral Java is in the interest of every developer. It is worth the effort 
   and worth trying.

Oracle announced at JavaOne releases of Java EE 8 and Java EE 9 for the 
        next two years. Did the announcement surprised you?
The fact that Oracle would be forced to recommit to Java EE does not 
   surprise me at all. The underlying long-term fundamental financial factors really 
   made what Oracle had been doing for a few months quite mindless. It is the 
   result of the over-empowered idiots at Oracle that I alluded to earlier. 
   Hopefully these people have now learned their lesson and the right people 
   inside Oracle have been empowered to do the right thing for the community and 
   Oracle's business.
What surprised me is the speed at which we were able to get Oracle to 
   recommit. The problem with idiots is that it is hard to get them to admit
   they were wrong. It is possible these people were side-lined when 
   decisions at Oracle were corrected once the right people with adequate 
   authority figured out what was going on.

How Java EE 8 is doing? What is the progress?
At the moment Java EE 8 is looking quite good. Although we have not yet 
    formally updated our 
    public tracking data,
anecdotally it looks like there is a significant up-tick in overall activity from Oracle.
It may even be possible Java EE 8 will be delivered sooner than Oracle has
promised. I think this is the right point to forgive Oracle's past mistakes
and refocus on what they are doing right and can do right as the Java steward.
That does not mean of course that we do not keep our ears and eyes open.

Can you share any resources (blogs, etc feel free to promote 
        yourself) with us?
The best thing developers can do is stay tuned to the Java EE Guardian 
    Twitter account 
    and 
    Google Group.
Those are our main open coordination mechanisms. We need everyone's help to keep
moving Java EE forward. No support is too big or too small. As we
have shown already, the grassroots community working together can achieve 
remarkable things vendors can't even begin to imagine. Together humble 
server-side Java developers can ensure their interests are preserved above all.

Reza, thank you for the interview!
