BT

O Jigsaw no Java 9 e sua rejeição pelo JCP

| por Stefano Baldo em 17 mai 2017. Tempo estimado de leitura: 3 minutos |

Há muito especula-se sobre a modularização do Java através do projeto conhecido popularmente como Jigsaw. Inicialmente, sua implementação foi agendada para o Java 7, sendo empurrada para o Java 8 e, em 2012, a Oracle anunciou que só deveria liberar a implementação no Java 9. Apesar do longo tempo de discussão, não existe ainda um consenso com relação ao assunto dentro do Java Community Process (JCP), onde várias barreiras são criadas devido à grande complexidade do projeto. No dia 08 de Maio, o Comitê Executivo do JCP rejeitou a especificação do Jigsaw.

O projeto Jigsaw tem um escopo extremamente audacioso que não tem como objetivo apenas modularizar o atual runtime monolítico do Java, mas reforçar o seu encapsulamento, permitindo que os código em Java acessem as bibliotecas da plataforma somente através das suas interfaces públicas.

Fora deste processo, existem outros dois grandes módulos que não estão totalmente alinhados com o escopo do Jigsaw: JBoss, da Red Hat, e OSGi, que inclui a IBM. Estas duas empresas fazem parte do Comitê Executivo (EC) do Java Community Process (JCP), atualmente composto por 25 membros que avaliam e determinam a aprovação ou rejeição de novas especificações para a plataforma Java. Uma especificação para ser aprovada deve contar com, no mínimo, ⅔ dos votos válidos dentro do JCP. No caso do Jigsaw, IBM e Red Hat, dentre outros integrantes, votaram contra a aprovação desta nova especificação.

Tim Ellison, da IBM, anunciando previamente sua decisão em uma lista de discussão, declarou que a IBM votaria "não", pois considera que a especificação ainda não estaria pronta para ser enviada para a fase de revisão pública e posteriormente gerar a proposta final do projeto.

Atualmente, o projeto de gerenciamento de dependências e automatização para projetos Java mais utilizado é o Maven. Em sua proposta, o Jigsaw não fornece um mecanismo limpo para que seja feito o upgrade de projetos baseados em Maven para a nova plataforma. Detalhes sobre diversas preocupações que estão sendo levantadas podem ser vistas em um documento conjunto publicado pela Red Hat e especialistas externos em Maven.

No entanto, apesar das declarações antecipadas de IBM e Red Hat, Mark Reinhold, arquiteto chefe do Java Platform Group na Oracle, disse que o projeto seria enviado para análise pública de qualquer maneira, ainda que não houvesse consenso entre os membros do comitê.

Tim Ellison, da IBM, enviou uma resposta bastante longa, explicando com detalhes os motivos da empresa em votar não neste momento. A resposta original, em inglês, pode ser vista aqui. Entre as várias preocupações, ele lista alguns pontos técnicos como isolamento insuficiente, nomes de módulos automáticos e restrições de acesso, que segundo ele quebraria bibliotecas que utilizam reflection.

Diversos membros do comitê foram ouvidos durante as últimas semanas e alguns declararam seus votos de antemão, mostrando que ainda não havia um consenso. Porém, a maioria declarou que ainda aguardava para tomar sua decisão final, reconhecendo que tratava-se de uma situação muito delicada.

Mark Reinhold então publicou uma carta aberta ao Comitê Executivo do JCP, onde se mostrava surpreso que a IBM havia decidido votar contra a JSR (especificação) e ainda argumentou que a decisão da Red Hat em votar não era motivada por um desejo de "preservar e proteger seu sistema de módulos não-padrão, que é pouco utilizado fora do ecossistema JBoss | Wildfly".

Na votação, concluída no último dia 08 de Maio, prevaleceu o não. O resultado final foi 13 votos contra e 10 a favor. Votaram contra o Jigsaw: Credit Suisse, Eclipse Foundation, Inc, Grimstad, Ivar, Hazelcast, Hewlett Packard Enterprise, IBM, Keil, Werner, London Java Community, Red Hat, SAP SE, Software AG, Tomitribe, Twitter, Inc. Votaram a favor: Azul Systems, Inc., Fujitsu Limited, Gemalto M2M GmbH, Goldman Sachs / Co., Intel Corp., MicroDoc, NXP Semiconductors, Oracle, SouJava, V2COM.

Não foi desta vez que a especificação do novo sistema de módulos do Java foi aprovada, e a expectativa é de que se tenha ainda muita discussão pela frente. O InfoQ tem tentado estabelecer contato com diversas pessoas envolvidas nesse processo e continuará a fazer a cobertura sobre o assunto.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião

Faça seu login para melhorar sua experiência com o InfoQ e ter acesso a funcionalidades exclusivas


Esqueci minha senha

Follow

Siga seus tópicos e editores favoritos

Acompanhe e seja notificados sobre as mais importantes novidades do mundo do desenvolvimento de software.

Like

Mais interação, mais personalização

Crie seu próprio feed de novidades escolhendo os tópicos e pessoas que você gostaria de acompanhar.

Notifications

Mantenha-se atualizado com conteúdo cuidadosamente selecionado pelos editores do InfoQ

"Você não sabe o que você não sabe": amplie seus conhecimentos e pontecialize seu desenvolvimento profissional.

BT