Home > Artigos > Entrevistas >
Entrevista com Michael Nascimento Santos, sobre o Java 6: Mustang
Publicado por Tutoriais Admin em 15/08/2009 - 1.154 visualizações
| O JavaFree entrevista uns dos brasileiros mais atuantes no mundo java open source. Ninguém menos que Michael Nascimento Santos , também conhecido como Mister__M. Michael é desenvolvedor Java há mais de 6 anos e possui 12 anos de experiência na área. É o Community Manager da comunidade JSR além de participar ativamente em 3 Expert Groups: JSR-207 (PD4J) , JSR-250 (Common Annotations) e JSR-270 (Mustang) que é o foco desta entrevista. É co-fundador do SouJava e colabora com vários projetos open-source, como Thinlet , ThinNB , AspectWerkz e genesis . Foi palestrante em vários eventos, incluindo JavaOne 2003, JustJava 2003 / 2004 / 2005, Abaporu 2003, FISL 2004, COMDEX Brasil 2004, BrasilOne 2004. | |
Atualmente tenho focado no desenvolvimento do genesis , ajudado no processo de QA do NetBeans 5 , desenvolvido alguns plugins para suporte do genesis nesta IDE e continuo trabalhando no primeiro cliente do genesis, num trabalho de mentorização da equipe do cliente. Então eu também estou envolvido nas tarefas comuns do dia-a-dia, embora deva dizer que o projeto é bem controlado, sem horas extras e estresses generalizados, o que não é muito comum na nossa área.: -)
2 - Entrando no assunto da entrevista, quais são os objetivos e metas do Mustang?O Mustang não pretende ser uma versão " revolucionária " como o Tiger, que introduziu diversas mudanças na linguagem. A principal meta desta versão é melhorar a experiência do usuário, tornando mais APIs disponíveis na distribuição padrão, simplificando as existentes e trazendo mais estabilidade para a JVM. Formalmente, as metas principais são:
- Compatibilidade e Estabilidade
- Facilidade de diagnósticos, Monitoramento e Gerenciamento
- Facilidade de desenvolvimento
- Desktop corporativo
- XML & Web Services
- Transparência
A Sun não divulgou nenhum tipo de estatística com respeito a quantas pessoas estão ajudando, mas é possível saber quem assinou o JCA, contrato necessário para colaborar com o desenvolvimento do Mustang através deste endereço: http://www.sunsource.net/CA_signatories
4 - Quais modificações presentes no Mustang lhe parecem mais significativas e como eles podem beneficiar os desenvolvedores?Eu acredito que as diversas mudanças com relação ao suporte desktop, webstart, o novo verificador de bytecode e a integração com as linguagens de script são bastante importantes para que a plataforma cresça em ambientes desktop mais restritivos culturalmente, como acontece no Brasil.
Java está presente no desktop em diversos ambientes e, embora existam diversas aplicações Java desktop no Brasil, como o IR multi-plataforma, alguns nichos específicos são bastante resistentes por causa de pequenos detalhes, como a integração com a área de notificação do sistema operacional ou pelas mensagens que uma aplicação webstart exibe antes de ser iniciada, por exemplo. Espero que essas barreiras diminuam com a chegada do Mustang.
5 - Linguagens de script têm se tornado um atrativo para boa parte dos desenvolvedores. Ruby e Python influenciaram linguagens que geram bytecodes como Jython, Groovy, Beanshell e outras. Agora, o Mustang virá com suporte a linguagens de Scripts, como isso torna a plataforma Java mais poderosa?Muitos desenvolvedores Java costumam não dar muita atenção à linguagens de script, embora elas possam acelerar muito tarefas de nicho específico ou resolver pequenos problemas do dia-a-dia de forma prática e rápida. Especialmente o JavaScript é rejeitado por muitos que confundem a linguagem com a API incompatível dos browsers.
Com suporte integrado a tais linguagens, os desenvolvedores provavelmente vão questionar a razão delas terem sido integradas à plataforma e experimentarão com elas no cotidiano, o que, como sempre, deve causar uma série de novos problemas (projetos com múltiplas linguagens usadas apenas como " aprendizado "), mas trará reais benefícios aos que souberem explorar o potencial delas.
6 - Annotations têm recebido uma serie de criticas. Você que participa da JSR-250, a Common Annotations, recomenda que tipos de uso para elas? Quais são desaconselhados?As anotações podem tornar o desenvolvimento muito mais prático e intuitivo, além de eliminar limitações como o problema do refactoring seguido de uma caça a ocorrências em arquivos xml, por exemplo, quando usadas corretamente. Coisas que fazem parte do estado natural das classes / objetos, como se o componente é stateful / stateless, sempre deveriam ser parte somente do código e isso agora se tornará verdade com o EJB 3.
O que acho uma abordagem flexível é esperar que os metadados estejam presentes de alguma forma, mas não forçar o usuário final a utilizar anotações. No caso do genesis, por exemplo, temos um modelo de classes que representam a estrutura de metadados que esperamos encontrar para uma classe e uma implementação que popula este modelo lendo anotações, mas é possível configurar esses metadados por XML, JMX ou mesmo dinamicamente, por exemplo. Diversas tecnologias do Java EE 5 permitem o uso de anotações e / ou XML, o que também permite que o usuário faça a sua escolha.
Com relação a JSR-250, no momento seu escopo está bastante limitado a padronizar anotações utilizadas por outras JSRs e evitar que diversas anotações semelhantes proliferem nas APIs, mas recebemos diversas sugestões que poderão ser implementadas nas revisões futuras da especificação.
7 - O Microsoft Windows Vista está chegando com suporte a telas em XML. Java está preparado para esta tecnologia? Existirá alguma integração com os ambientes e ferramentas Microsoft?Até onde eu sei, não existe nenhum plano oficial de suportar a nova tecnologia proposta pela Microsoft, mas padrões XUL existem há bastante tempo e há APIs para manipulá-los em Java. Dentro da própria tecnologia Java, pode-se ver que diversos projetos tem tentando explorar essa abordagem, com resultados diversos. Pode-se citar projetos como Thinlet e o SwiXML nesta área.
8 - Há alguma nova implementação para os processadores de 64 bits, principalmente em relação as gigantescas heaps?A implementação da Sun tem sido melhorada para ambientes 64 bits, e especialmente bugs no HotSpot tem recebido atenção, mas isto não faz parte da especificação do Mustang e, por isso mesmo, acabo não recebendo muitas informações a respeito.
9 - Nos planos há a inserção de novas APIs, por exemplo, assinatura digital de XML e JAX-RPC. Entretanto, há discussões onde se defende um JDK enxuto. Recursos como esses não são muito específicos para figurarem na distribuição padrão?Se esta pergunta fosse feita a pessoas que trabalham em realidades diferentes, provavelmente teríamos uns quatro grupos básicos. Alguns acreditam que o JDK deveria ser modularizado e que diversas funcionalidades, como CORBA, por exemplo, deveriam ser _removidos_ da distribuição padrão. Outros são favoráveis a que o JDK inclua cada vez mais coisas e não acham que o tamanho da distribuição tem a menor importância enquanto não for maior que um CD, por exemplo. Os últimos dois grupos provariam que as funcionalidades que você citou são essenciais e / ou irrelevantes.
Eu espero o Dolphin comece a nos levar a uma outra direção, talvez modularizando a distribuição atual, mas isso é somente especulação por enquanto. A JSR-277 merece atenção, pois é a melhor chance de resolver este problema.
10 - Nós ouvimos uma série de reclamações sobre o suporte a Drag and Drop do Swing desde a versão 1.4. Parece que o Mustang terá novas implementações, pode nos deixar a par disso?Diversas mudanças serão feitas nessa área, inclusive com a adição de novas APIs. Para aqueles interessados neste assunto específico, recomendo o seguinte blog de um dos grandes envolvidos nestas alterações:
http://weblogs.java.net/blog/shan_man/
11 - A versão 5 do java criou uma série de sintaxes diferentes dentro da linguagem, alterando inclusive a API de reflexão. E muito se tem falado sobre o uso de AOP para o desenvolvimento de software e já é possível ver ótimos projetos que fazem bom uso dessa abordagem. Existirá alguma modificação na linguagem como aconteceu com a versão Tiger? Ou planos de prover suporte " out-of-the-box " nas próximas versões do JDK? Qual sua opinião a respeito?AOP é um assunto ainda bastante polêmico, embora já esteja sendo usada na prática e com sucesso por um tempo significativo. A melhor chance de melhorar o suporte a AOP na linguagem e na JVM seria se o time do AspectJ e do JRockit, com apoio de outros membros do JCP, submetesse JSRs específicas com base no trabalho que vem fazendo. As alterações que foram feitas pelo pessoal da BEA são extremamente interessantes, mas requerem grandes mudanças na JVM e só serão padronizadas se houver grande apoio dentro do JCP.
12 - Já não é novidade que o C # possuirá suporte a SQL nativas, compiladas pela linguagem e integradas a um banco de dados. Algumas idéias para o Java já surgiram, como OQL, por exemplo. Embora o modelo do C # diga adeus a orientação a objeto, ele influencia o Mustang a ponto de esperarmos alguma forma de compilar selects para competir com o C #? PD4J é concorrente dessa abordagem?A Sun tem feito experimentos internos a respeito de alterações para suportar XML, por exemplo. A nova API de JDBC já possui alterações interessantes com o uso de anotações e interfaces e com todo o código de baixo nível gerado automaticamente, com mapeamento para beans, inclusive, mas não acredito que haja maiores evoluções nessa área.
O objetivo da JSR-207 (PD4J) não está relacionado com SQL, mas sim com um melhor suporte da definição de processos dentro da plataforma. Contudo, os trabalhos estagnaram há um certo tempo e não estou autorizado a fornecer informações sobre a razão disso.
13 - Terminando a nossa entrevista, muitos desenvolvedores brasileiros tem interesse de participar de projetos de grande importância como os que você participa. Qual é o caminho a ser traçado para que estes desenvolvedores possam participar?É preciso ter força de vontade, dedicação, adquirir conhecimento, mostrar o que se sabe - através de blogs, projetos open-source, palestras etc -, ter bons contatos, aprimorar o inglês e também estar no lugar certo, na hora certa.: -)
O JavaFree agradece Michael Nascimento Santos pela honra da entrevista, o reponsável pela entrevista Vitor Fernando Pamplona e o tradutor para inglês Evandro Barreto.
