Software


[Atualizado em 18 de dezembro de 2014.]

Desde a versão 6 do Java, a Oracle começou a oferecer a instalação do software Ask de buscas patrocinadas na internet (ou seja, um adware), durante a instalação do runtime Java. E essa “oferta” insistente e vergonhosa aparece não só na instalação inicial do Java, mas em toda atualização on-line.

A página de ajuda (FAQ) do Java na Internet apenas define vagamente o seguinte:

“A Ask Toolbar é um add-on de browser gratuito que permite fazer pesquisa na Web usando o mecanismo de pesquisa Ask.com diretamente do browser.”

As ferramentas oferecidas para instalação junto com o Java são a Ask Toolbar, uma barra de ferramentas instalada como extensão nos navegadores internet, e a alteração da configuração dos navegadores instalados para que o mecanismo de busca padrão seja da Ask.com. Obviamente são buscas patrocinadas, ou sejam, que levam a resultados muitíssimo piores que os da busca do Google ou mesmo do Bing, e infestados de resultados patrocinados, onde o que mais interessa é gerar rendimento para a Ask, e não apresentar ao usuário resultados relevantes. Ou seja, o tipo de software — em geral indesejado — que é conhecido como adware.

Será realmente que um dos principais mecanismos de runtime de aplicações ricas na Internet como o Java, e uma hiper-mega-corporação global como a Oracle precisem de dinheiro extra pela revenda de patrocínio através da Ask para sustentar a distribuição e disseminação do Java? Será que realmente vale a pena associar o nome de uma empresa sólida como a Oracle e uma plataforma séria e tradicional (desde 1995!) como o Java, a um questionável adware??? Sinceramente, acredito que não!

Existe até uma petição pública (abaixo-assinado) na Internet para que a Oracle pare de distribuir o Ask na instalação do Java: Oracle Corporation: Stop bundling Ask Toolbar with the Java installer.

É fácil evitar a instalação do Ask, bastando desmarcar a opção na tela própria do assistente de instalação do Java as opções que vem marcadas por padrão:

Oferta para instalar o complemento de navegador da Ask

Mas como a maioria dos usuários não presta atenção e às vezes até não entende bem as opções, e simplesmente vai clicando “Avançar” até a conclusão da instalação, muitos acabam tendo instalada a extensão da Ask. Depois podem se assustar quando tentam fazer uma pesquisa na Internet e veem a página de resultados da Ask, sem nem se lembrarem de como isso foi parar ali!

Mesmo depois de instaladas as extensões da Ask, há opção de desinstalar o software pelo Painel de Controle do Windows, mas mais uma vez muitos usuários mais leigos ou desavisados sequer sabem disso ou procuram essa opção.

Lendo uma atualização de 12/12/2014 no site do abaixo-assinado contra o Ask ToolBar, descobri que a partir do Java 7 Update 65 (7u65) e Java 8 Update 11 (8u11) a Oracle passou a disponibilizar, no Painel de Controle Java, guia Avançado, opção que pode ser marcada para Suprimir ofertas de patrocinadores ao atualizar o Java.

Painel de Controle Java, guia Avançado, opção Suprimir ofertas do patrocinador ao instalar ou atualizar o Java.

O FAQ (Respostas a Perguntas Frequentes) da Oracle sobre “Como eu instalo o Java sem ofertas de terceiro patrocinador” ainda apresenta outra alternativa, mais técnica, para evitar a instalação de software patrocinado na instalação é executar o instalador pela linha de comando (Prompt/Console, cmd, ou Iniciar > Executar) acrescentando o parâmetro SPONSORS=0. Segundo o artigo, esta opção já existia antes do Java 7u65 e 8u11, mas não deixa claro desde quando.

Uma entrada no fórum SuperUser, How can I prevent Ask.com Toolbar from being installed every time Java is updated?, ensina que há um jeito de se adicionar entradas no registro do Windows que desabilitam em definitivo as ofertas de patrocinadores durante a instalação de Java: desativa_patrocinio_java.reg

Também quando se baixa a versão off-line do instalador do Java Runtime (JRE), disponível em Java.com e em Oracle TechNet (encontrado a partir da página inicial Java SE Downloads), a oferta de instalação da ferramenta patrocinada Ask não aparece.

Mas, mais uma vez, a maior parte dos usuários comuns não sabe disso e nunca chegará a estas alterativas, infelizmente!

No artigo Soluto’s data raises questions about how Oracle manages Java do blog da empresa Soluto, de soluções para suporte remoto para PCs e iOS, o instalador do Java é responsável por cerca de 40% das instalações indesejadas da Ask Toolbar em seus clientes. Além disso, pelo menos 60% dos clientes da Soluto que tiveram o Ask instalado providenciaram a desinstalação, mostrando o quanto a ferramenta é indesejada. E a empresa acredita que a maior parte dos que ainda não desinstalaram a Ask Toolbar têm a intenção de fazê-lo.

Se você é usuário do Java, recomendo evitar a instalação da Ask Toolbar ou desinstalar se você também acha um software indesejado. Se você é um representante da Oracle, por favor leve nosso protesto a quem de direito para retirar esse maldito e vergonhoso patrocínio de uma vez por todas!

Para saber mais:

Ao fazer um levantamento sobre certificações disponíveis no mercado para atestar os conhecimentos teóricos de profissionais de teste e garantia da qualidade de software, descobri que existem mais de 20 certificações de pelo menos sete instituições certificadoras no mundo! Isso sem falar nas certificações em ferramentas e produtos específicos para teste de software (IBM, Borland etc.).

Cada instituição costuma dividir seu caminho de certificações em níveis, que podem estar entre os quatro seguintes: Fundamental, Profissional ou Avançado, Especialista, Gerencial.

Cada instituição certificadora propõe um corpo de conhecimento (body of knowledge – BOK) em teste de software, com a ementa de referência (syllabus) de cada certificação e, em geral, provê também um glossário sistematizado de termos.

Obviamente, como estão todos abordando a mesma disciplina de teste de software, existem muitas similaridades, mas há bastante variação de tópicos e abordagens.

As entidades certificadoras mais populares no Brasil parecem ser a International Software Testing Qualifications Board (ISTQB) de origem européia, através de seu braço nacional Brazilian Software Testing Qualifications Board (BSTQB); a Associação Latino Americana de Teste de Software (ALATS); e o Quality Assurance Global Institute (QAI), de origem americana.

O quadro resumo das certificações e detalhamento das informações está na seção Teste e Garantia da Qualidade de Software da página Hyperlink: Qualidade do Produto, Métricas e Teste de Software.

Mas são tantas siglas de instituições e certificações que você pode se confundir facilmente com essa sopa de letrinhas. Nesse caso, a variedade e diversidade mais complica do que ajuda. Seria muito bom se surgisse um esforço internacional de unificação ou consolidação destas ementas de referência…

Atualizei hoje o artigo PDF Livre com (ou sem) o Ghostscript, com a revisão 24.

Nos últimos 30 dias, cinco das seis impressoras PDF gratuitas avaliadas disponibilizaram atualizações. Só ficou de fora o FreePDF, cuja última atualização foi em agosto de 2011. Até o CutePDF Writer, que não lançava atualização desde a versão 2.8 em agosto de 2009, distribuiu agora a atualização 3.0 compatível com Windows 8 e com suporte a GPL Ghostscript tanto 32 quanto 64 bits.

De ruim, a expansão da oferta de produtos patrocinados (adware) nos instaladores. Nesta atualização, o CutePDF Writer passou a oferecer a instalação da ASK Toolbar, e o PDFCreator passou a oferecer não apenas um, mas a instalação de dois adwares.

O link sobre o uso da biblioteca adware OpenCandy no PrimoPDF ficou inválido. Não pude afirmar se este software ainda usa ou não a biblioteca, mas por via das dúvidas, deixei o aviso anterior sobre possível adware incluso. A propósito, vi no rodapé da página do PrimoPDF o discreto link PrimoPDF Source, onde pode-se baixar um ZIP com todo o projeto de fontes VisualBasic do utilitário; por isso, alterei seu tipo de licenciamento de freeware para código aberto.

Aproveitei para corrigir links desatualizados que estavam referenciados no artigo.

Coleta atualizada de análsies de mercado de produtos de TI por institutos de pesquisa, desde a postagem de meu artigo do ano passado.

Infraestrutura de Aplicações

Desde 2010, o mercado de servidores de aplicação corporativos está estável, com os líderes Oracle, IBM, Microsoft e Red Hat (JBoss). Nessa atualização em 2011, a Red Hat encosta cada vez mais nos outros três líderes. O quadrante mágico também foi “enxugado” da profusão de concorrentes de nicho e visionários que haviam em 2010.

Quadrante Mágico Gartner - Servidores de Aplicação Corporativos, 2011

Quadrante Mágico Gartner - Servidores de Aplicação Corporativos, 2011

Fonte: Magic Quadrant for Enterprise Application Servers, setembro 2011, Gartner, reproduzido por Oracle.

Quadrante Mágico Gartner - Governança SOA, 2011

Quadrante Mágico Gartner - Governança SOA, 2011

Fonte: Magic Quadrant for SOA Governance, outubro 2011, Gartner, reproduzido por Oracle.

ESB Forrester Wave Q2 2011

Mercado de Enterprise Service Bus, 2º trimestre de 2011, Forrester Wave, Forrester Research.

Fonte: The Forrester Wave: Enterprise Service Bus, Q2 2011, por Ken Vollmer para profissionais de desenvolvimento e distribuição de aplicações, 25 de abril de 2011, reproduzido por Oracle.

ESB Reference Architecture Model

Enterprise Service Bus reference architecture model, Forrester Research, 2011.

Quadrante Mágico Gartner - Application Performance Monitoring, 2011

Quadrante Mágico Gartner - Application Performance Monitoring, 2011

Fonte: Magic Quadrant for Application Performance Monitoring, setembro 2011, Gartner, reproduzido por Quest Software, por CA, por Opnet.

Gerenciamento de Conteúdo

O cenário não mudou muito desde as análises dos institutos Forrester e Gartner no quarto trimestre de 2009 e do Gartner em novembro de 2010. Comparando os resultados dos dois institutos agora no final de 2011, vemos que ambos concordam na indicação de cinco líderes de mercado EMC, Oracle, IBM, OpenText e Microsoft. O excelente posicionamento de IBM e Oracle é similar nos dois gráficos; a diferença fica por conta do Forrester colocar OpenText e EMC em uma situação mais proeminente, e Microsoft no limiar inferior da liderança.

Forrester Wave - ECM, 4º trimestre 2011

Forrester Wave - ECM, 4º trimestre 2011

Fonte: The Forrester Wave – Enterprise Content Management, Q4 2011, novembro 2011, Forrester, reproduzido por Oracle.

O relatório Forrester Wave 2011 Q4 traz uma interessante figura que sintetiza os tipos de conteúdo e tecnologias relacionadas em gerenciamento de conteúdo corporativo (ECM):

Forrester Wave ECM 2011 Q4: Tipos de conteúdo e tecnologias

Forrester Wave ECM 2011 Q4: Tipos de conteúdo e tecnologias

O relatório completo também traz três gráficos de ondas adicionais segmentados por tipo de conteúdo: Fundamental, Negócios e Transacional.

Quadrante Mágico Gartner - ECM, 2011

Quadrante Mágico Gartner - ECM, 2011

Fonte: Magic Quadrant for Enterprise Content Management, outubro 2011, Gartner, reproduzido por Oracle.

O segmento específico de gerenciamento de conteúdo web mantém-se estável se comparado com as análises do Gartner em agosto de 2009 e em agosto de 2010. Oracle, OpenText, Autonomy, SDL e Sitecore se mantêm na liderança. Agora em novembro de 2011, surge a Adobe entre os líderes. IBM e Microsoft continuam fortes desafiantes nesse segmento.

Quadrante Mágico Gartner - Web CMS, 2011

Quadrante Mágico Gartner - Web CMS, 2011

Fonte: Magic Quadrant for Web Content Management, novembro 2011, Gartner, reproduzido por Oracle.

Quadrante Mágico Gartner - Portais Horizontais, 2011

Quadrante Mágico Gartner - Portais Horizontais, 2011

Fonte: Magic Quadrant for Horizontal Portals, outubro 2011, Gartner, reproduzido por Oracle.

Análise e Inteligência de Negócios, Armazém e Integração de Dados

O quadrante a seguir foca o segmento de ferramentas analíticas de negócios (business analytics) denominado Gestão do Desempenho Corporativo – Enterprise Performance Management (EPM) ou Corporate Performance Management (CPM).

Magic Quadrant for Corporate Performance Management Suites, March 2012

Quadrante Mágico Gartner – Suítes de Gestão de Desempenho Corporativo, 2012

Fonte: Magic Quadrant for Corporate Performance Management Suites, 19 de março 2012, Gartner, reproduzidor por Oracle.

Quadrante Mágico Gartner - Business Intelligence Platforms, 2012

Quadrante Mágico Gartner - Business Intelligence, 2012

Fonte: Magic Quadrant for Business Intelligence Platforms, fevereiro 2012, Gartner, reproduzido por Microstrategy, por Oracle, por Microsoft, por LogiXML, por Tableau.

Quadrante Mágico Gartner - Ferramentas de Qualidade de Dados, 2011

Quadrante Mágico Gartner - Qualidade de Dados, 2011

Fonte: Magic Quadrant for Data Quality Tools, julho 2011, Gartner, reproduzido por SAP [PDF], por Autonomic Resources.

Quadrante Mágico Gartner - Integração de Dados, 2011

Quadrante Mágico Gartner - Integração de Dados, 2011

Fonte: Magic Quadrant for Data Integration Tools, outubro 2011, Gartner, reproduzido por Oracle.

Quadrante Mágico Gartner - SGBD Armazém de Dados, 2012

Quadrante Mágico Gartner - SGBD Armazém de Dados, 2012

Fonte: Magic Quadrant for Data Warehouse Database Management Systems, fevereiro 2012, Gartner, reproduzido por Oracle.

Um erro bastante comum que vejo no uso de planilhas eletrônicas em cálculos financeiros e monetários é o tratamento incorreto de centavos na divisão não-inteira e cálculos com números fracionários com mais de duas casas decimais. Nesse artigo vou abordar o problema e soluções para tratá-lo adequadamente.

Problema: Formatação exibida × valor armazenado

Quando se trabalha com valores monetários (financeiros), é comum usar a formatação de número das células como “Moeda”, “Contábil” ou ainda “Número”, com duas casas decimais. Isso faz a planilha eletrônica exibir os valores sempre arredondados em duas casas decimais, para representar adequadamente os centavos.

Por padrão, essa precisão de casas decimais da formatação é usada apenas na exibição, mas o armazenamento e cálculos do valor usam toda a precisão que a planilha comporta (o Excel 2010, por exemplo, tem precisão máxima de 15 dígitos).

Se o valor da célula tem parte fracionária com mais de duas casas decimais — um caso típico é o resultado de uma divisão não inteira — mas apenas a exibição é formatada com duas casas decimais (para os centavos), isso pode resultar em divergências de arredondamento de centavos, quando esse valor é usado em cálculos.

Veja o exemplo, células das colunas B e C formatadas como moeda (duas casas decimais):

A B C
1 n v n*v
2 3 R$ 0,33 R$ 1,00
3 3 R$ 0,67 R$ 2,00
4 3 R$ 0,33 R$ 0,99
5 3 R$ 0,67 R$ 2,01

Por que aparentemente os cálculos nas linhas 2 e 3 são iguais aos das linhas 4 e 5, mas os valores resultantes da multiplicação (coluna C) são diferentes? Porque os valores armazenados nas células B2 e B3 são as fórmulas =1/3 (0,333333333333333) e =1/4 (0,666666666666667) respectivamente, enquanto nas células B4 e B5 são efetivamente 0,33 e 0,67.

Solução 1: Precisão de cálculo igual à exibição

Uma solução, fácil de aplicar mas que deve ser usada com muito cuidado, porque afeta globalmente a planilha eletrônica e faz com que valores digitados percam definitivamente a precisão de casas decimais excedentes, é utilizar uma opção do Excel que faz com que a precisão de cálculo seja igual ao exibido.

No Excel 2010:

  1. Clique na guia Arquivo, clique em Opções e, em seguida, clique na categoria Avançado.
  2. Na seção Ao calcular esta pasta de trabalho, selecione a pasta de trabalho desejada e, em seguida, marque a caixa de seleção Definir precisão conforme exibido.
  3. Selecione OK.

Observe que o Excel alerta que dados (digitados) perderão definitivamente a precisão (casas decimais excedentes ao exibido). Isso significa que se houvesse um valor digitado e armazenado como 0,666667 na célula formatada como 2 casas decimais, após ativada a opção o valor seria definitivamente convertido para 0,670000. Isso não afeta porém valores que são fórmulas como =2/3.

Referência: Ajuda do Excel 2010 – Alterar a precisão dos cálculos em uma pasta de trabalho.

Solução 2: Utilizar fórmulas de arredondamento

Outra forma de evitar/solucionar essa divergência é utilizar nas células fórmulas que explicitamente arredondem ou trunquem os valores armazenados para duas casas decimais. Existem várias fórmulas para isso. Peguemos o exemplo de tratar a fração a/b (por exemplo, 1/3 ou 2/3):

  • =ARRED(a/b;2) → Arredonda um número (primeiro parâmetro) até a quantidade especificada de dígitos (segundo parâmetro, no caso, 2 casas decimais). A regra de arredondamento é a comum: valor 5 em diante na casa decimal seguinte arredonda para cima, 0 a 4 para baixo (trunca).
  • =ARREDONDAR.PARA.CIMA(a/b;2) → Sempre arredonda um número para cima afastando-o de zero. Ou seja, “para cima” é aumentar o valor absoluto; no caso de valores negativos, -0,333 resulta em -0,34.
  • =TETO(a/b;0,01) → Arredonda um número sempre para cima, para o próximo múltiplo significativo (do segundo parâmetro, no caso, 0,01 = 1 centavo). Para números positivos, funciona igual a ARREDONDAR.PARA.CIMA.
  • TRUNCAR(a/b;2) → Trunca um número até a quantidade de casas decimais especificadas no segundo parâmetro (no caso, 2; se omitido assumiria o padrão 0, para truncar para inteiro).
  • =ARREDONDAR.PARA.BAIXO(a/b;2) → Arredonda um número para baixo, aproximando-o de zero.
  • =ARREDMULTB(a/b;0,01) → Arredonda um número para baixo até o múltiplo ou a significância mais próxima (segundo parâmetro, no caso, 0,01) É a função oposta a TETO.

Os mais comuns são arredondar (ARRED) ou truncar (TRUNCAR).

Referência: Ajuda do Excel 2010 – Arredondar um número.

Através de contato com a Assessoria de Imprensa da Oracle Brasil, obtive entrevista exclusiva com Fernando Galdino, especialista em Soluções da Oracle do Brasil, sobre os produtos, estratégias e perspectivas da Oracle relacionados à tecnologia Java e aos principais produtos comerciais e projetos open source de ambiente de desenvolvimento integrado (IDE) e servidores de aplicação Java liderados pela Oracle.

De acordo com a entrevista, a Oracle sinaliza firme intenção em continuar mantendo o investimento e apoio aos projetos de software livre como os IDEs NetBeans e Eclipse e servidor de aplicação Java Glassfish, enquanto avança também com sua linha de produtos e soluções comerciais Java.

Nas estratégias de sinergia entre produtos, a dupla de software livres NetBeans e Glassfish caminha bem alinhada, ambos suportando em primeira mão as mais novas especificações das plataformas Java SE, EE e ME. O Glassfish é, inclusive, a Implementação de Referência (R.I.) da plataforma Java EE.

Já o IDE Oracle JDeveloper está estrategicamente alinhado para suportar e se integrar com produtos e tecnologias comerciais da Oracle e parceiros, em especial a família de produtos Fusion Middleware, o servidor WebLogic, o Oracle Application Development Framework (ADF) e o banco de dados Oracle Database Server.

Mas há estratégias da Oracle para promover alinhamento do suporte de produtos entre as linhas open source e comercial. Assim, a Oracle mantém iniciativas de suporte e integração ao WebLogic no NetBeans e no Eclipse, bem como suporte ao Glassfish no JDeveloper.

Passados mais de dois anos desde que a Oracle comprou a Sun, e com isso incorporou ao seu portfólio de soluções Java os projetos de software livre NetBeans e Glassfish anteriormente liderados pela Sun, as estratégias de continuidade e integração da Oracle vem se tornando mais claras e consistentes e, com isso, diluindo as dúvidas e incertezas da comunidade de desenvolvedores Java.

Veja a íntegra da entrevista concedida por Fernando Galdino a seguir.

1. Quais são as frentes atuais da Oracle sobre integração e aproximação entre o GlassFish e o Oracle WebLogic Server? Permanece a diretriz de ter uma Plataforma de Servidor Comum no GlassFish 4, que compartilhe conceitos e tecnologias com o WebLogic Server? Quais aspectos específicos de integração tem sido foco de atenção da Oracle?

Galdino: O Glassfish tem recebido especial atenção por parte da Oracle e a integração com outros produtos continua cada vez mais forte. Como exemplos, temos o ActiveCache, a integração com Oracle Access Manager, extensão da console de monitoramento e recursos para clusterização e alta disponibilidade.

Em relação aos esforços de integração entre Glassfish e Weblogic encontram-se a uniformização de APIs e de sua implementação; Integração com JRockit (Máquina virtual Java de alto desempenho) e Coherence (grid de dados em memória). Com isso, ambas as ferramentas (Weblogic e Glassfish) tendem a se valer de um mesmo núcleo comum. Com o Glassfish 4 pretende-se compatibilidade com Java EE 7 e melhor suporte a virtualização. Lembrando que o release final da especificação Java EE 7 deve sair em Q3 de 2012, conforme indicado em http://jcp.org/en/jsr/detail?id=342.

2. A IBM encampou o projeto de software livre do servidor de aplicação Apache Geronimo e o oferece como uma espécie de versão gratuita de entrada, Community Edition, para a família de produtos do IBM WebSphere Application Server. Qual a estratégia da Oracle na orientação de seus clientes iniciantes quanto à escolha entre GlassFish ou WebLogic Server?

Galdino: O Glassfish é o melhor servidor de aplicações open source com suporte da Oracle e é também a implementação de referência para Java EE. Possui integração com outros componentes do Oracle Fusion Middleware. Ele pode ser utilizado para aplicações mais leves ou que queiram utilizar as novas versões da especificação, que serão inicialmente disponibilizadas nesta ferramenta antes do Weblogic.

O Weblogic é um produto que oferece uma série de benefícios em termos de gestão, escalabilidade e performance. Ele é também o servidor de aplicações base para o Fusion Middleware e também para os aplicativos Fusion. Além disso, ele também é a base das soluções de hardware e software do Exalogic, que é uma solução da Oracle para atender a infraestrutura de computação em nuvem requerida pelas aplicações atuais.

3. O WebLogic Server 11g (10.3.x) é formalmente compatível com Java EE 5, mas incorpora suporte a algumas APIs da plataforma Java EE 6. Há planos definidos para quando o WebLogic Server deve ser totalmente compatível com Java EE 6, como já é o GlassFish v3?

O suporte a Java EE 6 no Weblogic encontra-se em desenvolvimento.

Em relação ao IDE de Desenvolvimento Java, com a aquisição da Sun, a Oracle também incorporou o projeto de software livre do ambiente integrado de desenvolvimento (IDE) NetBeans, que vem agregar o portfólio de ferramentas de desenvolvimento Java da Oracle, compostas basicamente do Oracle JDeveloper e do Oracle Application Development Framework (ADF).

A Oracle também tem apoiado o projeto de software livre do IDE Eclipse. Enquanto NetBeans e Eclipse têm se popularizado como plataformas abertas e extensíveis de IDE com suporte a Java, C/C++ e outras tecnologias de desenvolvimento de aplicações, o JDeveloper teve origem no motor do JBuilder, fruto de acordo com a antiga Borland e desde então vem sendo desenvolvido pela Oracle, que tem provido suporte e integração a tecnologias e produtos Oracle, como ADF, Oracle Database Server, Oracle WebLogic e Fusion Middleware.

4. Oracle JDeveloper, NetBeans e Eclipse. Quais são as estratégias, visões e planos da Oracle em relação ao suporte a estas três plataformas de desenvolvimento de aplicações?

Galdino: A Oracle continuará investindo no ambiente Eclipse por meio do Oracle Enterprise Pack for Eclipse. Trata-se de uma plataforma de desenvolvimento amplamente utilizada pelos desenvolvedores que, inclusive, teve adicionados recursos como Toplink e ADF. O foco do OEPE está em integrar ferramentas Oracle com o ambiente Eclipse, suportar a plataforma Weblogic e focar em facilidades para o desenvolvimento em ambiente Java Enterprise Edition.

O Netbeans é uma ferramenta estratégica para a incorporação e utilização das mais recentes funcionalidades adicionadas para as plataformas Java SE, EE e ME. A ferramenta continuará a ser desenvolvida e aprimorada e será a primeira a introduzir as mais recentes atualizações para a linguagem Java. É uma plataforma focada na comunidade e podemos dizer que é uma implementação de referência para ferramentas Java.

O JDeveloper é um componente fundamental para todo o conjunto de aplicativos (Oracle ou não) baseado no Fusion Middleware. Interessante que foi relembrado que o JDeveloper foi baseado no JBuilder. Desde 2001, porém, não há mais nenhum código da antiga Borland na ferramenta. E, ao longo do tempo, diversas funcionalidades foram sendo acrescentadas à ferramenta para o desenvolvimento Java. Hoje é uma ferramenta essencial para o desenvolvimento, utilizando-se das ferramentas Fusion Middleware. Isso inclui o desenvolvimento de ponta-a-ponta para projetos Webcenter e SOA e BPM com foco em um ambiente declarativo, visual e de alta produtividade.

5. Como está sendo vista e trabalhada a integração, interoperabilidade e sinergia entre Oracle JDeveloper e NetBeans? Há planos para uma plataforma base comum no futuro?

Galdino: Netbeans é um projeto open source e os planos são de que continue sendo uma ferramenta sendo desenvolvida pela comunidade e que receba as novidades da linguagem o mais rápido possível. O JDeveloper é um ambiente de alta produtividade para o ambiente Fusion Middleware como um todo.

Os principais pontos de sinergia e interoperabilidade residem nos servidores de aplicação Weblogic e Glassfish e na utilização do Coherence. Pontos esses que estão sendo tratados. Por exemplo, fazer com que os deployment descriptors do Weblogic sejam reconhecidos pelo Glassfish e vice-versa. Hoje, os planos são de que cada ferramenta continue caminhando independentemente da outra, porém tendo em mente a interoperabilidade entre componentes do Fusion Middleware.

6. Quais são as iniciativas atuais e planos futuros para maior integração e suporte a tecnologias e produtos Oracle no NetBeans?

Galdino: A próxima versão do NetBeans ainda encontra-se em uma fase de planejamento. Logo, ainda é um tanto incerto falar em torno de iniciativas e planos futuros, já que elas ainda não se materializaram em termos de ações ou projetos. Essas iniciativas serão analisadas com cuidado, sempre tendo em mente a ideia de ter o NetBeans como uma ferramenta com as mais recentes atualizações da linguagem Java e uma plataforma focada na comunidade de desenvolvedores.

7. Recentemente a Oracle lançou o JDeveloper 11g Release 2, com suporte a JavaServer Faces 2.0 (JSF 2), tecnologia para aplicações web integrante da plataforma Java EE 6. Como está caminhando o pleno suporte às APIs do Java EE 6 no JDeveloper?

Galdino: Hoje, a Oracle possui o Glassfish como o servidor de aplicações compatível com a plataforma Java EE 6. Temos também o Weblogic, componente essencial de toda a arquitetura de produtos Oracle para middleware e aplicativos. O Weblogic é compatível com a versão Java EE 5. A compatibilidade com a especificação Java EE 6 está planejada para as próximas versões. E o JDeveloper, como principal IDE para o Oracle Fusion Middleware, precisa estar equacionado em relação a como atender esses dois lados do desenvolvimento. O lançamento do JDeveloper 11gR2 já permite trabalharmos com alguns desses recursos.

8. A Oracle já doou vários produtos e participou de iniciativas relacionadas ao projeto de software livre Eclipse e à Eclipse Foundation. Podemos destacar a doação do TopLink Essentials — versão open source do Oracle TopLink — que se tornou EclipseLink e implementação de referência de Java Persistence API (JPA); a doação do projeto de software livre Hudson Continuous Integration para a Eclipse Foundation; e a proposição em conjunto com a SpringSource do projeto Gemini baseado nos padrões OSGi. O projeto Eclipse porém, envolve a participação de empresas que tem pontos de concorrência no mercado com a Oracle, como IBM, RedHat e VMWare/SpringSource. Qual o posicionamento, visão e planos atuais da Oracle em relação ao projeto Eclipse?

Galdino: A Oracle continuará participando ativamente do projeto Eclipse. Consideramos que esse projeto é bastante importante para toda uma comunidade de desenvolvedores que utiliza o Eclipse como ambiente de desenvolvimento no dia-a-dia. Como comentado anteriormente, ao falarmos sobre as três IDEs de desenvolvimento, o Eclipse recebe uma atenção especial por parte da Oracle. No último release do OEPE – Oracle Enterprise Pack for Eclipse a Oracle – inclusive adicionou uma maior integração com a stack de produtos Fusion Middleware. Como exemplos, nós temos os recursos para facilitar a criação de scripts WLST utilizados pelo Weblogic e o suporte ao Coherence, um grid de dados em memória para melhorar a utilização de memória, bem como auxiliar na escalabilidade dos aplicativos.

A própria doação do Hudson para a Fundação Eclipse, como colocada na pergunta, já demonstra todo um compromisso que a Oracle possui com esse projeto e que continuará tendo com o lançamento de novos recursos nas próximas versões.


Agradeço à Clezia Gomes, Relações Públicas responsável pelo contato com a Assessoria de Imprensa da Oracle Brasil, que intermediou essa entrevista, e ao Fernando Galdino (@LinkedIn, @SlideShare), especialista da Oracle Brasil que concedeu a entrevista.

Fonte: Oracle Press Release, Redwood Shores, Califórnia – 15 de agosto de 2011.

A Oracle anunciou a disponibilidade do Java Platform, Standard Edition 7 (Java SE 7), a primeira versão da plataforma Java sob administração da Oracle.

A versão Java SE 7 é o resultado do desenvolvimento que envolveu revisão aberta, compilações semanais e extensa colaboração entre engenheiros da Oracle e membros do ecossistema Java em todo o mundo por meio da comunidade OpenJDK e do Java Community Process (JCP).

O Java SE 7 oferece:

  • Mudanças na linguagem para ajudar a aumentar a produtividade dos desenvolvedores e simplificar as tarefas comuns de programação, reduzindo o volume de código necessário, esclarecendo a sintaxe e facilitando a leitura do código. (JSR 334: Project Coin)
  • Suporte aprimorado para linguagens dinâmicas (como, Ruby, Python e JavaScript), resultando em melhoria substancial no desempenho do JVM. (JSR 292: InvokeDynamic)
  • A nova API multicore-ready oferece aos desenvolvedores maior facilidade para detalhar falhas em tarefas que podem ser executadas em paralelo por números arbitrários de núcleos do processador. (JSR 166: Fork/Join Framework)
  • A interface de I/O (entrada/saída) completa para trabalhar com sistemas de arquivos permite acesso a uma ampla variedade de atributos de arquivos e oferece mais informações quando ocorrem erros. (JSR 203: NIO.2)
  • Novos recursos de rede (suporte a Transport Layer Security – TLS 1.2, pilha Windows Vista IPv6, Sockets Direct Protocol – SDP para stream de rede com conexões Infiniband em Solaris e Linux, Stream Control Transmission Protocol – SCTP em Solaris) e segurança (algortismos de criptografia curva-elíptica – ECC).
  • Suporte ampliado a internacionalização com Unicode 6.0 e Locale com suporte a IETF BCP 47 (Tags for Identifying Languages) e UTR 35 (Local Data Markup Language).
  • Versões atualizadas de várias bibliotecas (JDBC 4.1 e Rowset 1.1, pilha XML com JAXP 1.4, JAXB 2.2a, JAX-WS 2.2).
  • Melhorias para cliente desktop (pipeline gráfico Java2D baseado na extensão X11 XRender, Nimbus look-and-feel e componente JLayer para Swing, substituição do velho sintetizador de som pelo Gervill criado pelo Audio Synthesis Engine Project).

A compatibilidade do Java SE 7 com versões anteriores da plataforma preserva os conjuntos de habilidades dos atuais desenvolvedores de software em Java e protege os investimentos nesta tecnologia.

Os desenvolvedores interessados podem usar imediatamente o Java SE 7 e aproveitar o NetBeans IDE 7.0, o Eclipse Indigo com o plug-in Java SE 7 adicional ou o IntelliJ IDEA 10.5, compatível com os mais novos recursos da plataforma Java SE 7. O lançamento do suporte do Oracle JDeveloper para o JDK 7 está programado para acontecer ainda este ano.

Exemplos de nova sintaxe introduzida pelo Project Coin

Tipo String permitido em cada case da cláusula switch:

[sourcecode lang=”java” highlight=”3,5″]
switch(diaDaSemana)
{
case "segunda": msg = "Mais uma semana de trabalho"; break;
….
case "sábado": msg = "O fim de semana chegou"; break;
}
[/sourcecode]

Multicatch – várias exceções capturadas em um só catch:

[sourcecode lang=”java” highlight=”4″]
try {
String fileText = getFile(nomeArq);
//…
} catch (FileNotFoundException | ParseException | FileLockInterruptionException e) {
System.err.println("Erro ao abrir arquivo");
} catch (IOException iox) {
System.err.println("Erro ao processar arquivo");
}
[/sourcecode]

Sintaxe diamante simplificada:

De
[sourcecode lang=”java”]
Map<Filme, Trilha> m = new HashMap<Filme, Trilha>();
[/sourcecode]

Para
[sourcecode lang=”java”]
Map<Filme, Trilha> m = new HashMap<>();
[/sourcecode]

Estas foram algumas novidades na sintaxe, exemplificadas aqui. Existem outras.

Fatos e Números de Java

  • 97% dos desktops empresariais executam Java;
  • São feitos 1 bilhão de downloads de Java por ano;
  • Há nove milhões de desenvolvedores em todo o mundo;
  • É a linguagem de programação número um do setor (segundo TIOBE Programming Community Index);
  • Mais de três bilhões de dispositivos funcionam sob a tecnologia Java.

Para saber mais

Para atualizar as referências sobre a Série de normas internacionais ISO/IEC 25000, Systems and software [product] Quality Requirements and Evaluation (SQuaRE), no grupo sobre Engenharia de Software e Sistemas, revisei tão amplamente a página que ficou melhor dividir em uma página à parte da de Engenharia de Software:

Produto de Software – Qualidade, Métricas e Teste

Também atualizei o texto e referências do artigo Modelo de Qualidade de Software de McCall, com mais informação sobre a Série ISO/IEC 25000.

Recentemente recebi divulgação do novo ambiente de desenvolvimento MyEclipse G, uma lançamento da Genuitec (produtora do MyEclipse) e Skyway Software que reúne ferramentas de desenvolvimento essenciais para as plataformas, frameworks e serviços de aplicações da Google.

MyEclipse G - Recursos

Fonte: MyEclipse G.

Observando a descrição do produto, pude refletir sobre a imensidão da abrangência de tecnologias que o Google tem disponibilizado, em pelo menos três grandes frentes:

  • Desenvolvimento de aplicações web: Frameworks como o Google Web Toolkit (GWT) (a home-page em português parece desatualizada, falando do GWT 1.7, enquanto a em inglês já destaca o GWT 2.3 mais recente) e Google Guice. O projeto GWT, além de ampla documentação, oferece para download: GWT SDK, com as bibliotecas essenciais e compilador que você precisa para escrever aplicações web; o Google Plugin for Eclipse que inclui no IDE Eclipse suporte para projetos GWT e GAE, além de uma versão simplificada do GWT Designer; Speed Tracer, uma extensão para o navegador Google Chrome que permite pontuar problemas de desempenho em aplicações web; e o GWT Designer standalone (full), um ambiente de desenho de Java GUI poderoso e bidirecional para criação visual de interfaces de usuário, assisência de layout e geração automática de código GWT.
     
  • Infraestrutura para execução de aplicações web: Google App Engine (GAE) permite que você execute seus aplicativos da web na infraestrutura do Google.
     
  • Plataforma para dispositivos móveis: Android: camada de software para celulares e tablets que inclui um sistema operacional, middleware e aplicações. O Android SDK, disponível no portal Android Developers, provê ferramentas e APIs necessárias para se iniciar o desenvolvimento de aplicações para a plataforma Android usando a linguagem de programação Java. Há também o Android Development Tools (ADT) Plugin for Eclipse IDE. As muitas milhares de aplicações disponíveis para Android, boa parte delas gratuitas, ficam disponíveis no Android Market (assim como o iPhone tem o Apple Store).

Isso fora o navegador web Google Chrome (dica: para obter o instaldor offline standalone, acrescente o parâmetro &standalone=1 na página de download) e o sistema operacional Google Chrome OS, baseado no sistema operacional Linux e totalmente voltado para Internet (Já ouviu falar no Chromebook?). Ambos são desenvolvidos através do projeto de software livre Chromium.

Todas as ferramentas oferecem ampla documentação. O Google ainda aproveita seus canais de mídia para divulgar informação, como os blogs no Blogger — GWT blog, GAE blog, Google Mobile blog, Official Google Blog, blog oficial Google Brasil — e o canal Google Developers de vídeos no Youtube. E ainda realiza o grande evento anual Google I/O.

Mesmo com a Microsoft tendo comprando a Skype em seu maior acordo de aquisição, por US$ 8,5 bi em maio último, estou achando que agora é a vez da Google “dominar o mundo” do software na era da Internet.

O instituto Gartner atualizou recentemente seu relatório “MarketScope for Ajax Technologies and RIA Platforms”. Aproveito para apresentar o resumo dessas tendências e alguns diagramas explicativos e estatísticas sobre Ajax e RIA.

Introdução

A técnica de interação e troca de dados assíncrona entre o cliente e o servidor web, identificada pelo acrônimo Ajax — Asynchronous Javascript And XML –, termo introduzido pela Adaptive Path em 2005, se populariza cada vez mais nas aplicações web e tem contribuído significativamente para melhorar a interatividade e experiência do usuário, oferecendo respostas imediatas à interação do usuário.

Vão se multiplicando as alternativas de bibliotecas e frameworks para desenvolvimento de aplicações web com suporte a Ajax, visando tornar o uso da técnica mais fácil, organizado e produtivo na construção de aplicações, de forma cada vez mais transparente, integrada e sistematizada.

Também têm se popularizado o uso de plataformas tecnológicas para web visando RIA — Rich Internet Applications –, termo introduzido pela Macromedia (Adobe) em 2002, que significa uma interface com usuário web mais rica — em componentes e comportamentos — e responsiva (resposta imediata, sensível ao contexto), similar a aplicações desktop.

As plataformas RIA podem ter como base um runtime específico, incorporado ao navegador web cliente através de plug-ins, ou se beneficiar do avanço da sofisticação das técnicas e componentes nativos baseados em Ajax.

O diagrama de blocos a seguir correlaciona esquematicamente RIA, Ajax e DHTML.


Créditos: Márcio d’Ávila, 2008-2011.

RIA

Enquanto as aplicações gráficas Cliente/Servidor trouxeram riqueza à experiência de usuário que não havia no ambiente mainframe, plataformas RIA fazem o mesmo em relação às aplicações web primitivas.


Créditos: Uday M. Shankar, Adobe Flex – an introduction, mar/2008 (em Slideshare).

Segundo estatísticas do site Stat Owl, levando em consideração os diversos sistemas operacionais e navegadores web existentes, em setembro de 2008 o suporte runtime instalado para Adobe Flash já era 97,48% (verdadeiro padrão de facto), Java 81,37% e Microsoft Silverlight apenas 17,64%. Em abril de 2011, estas mesmas plataformas evoluiram para percentuais de penetração 95,65%, 77,31% e 63,92% respectivamente.

Percebe-se, portanto, uma notável expansão do suporte à tecnologia RIA da Microsoft no período medido, enquanto o pequeno decréscimo de Flash pode ser explicado pela ausência de suporte ainda existente em alguns ambientes operacionais de dispositivos móveis que vem se popularizando, como Apple iOS (iPhone e iPad).


Fonte: Stat Owl, Rich Internet Application Market Share – RIA Market Penetration and Global Usage comparing Adobe Flash, Microsoft SilverLight and Java, set/2008 a abr/2011.

2009

Em 2009, o mercado ainda estava incipiente e muitos produtos foram considerados pelo Gartner em tecnologias Ajax e plataformas RIA, dez deles classificados com tendência positiva ou muito positiva.

Forte
Negativo
Cuidado Promissor Positivo Forte
Positivo
Adobe Plataforma Flash RIA ($/L)
Backbase Ajax framework Ajax ($)
DevExpress para .NET RIA ($)
Dojo Ajax toolkit Ajax (L)
Ext JS JavaScript, Ext GWT Ajax ($/L)
Google GWT Java, Closure Ajax (L)
IBM Ajax, Lotus Expeditor Ajax/RIA ($/L)
ICEsoft ICEfaces JSF Ajax (L/$)
Infragistics para .NET Ajax ($)
Isomorphic Soft SmartCli, GWT Ajax/RIA (L/$)
JackBe Ajax framework Ajax ($)
jQuery JavaScript Ajax Ajax (L)
Magic Software uniPaaS RIA ($)
MB Tech Bindows Ajax ($)
Microsoft Silverlight, WPF RIA ($)
Nexaweb E.Web Suite Ajax/RIA ($)
Oracle ASF Faces JSF Ajax ($)
Prototype/
script.aculo.us
JavaScript Ajax (L)
Sun Microsystems JavaFX RIA (L/$)
Telerik para .NET Ajax ($)
Tibco Software GI Ajax (L)
Yahoo YUI toolkit Ajax (L)

Fonte: MarketScope for Ajax Technologies and RIA Platforms, Gartner, por Ray Valdes e outros, 2009-12-31, reproduzido por Adobe (PDF).

2011

Atualizando a pesquisa em 2011, o mercado ainda se mostra em evolução, com oito produtos apontados como tendência positiva ou muito positiva.

Comparando com 2009, Adobe Flash e Microsoft Silverlight tiveram sua tendência refreada (Positivo), enquanto a versátil biblioteca livre JavaScript jQuery obteve maior evidêcia (Muito Positivo).

Saíram da lista Magic Software uniPaaS e MB Tech Bindows; Ext JS se tornou Sencha, enquanto Sun foi incorporada à Oracle; e entram agora Canoo Engineering RIA Suite (UltraLightClient framework baseado em Java EE) e Vaadin (framework RIA Java baseado em GWT widgets e extensa coleção de componentes UI).

Forte
Negativo
Cuidado Promissor Positivo Forte
Positivo
Adobe ⇓ Plataforma Flash RIA ($/L)
Backbase ⇓ Portal Ajax ($)
Canoo Engineering UltraLightClient RIA ($)
DevExpress para .NET RIA ($)
Dojo Ajax toolkit Ajax (L)
Google GWT Java, Closure Ajax (L)
IBM Ajax, Lotus Expeditor Ajax/RIA ($/L)
ICEsoft ICEfaces JSF Ajax (L/$)
Infragistics para .NET Ajax ($)
Isomorphic Soft SmartClient, GWT Ajax/RIA (L/$)
jQuery jQuery JS lib Ajax (L)
Microsoft ⇓ Silverlight, WPF RIA ($)
Oracle ASF Faces JSF, JavaFX Ajax/RIA (L/$)
Prototype/
script.aculo.us
JavaScript Ajax (L)
Sencha Ext JS, Ext GWT Ajax ($/L)
Telerik ASP.NET Ajax Ajax ($)
Tibco Software General Interface Ajax (L)
Vaadin Vaadin RIA RIA (L)
Yahoo YUI Library Ajax (L)

Fonte: MarketScope for Ajax Technologies and RIA Platforms, Gartner, por Ray Valdes e outros, 2011-03-31, reproduzido por Microsoft.

Conclusão

Tecnologias RIA e Ajax têm se tornado cada vez mais difundidas e maduras.

Podemos inferir, pela evolução do Gartner MarketScope, que plataformas RIA com componentes ricos nativos (Ajax e DHTML) — boa parte delas baseadas em frameworks livres e Java server/EE) — tem ganhado força, em detrimento daquelas baseadas em runtime próprio.

É provável que o emergente padrão HTML 5, quando se estabelecer, reforce ainda mais esse movimento.

Para saber mais:

Próxima Página »