Esta notícia foi originalmente publicada em 10 de dezembro e faz parte da coleção das melhores notícias de 2007 publicadas na InfoQ
Na QCon, James Ward da Adobe compartilhou com a InfoQ.com os maiores equívocos sobre Adobe Flex que ele encontrou em suas viagens evangelizando o framework de aplicações Flex.
- Usuários Precisam Instalar Alguma Coisa Nova para Rodar Aplicações Flex.
Ward, exclusivamente para a InfoQ.com, discutiu os requisitos para adoção de Flash e o modelo de programação Flex:O Flash Player 9 é necessário para Flex 2 & Flex 3. O runtime do Flash Player 9 está atualmente instalado em 94% dos computadores no mundo: http://www.adobe.com/products/player_census/flashplayer/version_penetration.html
Aplicações em Flex 2 e Flex 3 executam em Flash Player 9. Aplicações Flex são construídas sobre as APIs nativas do Flash Player como os gráficos vetoriais, manipulação de bitmap e rede (que é baseado na pilha de rede do browser). O framework Flex adiciona componentes reutilizáveis como seletores de data, data grid, gráficos, etc. Compilar uma aplicação Flex resulta em um arquivo SWF que é o formato de código binário para o Flash Player. Contido no arquivo SWF está o byte code para o código do framework Flex e o código customizado do projeto. O compilador Flex otimiza o byte code de maneira que somente classes que são utilizadas vão para dentro do arquivo SWF.
Para aplicações desktop, a Adobe pretende tornar o seu novo runtime de desktop, chamado Adobe AIR, tão ubíquo quanto o runtime web. O release 1.0 do Adobe AIR estará disponível no ínicio de 2008. Atualmente, AIR está no release beta no labs.adobe.com. Muitas empresas já estão desenvolvendo aplicações de produção com AIR. Um exemplo pode ser visto com a aplicação do eBay eBay Desktop. eBay Desktop. - Flash Player é 100% Proprietário.
Ward comentou sobre este item para a InfoQ.com:O núcleo do Flash Player é a Máquina Virtual Tamarin, que é um projeto open source do Mozilla. Enquanto o formato de arquivo SWF não é totalmente aberto, ele é documentado pela comunidade em osflash.org. Existem inúmeros produtos open source que lêem e escrevem arquivos SWF. A direção do produto Flash Player vem sido tradicionalmente influenciada pela comunidade e suas necessidades. A linguagem núcleo para o Flash Player é uma implementação de ECMAScript 262, que é a especificação para JavaScript. Flex também utiliza CSS para estilizar os componentes / aplicações. Adobe AIR utiliza padrões da web como base para os aplicativos desktop assim como tecnologias Open Source como Tamarin, Webkit e SQLite.
- Flash é para Designers, Vídeo e outras Chatices.
Em Julho de 2007 em seu blog, “Como Eu Superei Meu Medo de Flash,” Ward discutiu sobre este ponto:Indiscutivelmente, o poder do Flash tem sido abusado. Pop-ups, pop-overs, pular introduções e propagandas chatas tem cruzado nossas telas. Eu ouvi dizer que ninguém deveria nunca julgar uma religião por seu abuso. O mesmo princípio se aplica para tecnologia. Flash não deveria ser evitado somente porque as pessoas a utilizam para fazer coisas irritantes. De todo modo, email não é evitado somente porque spammers utilizam isto com abuso.
Ward complementou o tópico para a InfoQ.com:Tradicionalmente o conteúdo Flash foi desenvolvido com a ferramenta baseada em timeline para os designers. Flex é o conjunto de ferramentas do desenvolvedor para construir conteúdo / aplicações baseados em Flash. Designers e desenvolvedores podem trabalhar em conjunto compartilhando recursos entre as duas ferramentas. Flex adiciona uma base compreensiva de componentes:
http://www.adobe.com/go/flex_explorer_app
http://www.adobe.com/cfusion/exchange/index.cfm?event=productHome&exc=15&loc=en_us - Flex Não é para Aplicações Corporativas / Negócios.
Durante as últimas semanas, Ward publicou em seu blog uma série em sete partes sobre as novas aplicações da Oracle implementadas em Adobe Flex. As aplicações que foram recentemente anunciadas na Oracle OpenWorld, vão de ferramentas de vendas a gerenciamento de banco de dados e business intelligence.
Além do uso de Flex na Oracle, a InfoQ.com publicou um artigo retomando alguns grupos que utilizam Flex para aplicações corporativas. Ward também citou para a InfoQ.com que existem numerosos exemplos de aplicações corporativas sendo desenvolvidas com Adobe Flex, incluindo trabalhos na: Workday, SAP, SalesForce e Business Objects.
- Flex é caro
Ward detalhou um número de coisas que a Adobe tem feito para contornar o custo envolvido:Flex é um kit de ferramentas livre, e cujo código será aberto em breve, para desenvolver Aplicações Ricas para Internet para a web e desktop. Esta SDK livre inclui tudo o que o desenvolvedor precisa para desenvolver RIAs que funcionam da mesma maneira em qualquer browser ou sistema operacional. Parte do SDK Flex livre é um grande conjunto de componentes que são extensíveis, baseados em skins e acessíveis. Você pode checar vários destes componentes no Componente Flex Explorer: http://www.adobe.com/devnet/flex/samples/code_explorer/
Para ver uma comparação de AMF com outras tecnologias de serialização baseadas em texto, veja o Census Benchmark de aplicações RIA de James Ward: http://www.jamesward.org/census.
Flex Builder é um plugin opcional para o Eclipse que torna o desenvolvimento de aplicações com SDK Flex livre mais eficiente. Ele inclui funcionalidades como debug integrado, design view e code completion.
O preço do Flex Builder tem mudado recentemente de muitas maneiras. Flex Builder é agora livre para Estudantes e Faculdades. O preço para o Flex Builder vanilla, sem os componentes de gráficos, foi reduzido para $249 para melhor balancear o preço alinhado para o Flex Builder.
Existe um número de opções para construir uma infra-estrutura de backend para o Flex Builder. Para tirar vantagem da alta performance do protocolo de transferência de dados AMF, existem produtos oficiais da Adobe como o LiveCycle Data Service, assim como numerosos projetos open source como Granite Data Services. Utilizar AMF remove os passos desnecessários para converter dados em texto (SOAP, RESTful, etc), transferi-los e então convertê-los novamente em dados. AMF também permite que o tipo da informação seja preservado através da rede. - Aplicações Flex requerem um Servidor Especial.
Mais uma vez, Ward falou com a InfoQ.com:Aplicações podem rodar sobre qualquer servidor web, servidor de aplicação e servidor de banco de dados. Aplicações Flex são muito mais parecidas com aplicações cliente-servidor. Uma vez que a lógica esta rodando no cliente no Flash Player, você precisa de uma maneira de se comunicar com o servidor. Existem diversas opções diferentes para você conectar Flex na sua infra-estrutura. Sem qualquer biblioteca especial, você pode expor seus dados de back-end e serviços como RESTful, XML, ou SOAP e facilmente consumir a informação na sua aplicação Flex. Se você optar por utilizar o protocolo de serialização binária AMF, você talvez precise incluir algumas bibliotecas adicionais na sua aplicação web. AMF é somente outra tecnologia de serialização, como XML ou JSON, então este pode ser um dos vários métodos que você pode utilizar para comunicação com o seu back-end SOA.
- Flex é Difícil de Aprender.
Leftie Friele, da comunidade InfoQ.com, postou um comentário no artigo da InfoQ.com InfoQ.com piece “Quem está utilizando Flex?”, detalhando sua experiência na empresa em aprender Flex:Nossa empresa inicial, Ezmo, tem utilizado Flex desde o início e nós estamos extremamente felizes com o framework.
Para aqueles que são novos em Flex, Ward tem um screencast demonstrando uma aplicação Flex sendo construída para ajudá-los a iniciar. Existem outros numerosos artigos sobre como utilizar Flex e Java no Adobe Developer Connection.
Sem qualquer conhecimento prévio de Flex/Flash, nós construímos nossa aplicação em menos de duas semanas. A integração entre Java e Flex é super simples, e começar com Flex é realmente fácil.
O suporte da ferramenta é muito bom também com Flex Builder. Você tem a aparência familiar do Eclipse e você coloca tudo para rodar sem muitos problemas. A única coisa que está faltando é uma ferramenta melhor para integração contínua e melhores plugins em Maven para construir aplicações Flex.
- Com Flex, Eu Vou Precisar Reconstruir Toda Minha Aplicação.
Em Janeiro, Bruce Eckel publicou um artigo intitulado, “Hybridizing Java.” Ele discute que a comunidade Java deveria continuar utilizando as boas partes do Java, mas deveria utilizar somente outras tecnologias onde o Java é fraco. Seu foco primário no artigo é a utilização de Adobe Flex para interfaces de usuário, ao invés das opções tradicionais do Java (Swing, JSF, etc…).
Ward elaborou este conceito:SUma vez que aplicações Flex são somente uma parte da UI de uma aplicação, o back-end geralmente continua o mesmo. Se o seu back-end foi desenvolvido seguindo o padrão SOA então geralmente é muito fácil de expor estes serviços para uma nova interface gráfica Flex. Ela preserva a lógica de negócio existente, seja ela em EJBs, serviços Spring, POJOs, etc.
- Flex Quebra a Funcionalidade Normal do Browser, Como o Botão Voltar.
Em seu blog Ward discute o botão voltar:Em Flex, o suporte ao botão voltar é suportado e facilmente customizado, então isto nunca foi um problema. Flex também fornece uma maneira fácil de fazer urls hashmark (ou ancôras nomeadas), então a url muda conforme o estado da aplicação muda. Outro problema de integração da Web 1.0 resolvido.
Ward deu mais detalhes para a InfoQ.com:Flex 3 fornece uma maneira simples para as aplicações armazenarem os parâmetros de estado em uma âncora nomeada e restaurar corretamente o estado baseado nestes parâmetros quando a URL é requisitada. Mais informações a respeito desta funcionalidade podem ser encontradas em Introduções às Funcionalidades do Flex 3 - Documentação sobre Deep Linking.
Acessibilidade tem sido algo muito importante para as aplicações Flex. Uma vez que o Flash Player funciona com Jaws e outras tecnologias de acessibilidade, a capacidade de adicionar acessibilidade em aplicações baseadas em Flash está lá. O framework Flex constrói acessibilidade dentro do seu núcleo. Existem muitos pedaços diferentes de acessibilidade dependendo dos impedimentos e das inabilidades que sua aplicação precisa suportar. Você pode encontrar mais a respeito das funcionalidades de acessibilidade do Flex no Guia do Desenvolvedor. - Eu Posso Fazer Tudo o Que Flex Faz Com Ajax.
Ward explica:Flex e Ajax para RIAs não são mutuamente excludentes. Sites como Google Finance mostram como você pode utilizar Flex e Ajax juntos. Ajax é muito bom para aplicações centradas em conteúdo, enquanto que Flex é muito bom para iteratividade, mídia e aplicações centradas em dados. Se sua aplicação está em algum lugar entre os dois lados deste espectro, então você pode utilizar o Flex Ajax Bridge para combinar estas duas tecnologias. Em Flex 3, o Flex Ajax Bridge é integrado diretamente dentro do SDK. Se você está utilizando Flex 2, você vai precisar fazer o download do Flex Ajax Bridge separadamente.
Também, da comunidade InfoQ.com, Michael Marth comentou sobre porque seu grupo escolheu Flex:Nós utilizamos Flex 2 para nosso site de encontros online, a ser lançado em breve, viibee.com.
A razão: Flex nos permitiu criar uma experiência de usuário muito além de qualquer coisa que poderíamos fazer com um esforço considerável em Javascript/Ajax.
Para qual de vocês da comunidade InfoQ.com estes equívocos sobre o framework Adobe Flex se aplicam? Ainda existem barreiras adicionais que a Adobe ainda tem que resolver, quais destas está fazendo você deixar de usar o framework de aplicações Flex?