O que acham da linguagem FLEX da adobe?

Voce tem alguma referencia pra isso? Atualmente acompanho um projeto de jogo escrito em Flex pra Web+Android, e ele possui praticamente a mesma performance que a versao do mesmo jogo em iOS nativo.

Respondendo a pergunta original, na minha experiencia com essa mesma equipe, o maior problema que eu vejo sao as ferramentas pra desenvolver em Flex. Adobe Flash Builder eh uma versao piorada do Eclipse, e praticamente toda documentacao sobre Flex assume que voce vai usar as magicas dessa IDE. De chegar ao ponto que ate os releases pra producao eram feitos direto via Flash Builder porque os desenvolvedores nao conseguiam reproduzir o mesmo build using ant ou maven.

Escrever testes tambem eh um outro desafio por conta disso, e ainda parece que as ferramentas de tests (flexunit, hamcrest-as3, mockolate) estao anos luz atras dos equivalentes em outras linguagens como Java.

A unica vantagem eh o fato de ser multi-plataforma mesmo, mas dependendo do que vai ser construido ja existem ferramentas melhores para chegar la.

Flex não é uma linguagem, é um framework pra aplicações web em cima do flex.

Além dos defeitos citados pelo s4nchez (IDE horrível que não roda no linux, complicado de fazer testes unitários) eu ressalto que alguns componentes tem muitos bugs. Quando você precisa fazer algo muito específico, tem que fazer uns malabarismos pra contornar os bugs. Certamente não vale a pena construir aplicações em Flex do zero hoje, até pela Adobe ter abandonado ele.

Mas não são apenas defeitos. Flex tem recursos muito interessantes, como binding (entre objetos diferentes, entre componentes gráficos e objetos ActionScript) e comunicação com Java de maneira transparente (usando blazeDS). Com Flex eu uso frameworks de injeção de dependência (Spring Actionscript) e consigo escrever aplicações mvc bem estruturadas. Hoje isto está mais presente em frameworks Javascript, mas me parece que no passado não era tão comum (por exemplo, o AngularJS suporta injeção de dependências e binding). Além do mais, é inegável que era simples fazer aplicações com um layout bonito.

Pra mim, valeu muito a pena ter aprendido flex.

Acho que neste momento a regra é: quem irá desenvolver uma solução, só usará Adobe Flex se não houver outra alternativa. Não que seja uma tecnologia ruim, pelo contrário, é ótima, mas é o mercado e grandes empresas quem define qual tecnologia deve morrer ou qual deve continuar. Infelizmente de uns tempos para cá o flash vem sendo perseguido (na minha opinião) pelo fato de ser necessário instalar um plugin no browser do cliente e pelo HTML 5 ter a possibilidade de substituir algumas de suas funcionalidades.

Então minha análise é que: você consegue fazer um sistema completo com Adobe Flex, entretanto, o mercado está optando por outros frameworks de apresentação, como por exemplo, Primeface, Jquery, ZKOSS, DevExpress para .NET, Telerik para .NET, HTML 5, ZEND para PHP e etc…

Se você pergunta para qualquer empresa, porque está abandonando o Adobe Flex? Não terão respostas, sabe-se somente que tem uma grande massa da sociedade tecnológica perseguindo e abandonando a tecnologia, por este motivo não pode arriscar continuar utilizando o Adobe Flex.

Mas se colocar na balança, todas resolvem o mesmo problema de forma diferente.

Abs
Rodrigo Santik

[quote=rsantik]Acho que neste momento a regra é: quem irá desenvolver uma solução, só usará Adobe Flex se não houver outra alternativa. Não que seja uma tecnologia ruim, pelo contrário, é ótima, mas é o mercado e grandes empresas quem define qual tecnologia deve morrer ou qual deve continuar. Infelizmente de uns tempos para cá o flash vem sendo perseguido (na minha opinião) pelo fato de ser necessário instalar um plugin no browser do cliente e pelo HTML 5 ter a possibilidade de substituir algumas de suas funcionalidades.
[/quote]

Mas ainda sim existe o risco do IE (e alguns outros) não se comportar (em) da mesma forma que os outros navegadores se comportam em relação ao HTML5. Existe alguma garantia de que isso não irá acontecer com o HTML5?

Em relação ao Flex, existirá alguma forma de converter o código para HTML5 caso o Flex venha a ser morta?

Uma bosta.

[quote=Sem_Nome][quote=rsantik]Acho que neste momento a regra é: quem irá desenvolver uma solução, só usará Adobe Flex se não houver outra alternativa. Não que seja uma tecnologia ruim, pelo contrário, é ótima, mas é o mercado e grandes empresas quem define qual tecnologia deve morrer ou qual deve continuar. Infelizmente de uns tempos para cá o flash vem sendo perseguido (na minha opinião) pelo fato de ser necessário instalar um plugin no browser do cliente e pelo HTML 5 ter a possibilidade de substituir algumas de suas funcionalidades.
[/quote]

Mas ainda sim existe o risco do IE (e alguns outros) não se comportar (em) da mesma forma que os outros navegadores se comportam em relação ao HTML5. Existe alguma garantia de que isso não irá acontecer com o HTML5?

Em relação ao Flex, existirá alguma forma de converter o código para HTML5 caso o Flex venha a ser morta?[/quote]

Nenhuma garantia! Tecnologicamente é possível fazer o HTML 5 se comportar da mesma forma em todos os browser, mas politicamente é difícil isso acontecer, cada browser quer ter um plus a mais do que o outro.
Ter um software conversor de Flex para HTML 5, acredito ser possível sim, mas ainda não fizeram, também acho pouco provável que façam, se fizerem isso, muita gente deixará de ganhar dinheiro.

Uma provável morte o Flex está ligado à politica e estratégia de grandes empresas, e não ligado a tecnologia, se fosse ligado a tecnologia, então deveriam matar o Silverlight, o JavaFX e etc…

Abs
Rodrigo

[quote=VandersonAssis]É isso ai pessoal, o que acham? É que la no trampo estamos utilizando essa linguagem (infelizmente), e gostaria de saber se um dia quem sabe valha a pena eu ter aprendido essa linguagem, porque pesquiso vagas e não vejo muita coisa relacionada com flex.[/quote]Ele é legal, bonito e está entrando em desuso. Estude outra coisa… [=

[quote=rsantik][quote=Sem_Nome]
Mas ainda sim existe o risco do IE (e alguns outros) não se comportar (em) da mesma forma que os outros navegadores se comportam em relação ao HTML5. Existe alguma garantia de que isso não irá acontecer com o HTML5?

Em relação ao Flex, existirá alguma forma de converter o código para HTML5 caso o Flex venha a ser morta?[/quote]
Nenhuma garantia! Tecnologicamente é possível fazer o HTML 5 se comportar da mesma forma em todos os browser, mas politicamente é difícil isso acontecer, cada browser quer ter um plus a mais do que o outro.
[/quote]
Pois é, o desafio maior do HTML5 hoje é esse aí: cada navegador e plataforma tem suas tags e atributos exclusivos que chamam de HTML5, o W3C perdeu muito a relevância, hoje ele espera os navegadores criarem suas tags e depois escolhe as que vão entrar no padrão HTML5, que nunca fica pronto.

Lembrando também que ninguém programa em HTML5, ela é uma linguagem de marcação. Você programa em HTML5+CSS+Javascript, e todos eles têm suas particularidades conforme o navegador e plataforma. Se você usa uma biblioteca javascript pra trabalhar, dê uma olhada nos fontes dela e vai ver um monte de if pra tratar particularidade dos navegadores. Essas bibliotecas filtram os problemas pra você, mas eles estão lá do mesmo jeito e ocasionalmente você se depara com eles, principalmente se for fazer um design bonito.

HTML4 já foi assim, custou a estabilizar. E hoje o HTML5 enfrenta a mesma briga. O Flash/Flex pelo menos rodava da mesma forma em todas as plataformas, mas a um custo de processamento muito grande que inviabilizou a tecnologia no mercado mobile.

Eu acho a idéia do HTML5 muito interessante, mas essa falta de padrão dos navegadores me gera descontentamento.
Outro dia um amigo meu e eu falavamos disso e ele disse que estes problemas estão sendo solucionados. Eu prefiro esperar. Quero ver pra crer.
Uma das coisas que poderiam acontecer é tornar o javascript um plugin, assim somente uma equipe ficaria responsável por manter o padrão.

Tenho achado mais vantajoso apostar em plugins como Flash, Java ou Silverlight, que idependentemente de navegador, vai manter a linguagem e o funcionamento com maior sucesso do que se eu tivesse utilizando html ou javascript.

Isso realmente me deixa irritado. IFs que temos que colocar pra cada tpo de navegador nos obriga a programar a mesma coisa várias vezes.

Outa coisa que também levo em consideração é o preço da licença ou da IDE de desenvolvimento da linguagem. A licença comercial da biblioteca ExtJS no tempo que trabelhei com ela era de 350 dolares. Fora a IDE que custava mais de 200. Já o flex, é gratuito e vc pode utilizar o flasdevelop, que também é bem facinho de trabalhar.
Eu acho uma pena que a adobe não tenha interesse em retirar os bug do flash.

[quote=s4nchez]
Voce tem alguma referencia pra isso? Atualmente acompanho um projeto de jogo escrito em Flex pra Web+Android, e ele possui praticamente a mesma performance que a
versao do mesmo jogo em iOS nativo.[/quote]

Sobre games nao é minha area, entao desconheço. Sobre sistemas de informacao eu já trabalhei em lugar que usava Flex com Java, era muito legal, mas eu sei dos problemas que aconteceram quando os mobiles Android com Flash chegaram. Não falo de performance, falo de conseguir ser aceitável o uso, do mesmo jeito que conseguimos em páginas feitas em HTML, até mesmo de sistemas antigos HTML dá pra usar sem se irritar. Tente usar no celular e tablet este exemplo: http://www.flexdev.com.br/hotel/flex/bin/crudflex.html ou http://www.erpflex.com.br/ERPLight.html, é impraticável. E como você trata a responsividade do layout pra várias resoluções/dispositivos da mesma maneira que fazemos em HTML? Fora que não roda em browsers do iPad e iPhone, talvez só por meios duvidos, entao só ai enfraquece muito. Eu sei muito bem das qualidades dele nos ambientes que ele funciona bem (web em “computador normal”), e eu gostava muito, mas não se encaixa no cenário de hoje, não só a nível de internet, muitos gerentes e diretores gostam de acessar o sistema no iPad para usar alguma consulta ou relatório.

[quote=javaflex]Não falo de performance, falo de conseguir ser aceitável o uso, do mesmo jeito que conseguimos em páginas feitas em HTML, até mesmo de sistemas antigos HTML dá pra usar sem se irritar. Tente usar no celular e tablet este exemplo: http://www.flexdev.com.br/hotel/flex/bin/crudflex.html ou http://www.erpflex.com.br/ERPLight.html, é impraticável.
[/quote]
Mesmo na web os exemplos que voce mandou sao horriveis. O problema ali nao eh a tecnologia em si, e sim como ela foi (ab)usada. Eh possivel usar flex pra fazer aplicativos com design responsivo e empacotar como aplicacoes mobile pra iOS/Android usando AIR (se voce estiver disposto a lidar com os outros problemas ja citados nessa thread).

Agora, usar flash como front-end de aplicacao no browser e esperar que isso vai gerar uma experiencia legal pro usuario em qualquer plataforma eh pedir um pouco demais…

haters gonna hate

[quote=s4nchez][quote=javaflex]Não falo de performance, falo de conseguir ser aceitável o uso, do mesmo jeito que conseguimos em páginas feitas em HTML, até mesmo de sistemas antigos HTML dá pra usar sem se irritar. Tente usar no celular e tablet este exemplo: http://www.flexdev.com.br/hotel/flex/bin/crudflex.html ou http://www.erpflex.com.br/ERPLight.html, é impraticável.
[/quote]
Mesmo na web os exemplos que voce mandou sao horriveis. O problema ali nao eh a tecnologia em si, e sim como ela foi (ab)usada. Eh possivel usar flex pra fazer aplicativos com design responsivo e empacotar como aplicacoes mobile pra iOS/Android usando AIR (se voce estiver disposto a lidar com os outros problemas ja citados nessa thread).

Agora, usar flash como front-end de aplicacao no browser e esperar que isso vai gerar uma experiencia legal pro usuario em qualquer plataforma eh pedir um pouco demais…[/quote]
São exemplos que pude achar, se puder mostrar algum melhor poste ai, o FlexERP quando tinha senha aberta de demonstração lembro que era bom em desktop. Se abusaram de recursos isso nao poderia ser repreendido. A questão é que independente de qualquer coisa por natureza HTML tem muito mais fluidez do que o Flex->Flash em mobile, a propria Adobe deixou de lado.

Adobe Air é outra história, é interessante pra o que propõe. Mas a questão que falo é em relação a sistema web rodando diretamente no browser, que é o foco do Flex.

Depende do seu cenario pois na maioria dos casos usar plugins é ir contra o mundo web atual.

Depois do JQuery ainda nao tive necessidade de fazer “ifs” para isso. Só CSS que deve se preocupar mais com particularidades, mesmo assim não precisa de “if”. Claro que deve ter situações mais avançadas onde é necessário fazer essas gambiarras no js.

[quote=Luiz Augusto Prado]
Outa coisa que também levo em consideração é o preço da licença ou da IDE de desenvolvimento da linguagem. A licença comercial da biblioteca ExtJS no tempo que trabelhei com ela era de 350 dolares. Fora a IDE que custava mais de 200. Já o flex, é gratuito e vc pode utilizar o flasdevelop, que também é bem facinho de trabalhar. [/quote]
O problema foi quem adotou ExtJS, com tantas opcoes free e open por ai de framework para front-end, fora que ExtJS é intrusivo demais, deve ser um inferno personalizar.

Enfim andem conforme o mercado, que no caso da web é HTML. Tudo tem problemas e é preciso lidar com eles, mas ir contra a maré não é uma boa.

[quote=javaflex]
Depois do JQuery ainda nao tive necessidade de fazer “ifs” para isso. Só CSS que deve se preocupar mais com particularidades, mesmo assim não precisa de “if”. Claro que deve ter situações mais avançadas onde é necessário fazer essas gambiarras no js.[/quote]

Isso porque os ifs estão no código do jQuery, dá só uma espiada nele. hehehehe :wink:

Mas mesmo assim muitas vezes tive de mexer no código pra conseguir equivaler o layout a todos os navegadores. E pra facilitar, testo só nos principais.

[quote=marcosalex][quote=javaflex]
Depois do JQuery ainda nao tive necessidade de fazer “ifs” para isso. Só CSS que deve se preocupar mais com particularidades, mesmo assim não precisa de “if”. Claro que deve ter situações mais avançadas onde é necessário fazer essas gambiarras no js.[/quote]

Isso porque os ifs estão no código do jQuery, dá só uma espiada nele. hehehehe :wink: [/quote]
Sim, não entendi a colocação, claro que é pra ter mesmo esses ifs, por ser um dos propósitos do jquery se preocupar com essa bagunça e facilitar demais complicações de JavaScript/Ajax/DOM. Quem se preocupa com os ifs é a biblioteca e quem a mantem, e não nós usuários do JQuery.

[quote=marcosalex]
Mas mesmo assim muitas vezes tive de mexer no código pra conseguir equivaler o layout a todos os navegadores. E pra facilitar, testo só nos principais.[/quote]
Sim, dependendo do que usar não tem jeito, é a vida atual. Um pouco de diferença é bom pra evolução. Pode ser que aconteça, mas eu sinceramente ainda não tive caso de precisar fazer if usando jquery para ajustar algo de versão de browser, já trabalhei em sistemas usando front JQueryUI e atualmente Bootstrap, além de plugins jquery complementares para graficos, e sempre zero if browser. No CSS sei que acontece de usar recursos de cada browser para alguns efeitos, mas não é questão de if, interpreta o que for compatível, e isso é o designer decide se usa ou não.

Sim, atualmente tenho me mantido fora da web. Tenho trabalhado esporadicamente com ela, atuando mais com desktop por causa disso.
Principamente quando se trata de mobile. Ainda não me adaptei ao programas que geram aplicações para os vários mobiles.

Eu conheço pouco o JQuery.

Utilizar plugins foi a única maneira que encontrei de não ser pego de surpresa pelas atualizações dos navegadores.
Só preciso atualizar os fontes em flash uma vez a cada 2 anos ou mais.
Se surgir uma atualização mais profunda em algum navegador, não consigo atualizar os fontes com HTML, CSS ou javascript.

Não consigo aceitar o que tem acontecido com as ferramentas de desenvolvimento, mobiles e navegadores.
Cada um deles querem que seus programas e hardwares funcionem de um jeito particular, sem manter um padrão.
Vc pode ter poucas linguagens, mas terá que depender de uma das zilhões de IDE para desenvolver com todas elas. É uma aposta escolher uma delas.
Prefiro ir saindo agora do que me escravizar à este tipo de pensamento e ferramentas. Vou voltar ao curso de matemática.
Não dá pra pensar em “cada um por si e deus por todos” no mundo da TI só pra ganhar a competição (Exemplos: mobiles, Navegadores… ).

Qual projeto?

Na época que eu trabalhava na Positivo, a Adobe nos explicou, ao ser questionada sobre a péssima performance do Flex no Ypy, que cada plataforma pode tem um time específico para fazer a otimização. Esse time tem a única responsabilidade de fazer profiling intenso e melhorar o tempo de resposta para a plataforma em questão. Assim, não se pode afirmar que o Flex tem uma performance estável entre os vários dispositivos.

O renderer gráfico 2D também não costuma a ser adequado para um game. Por conta disso, surgiram bibliotecas como o Starling, que usa o módulo 3D do Flex, de maneira 2D:
http://gamua.com/starling/
Isso obviamente restringe o número de dispositivos que o game suportará.

Você tem certeza que o game em questão não usa isso? Finalmente, existem também bibliotecas para substituir o péssimo sistema de eventos, que geralmente vira um gargalo em aplicações (não é o caso dos games, onde os eventos são geralmente desprezados e só um evento para o loop principal é tratado).

Minha opinião: Se você for fazer um produto HOJE, sua alternativa ainda será o Flex. O HTML5 ainda promete, mas não está pronto. Já se pode fazer muita coisa nele, mas ainda carece de bons editores, frameworks, suporte e gente capacitada.
Num futuro próximo, use HTML5. De fato, acho bem provável que ele torne o Flex, JavaFX, Silverlight e outras tecnologias client side de animação obsoletas.

[quote=ViniGodoy]Minha opinião: Se você for fazer um produto HOJE, sua alternativa ainda será o Flex. O HTML5 ainda promete, mas não está pronto. Já se pode fazer muita coisa nele, mas ainda carece de bons editores, frameworks, suporte e gente capacitada.
Num futuro próximo, use HTML5. De fato, acho bem provável que ele torne o Flex, JavaFX, Silverlight e outras tecnologias client side de animação obsoletas.[/quote]
ViniGodoy, o que mais via era aplicação Flex com visual e interação que daria para fazer em HTML (4 mesmo), CSS e jquery. Então muitas vezes não vale a pena considerar como alternativa sem necessidade, e o produto da empresa terá que ter outra versão só para poder rodar em iPads.

HTML5 já é presente em alguns pontos, como canvas, tem um tempinho que uso sem problemas plugins jquery para gráficos estatísticos em HTML5, onde as especificações de canvas 2D já estão definidas, só faltando virar padrão W3C. Além disso, usei áudio e vídeo, onde para as funções básicas que necessitei já substituiu muito bem o Flash, e isso tudo já é muito usado nos mobiles.

Não creio que você, mas muita gente pensa que usar HTML5 é obrigatoriamente já começar algo totalmente novo ou não compatível com o que já esteja pronto em HTML4, mas pode dançar conforme a música. No momento ainda continuo com a base HTML4.x e só uso as tags/recursos do HTML5 que realmente não tenha como fazer no 4 ou algo que melhore significativamente. Então vai se usando conforme necessidades e o que o mercado começa a aceitar bem em produção das evoluções, e substituir algo do HTML4 só quando houver real necessidade.

Para jogos não sei opinar, sou só usuário mesmo de games.

Minha resposta se refere a quem precisa de conteúdo realmente interativo, como games, softwares educacionais, etc… Se o conteúdo não for muito dinâmico, não vejo porque sair do HTML 4, ou também apostar um pouco no 5.

[quote=javaflex][quote=ViniGodoy]Minha opinião: Se você for fazer um produto HOJE, sua alternativa ainda será o Flex. O HTML5 ainda promete, mas não está pronto. Já se pode fazer muita coisa nele, mas ainda carece de bons editores, frameworks, suporte e gente capacitada.
Num futuro próximo, use HTML5. De fato, acho bem provável que ele torne o Flex, JavaFX, Silverlight e outras tecnologias client side de animação obsoletas.[/quote]
ViniGodoy, o que mais via era aplicação Flex com visual e interação que daria para fazer em HTML (4 mesmo), CSS e jquery. Então muitas vezes não vale a pena considerar como alternativa sem necessidade, e o produto da empresa terá que ter outra versão só para poder rodar em iPads.[/quote]

Claro, já estava falando de você ter chegado a conclusão de que o flash era realmente necessário. Fazer uma aplicação flex ou flash onde o HTML substitui é uma idiotice.

Sem problemas desde que não se considere entre os navegadores o IE - que só adiciona suporte ao que está bem definido.
Audio e vídeo ainda é outra novela mau especificada. Se você for só fazer um uso muito básico, para sites, até vai.

Mas se for querer criar um game ou algo mais complexo, certamente vai ter problemas. Formatos não são padronizados e não há uma biblioteca de áudio standard (embora estejam tentando padronizar uma).

Falo de games e conteúdo interativo pois é um dos grandes (se não o maior) nichos do flex. E, claro, se estamos falando em substituir um pelo outro, é importante citar o principal nicho deles.

Com certeza. Sem falar em mercados onde você pode escolher o navegador ou, pelo menos, restringir. Aí, já tem bastante coisa legal e pronta que roda em FF, Safari e Chrome (ou melhor, quase qualquer coisa que não seja IE). As tags de css novo também fazem um “downgrade” elegante para o 4, e lá você pode criar várias animações que só desaparecerão em navegadores sem suporte.

Minha equipe hoje já está desenvolvendo aplicações comerciais assim: usando recursos do html5 e bibliotecas como Angular JS. Isso elimina torna obsoleto e elimina o engessamento de frameworks como o JSF.