Back-End

9 fev, 2017

A importância do Java EE, JCP, Java EE Guardians e Microprofile

Publicidade

Hoje, vamos falar com Reza Rahman, o conhecido entusiasta de Java EE. Nesta entrevista, ele fala sobre microsserviços, Java, comunidade Java EE Guardian, Microprofile e a participação da Oracle nisso tudo.

Confira a seguir!

Reza, por favor, se apresente!

Sou apenas um desenvolvedor back-end, arquiteto, consultor e palestrante Java. Estou a muito tempo envolvido com a comunidade Java EE (15 anos, para ser mais preciso). Para aqueles que quiserem saber mais sobre mim podem visitar o meu perfil no Linkedin. Mas, provavelmente, para a maioria dos leitores basta saber que sou um ex-funcionário da Oracle onde eu era um evangelista Java EE e há muito tempo tenho contribuído para JSRs como um membro da JCP. Também tenho um blog, um perfil no Twitter onde costumo compartilhar assuntos que acredito serem interessantes sobre Java e Java EE, também arrisco compartilhar alguns códigos no GitHub.

Quais servidores de aplicação e IDEs você tem usado?

Como a maioria dos desenvolvedores Java, costumo usar uma variedade de coisas, incluindo Java EE, Spring, WebSphere, WebLogic, JBoss, GlassFish/Payara, Tomcat, Spring Boot, Eclipse e NetBeans. Mas os meus favoritos são Java EE, WildFly, WebSphere Liberty e NetBeans.

Falando um pouco de Microprofile, o WildFly Swarm é um projeto interessante, mas tenho que confessar que há muito tempo sou um fã do GlassFish e ainda tenho preferência por ele. O TomEE tem um grande potencial e poderá se tornar um grande projeto se os caminhos certos forem tomados.

Você é o líder do Java EE Guardian. Qual o tamanho da comunidade? Quem mais esta envolvido?

Não acho que exista um chefe na comunidade (e espero que nunca exista). Desde o início, os principais envolvidos fizeram um acordo de manter a comunidade sempre igualitária, então, todos os membros têm o mesmo poder de voto. Tentamos o máximo possível chegar a um consenso coletivamente, certamente eu sou uma peça chave para o Java EE Guardian por trazer à comunidade algumas discussões. Mas também é justo dizer que os principais envolvidos na comunidade começaram esse trabalho muito antes de eu ter qualquer coisa a ver com isso.

Sobre o tamanho da comunidade, considerando o tempo que estamos ativos e posso dizer que somos uma comunidade grande. A nossa lista de membros esta disponível no nosso site. A nossa comunidade, atualmente, é composta por cinquenta JUGs, uma duzia de Java Champions, quarenta JUG leaders, alguns membros JCP, blogueiros, escritores, palestrantes e professores. Mas se é preciso citar um nome, o primeiro que me veem a cabeça é o James Gosling (o pai do Java). Só que mais importante do que isso, é o apoio de vários desenvolvedores Java. Temos mais de três mil assinaturas na nossa petição para que a Oracle avance com o desenvolvimento da plataforma Java EE, mais de quatro mil seguidores no Twitter, mais de seiscentas pessoas inscritas no nosso grupo no Google. Bem, uma coisa que não temos é um grande fornecedor de serviços baseado na plataforma Java EE e até acho isso uma coisa boa.

Todo esse apoio não significa que não precisamos de mais suporte. Quanto mais pessoas apoiando tivermos, mais rápido vamos conseguir completar nossa missão, ser mais eficaz e ter a certeza de que nossos resultados vão perdurar. Acreditamos que a voz mais importante é a do desenvolvedor Java comum, especialmente aqueles que deixam os fornecedores de serviços Java responsáveis por suas palavras e ações.

Qual a sua opinião sobre a iniciativa Microprofile?

Microprofile é uma iniciativa muito importante e aconteceu no tempo certo. Na verdade, é muito difícil separar a hype e a realidade quando falamos de microserviços. Já presenciei uma quantidade considerável de clientes indo trabalhar com microserviços por causa da hype e dos fornecedores de serviços. Temo que esses projetos possam acabar falhando por terem adotado essa arquitetura muito rápido. O Java EE está passando por uma situação parecida: existe um perigo real quando falamos em adotar vários recursos que no final não vão resistir ao teste do tempo. Por isso, pra mim, Microprofile é uma forma inteligente dos fornecedores entrarem com o Java EE na hype dos microserviços sem arriscar poluir a plataforma com um punhado de ideias não comprovadas (ou pior, ideias ruins que vivem por pouco tempo).

Acredito que a iniciativa Microprofile também serve para lembrar à Oracle que ela não possui o monopólio sobre a padronização de serviços Java. Se a Oracle não consegue ser boa nisso, então um padrão alternativo pode e será naturalmente formado. Isso é um bom antídoto para alguns fornecedores que sabem que a plataforma Java EE tem como princípio evitar recursos que estão passando por uma hype, alguns fornecedores se aproveitam disso e falam constantemente que o Java EE não é mais relevante para tentar vender seus serviços (acredito que todo mundo saiba de quais fornecedores estou falando). Iniciativas como essa são boas porque elas permitem que fornecedores Java EE possam participar da hype sem ferir os princípios da plataforma.

Minha única preocupação com essa iniciativa é o esforço duplo que ela irá gerar depois que a Oracle anunciou que vai acelerar o lançamento do Java EE 9. Espero que as pessoas envolvidas nessa iniciativa estejam com as mentes abertas para negociações e colaborando com a Oracle mesmo que por debaixo dos panos. Gostando disso, ou não, sabemos que qualquer padronização sem um fornecedor grande como a Oracle é fraca. É também muito trabalhoso e talvez tóxico tentar recriar o JCP. Deem uma oportunidade! Eu sei que a Oracle tem os recursos para fazer as coisas certas tanto para o mercado, como para a comunidade. Todavia, como em qualquer lugar, a Oracle está cheia de pessoas que não são especialistas no assunto. O caminho correto seria se certificar de não trabalhar com essas pessoas.

Para você, qual a importância do Java EE?

O Java EE é muito importante e explicar sua significância em poucas palavras numa entrevista é uma tarefa muito difícil. Assim que possível, planejo escrever um texto sobre isso no meu blog, uma vez que esse é um assunto muito complicado. Muitos desenvolvedores não entendem o que o Java EE representa e isso é perigoso, principalmente quando temos fornecedores tomando atitudes anti-Java EE para favorecer seus próprios negócios (principalmente na nuvem).

A principal função do Java EE hoje é ser a única padronização 100% aberta para serviços Java. Tem sido assim há bastante tempo e espero que perdure por muitos anos. Sem o Java EE, você tem apenas duas opções muito ruins (uma pior que a outra), o menor dos males é que temos dois concorrentes que não colaboram entre si e possuem produtos incompatíveis.

Nesse típico cenário, os desenvolvedores ficariam presos a um único fornecedor. Se, por acaso, esse fornecedor fizer num futuro escolhas erradas, você vai acabar pagando o preço disso. No pior dos casos, posso imaginar todo o ecossistema de serviços Java nas mãos de um único fornecedor que não geraria concorrência no mercado e para a nuvem tudo isso pode ficar ainda pior, pois, além de suas APIs estarem compatíveis com um único serviço, também vão estar presas a uma única arquitetura.

Em contraste, temos o Java EE possibilitando um conjunto de APIs uniformes que são compartilhadas entre fornecedores e implementações. Os fornecedores podem competir com implementações, qualidade de serviços, preços e extensões. Assim, os desenvolvedores estão livres para escolher um fornecedor que se adeque melhor ao seu projeto. Esse é o modelo que possibilitou o desenvolvimento de uma plataforma de serviços Java robusta como vemos hoje em dia. Acredito que os desenvolvedores deviam pensar no que aconteceria com o mercado se não existisse o Java EE e assegurar que exista uma competição entre fornecedores.

Qual a sua opinião sobre a JCP?

Já tem um bom tempo que trabalho dentro da JCP e, honestamente, só tenho coisas boas a dizer sobre isso. Na JCP, sinto que posso fazer algo de impacto. As pessoas que estão lá colaborando se importam muito com o que fazem e as regras da JCP servem para que tudo aconteça da forma mais transparente possível. É um contraste muito grande quando comparamos com alguns projetos de código aberto que tenho visto por aí… Projetos que são abertos somente no nome, mas que são controlados por um grupinho de pessoas (existem casos em que é uma única pessoa). Para mim, o principal problema com a JCP é a falta de desenvolvedores querendo participar ou se importando com ela.

Não quero dizer que a JCP é perfeita (vamos encarar os fatos: nada na vida é). A Oracle tem que abrir mais a mão e passar mais poder de controle para a JCP. Participar dela e desenvolver as especificações precisa se torna algo mais fácil e menos burocrático, mas a única maneira disso acontecer é participando e trabalhando com a Oracle. Vale a pena o esforço e vale a pena tentar.

A Oracle anunciou na JavaOne que vai liberar o Java EE 8 e Java EE 9 nos próximos dois anos. Esse anunciou foi uma surpresa para você?

O fato de que a Oracle foi pressionada a retomar o desenvolvimento do Java EE não é uma surpresa. Por causa de fatores financeiros de longo prazo, a Oracle ficou muito tempo negligenciando a evolução da plataforma. Esse é o resultado que obtemos quando deixamos pessoas que não são especialistas decidirem assuntos importantes (as mesmas pessoas que falei mais cedo). Por sorte, parece que essa gente aprendeu a lição e as pessoas certas dentro da Oracle resolveram cuidar da situação para fazer aquilo que é certo para a comunidade e também para os próprios negócios da empresa.

O que me surpreendeu foi a velocidade com que conseguimos que a Oracle voltasse a se comprometer com o desenvolvimento da plataforma. O problema das pessoas que se acham especialistas é que é muito difícil fazer com que elas admitam que estão erradas. É bem provável que essa gente foi colocada de lado quando a Oracle resolveu arrumar as coisas com as pessoas certas que possuem autoridade para movimentar a plataforma.

Como está o desenvolvimento do Java EE 8?

Até agora o desenvolvimento do Java EE 8 parece estar indo muito bem. Ainda não atualizamos nossos dados de rastreamento, mas parece que há um aumento significativo nos esforços da Oracle, talvez possa acontecer dela liberar a versão EE 8 antes do prazo. Acredito que agora é o momento certo para perdoamos a Oracle pelos seus erros do passado e reforçamos as coisas boas que eles têm feito como administradores da plataforma Java. Todavia, isso não significa que devemos fechar nossos olhos para o que eles estão fazendo; muito pelo contrário: devemos mantê-los bem abertos.

Você pode compartilhar alguns recursos (blogs e etc. Sinta-se livre para se promover também) com a gente?

Acho que os desenvolvedores poderiam ficar de olho na conta do Twitter do Java EE Guardian e nosso grupo no Google. Esses são os nosso principais canais de comunicação e estamos precisando de mais ajuda para continuar movimentando o Java EE – nenhuma ajuda é grande ou pequena demais. Como falamos anteriormente, uma comunidade que trabalha unida pode realizar feitos que nenhum fornecedor se que consegue imaginar. Juntos, nós, desenvolvedores Java, podemos assegurar que nossos interesses serão correspondidos.

Reza, muito obrigado por conceder esta entrevista!

***

Este artigo é uma tradução com autorização do autor. O original você pode ver aqui: http://adambien.blog/roller/abien/entry/importance_of_java_ee_jcp