Mantenha-se informado sobre as nossas novidades com nosso newsletter semanal, todas as segundas-feiras
Antes tarde do que nunca! Com uns 10 anos de atraso, a Sun finalmente lançou a versão 1.0 do JavaFX. O mercado agora complicou um pouco mais com esse novo jogador. A Sun vem bater de frente contra Adobe e Microsoft com o diferencial de rodar em cima da plataforma Java. Isso significa, segundo a Sun, que os seus 6.5 milhões de desenvolvedores podem começar a criar aplicativos imediatamente.
A estratégia, é bastante conhecida: a Web quer sair do browser. E obviamente, é necessário integrar o fluxo de trabalho de designers e desenvolvedores. O suporte para bibliotecas gráficas das ferramentas da Adobe como o Photoshop e o Illustrator, é nativo.
No vídeo de apresentação, eles mencionam 4 pilares do que a empresa pretende com o JavaFX:
1. “Plataforma Expressiva”: rodando em cima no Java, gráficos, animações, música e som, vídeo e interatividade.
2. Resolver problemas complexos…
3. … e com várias fontes de dados diferentes. Pense assim: vídeo vindo de uma fonte, dados em XML de um serviço web (WebService) e fotos puxadas do Flickr.
4. Disponibilizar em múltiplas plataformas e ambientes: browser, desktop, mobile e televisão.
Como era de se esperar, as ferramentas de escolha para o desenvolvimento são o NetBeans e o Eclipse. Vídeo, é o mesmo que a Adobe usou no Flash, o On2 que anunciou o suporte ao JavaFX com a sua linha de softwares OnFlix. A versão standard custa US$ 39,00 e o codec é proprietário. Nada de “free beer”.
O gráfico abaixo, explica em alto nível, a proposta da Sun para RIA. É preciso ter o Java Runtime Environment (JRE) instalado e depois instalar o JavaFX 1.0. O link também leva direto ao Software Development Toolkit (SDK) e outras ferramentas necessárias para o desenvolvimento.
A galeria de exemplos tem algumas amostras, com documentação e código-fonte disponíveis. Por exemplo, um jogo de Brick Breaker, feixo em JavaFX.
E uma amostra do código, a classe Ball.fx:
Quando olhei algumas outras classes, que definiam aspectos visuais do jogo, achei familiar. E aí veio a lembrança! A Sun usou um modelo de montagem de objetos gráficos inspirado no VRML, mas com uma sintaxe moderna. Para desenvolvedores Java, a idéia é justamente essa, sentir-se em casa.
Brinquei com outro aplicativo, um programa para aplicar efeitos em uma imagem e depois exportar para o desktop.
Conclusão
É óbvio que a tecnologia tem um enorme potencial, não pela sua enorme base instalada, mas pela quantidade de desenvolvedores e suporte de ferramentas integrado desde o começo. A Sun vai dar trabalho tanto para Microsoft quanto Adobe, mas resta saber se os atrasos na evolução do JavaFX, a crise econômica e a evolução das ferramentas vai acompanhar a competição. A Sun atrasa, e MUITO, os seus lançamentos. O mercado de RIA vai exigir da empresa uma agilidade que ela não está habituada.
Além disso, outro risco é que a empresa teve uma abordagem diferente: o JavaFX precisa de Java e o seu próprio plug-in. Isso fez dele o download mais pesado da concorrência, com 25MB, comparado ao Flash e Siverlight, em torno 2MB.
A Adobe tem em sua frente o desafio de integrar suas ferramentas para criação de arte com as criadas do zero para desenvolvedores. Qualquer pessoa que tenha usado o Flash para desenvolvimento em ActionScript fica aterrorizado. É ruim demais. É um programa de animação vetorial que ganhou uma linguagem de script e uma máquina virtual de execução de código, como o Maya, por exemplo. A empresa não possui soluções verdadeiramente nascidas e voltadas para os desenvolvedores e precisa deles dentro do vagão do Flex. Não há um NetBeans ou Visual Studio por parte da empresa. Mas eles controlam o formato dominante e milhões de pessoas usam o YouTube e usam Flash, atualizam ele sem maiores reclamações.
A Microsoft tem o dinheiro, a plataforma e as ferramentas, mas ainda precisa convencer o público e principalmente as empresas, de que RIA não é brinquedo e veio para ficar. A opção mais natural para quem trabalha com .Net, é claro, mas isso não significa que as tecnologias não se integrem. Um webservice criado em .Net pode alimentar dados consumidos pelo JavaFX e na mesma página termos um formulário em Silverlight e um aplicativo gráfico em JavaFX. A empresa está investido bastante e o Silverlight mal chegou na versão 2.0 e já está anunciada a versão 3.0 para incluir h.264 e AAC.
Acredito que 2009 vai ser um ano interessante na área de RIA.
O FlexBuilder não conta como uma IDE excelente, feita pela própria Adobe (e baseada no Eclipse)? Se não, há também o FlashDevelop, open source, baseado em alguma IDE grátis da Microsoft (não é minha praia).
Mas sim, RIAs vão crescer cada vez mais.
Saudações.
Existe também o plug-in do Flex para o próprio eclipse (É pago, desenvolvido pela Adobe). Com auto-complete, debugger, alguns refactor e tudo que o Eclipse nos tem a oferecer.
Sou desenvolvedor Flash a 4 anos, e depois do Eclipse eu não consigo mais voltar para a IDE do Flash
Quero saber se depois dessa ameaça a Adobe vai finalmente colocar o tão sonhado 3d nativo no flash, o Papervision3d ta ai pra mostrar a competência dos seus desenvolvedores.
Eu testei e vi que a ferramente tem potêncial. O que não gostei mesmo foi o modo de criar interfaces, o que é uma coisa que o Flex ganha disparado do JavaFX por causa do Flex Builder, já no netbeans é tudo criado via código, o que não é muito produtivo.
WorldOrg
http://silveiraneto.net/
nesse blog tem bastante coisa sobre javafx, e inclusive um plugin justamente pra isso, um editor visual pra facilitar a vida dos designers.
tem também o plugin de inkscape pra desenhar lá e exportar código do javafx.
O novo software divulgado pelo Google, o NaCl, não é um concorrente dessas tecnologias RIA? O que vcs acham?
Vejam os links:
BR-Linux
ArsTechnica
Quanto ao tamanho, o JavaFX já é baixado automaticamente em background após a instalação da JRE; Juntando com as alterações do Java6u10 de download só de kernel, e com o fato de quase todo mundo ter uma JRE instalada, acho que não vai ser um ponto tão desfavorável assim... :P
____________________________
"Better to understand a little than to misunderstand a lot"
Cara, como código Java mudou desde a época em que vi pela última vez!
public-read var diameter;
var imageView: ImageView;
override public function create(): Node { imageView }
Parece ter recebido mais influências de C#, Delphi (bem, C# é quase todo Delphi) e C++...
Não entendi bem a segunda linha. É uma declaração de tipo em estilo Pascal (:) ou uma criação de instância de classe sem new? Sei que var está sendo usado hoje como uma forma de se tirar a exigência de declarações de tipos, numa forma de inferência de tipos limitada...
Estou por fora. Aqui os camaradas ainda usam Delphi 6! E em casa só fico em linguagens mais esotéricas como Python ou Haskell... ;)
Python não é uma linguagem esotérica :P
E Haskell só é outro paradigma...
Edit:
Quanto à segunda linha desse trecho de código, parece mesmo ser uma instanciação sem o uso do new.
Olha o que eu encontrei aqui:
var textArea:TextArea;var textField:TextField;
var list:ListBox;
var table:Table;
var tree:Tree;
var colorChooser:ColorChooser;
Parecido, não?
——————————————
O início do fim
Mostra Haskell para um de seus colegas programadores "normais" e veja um paradigma vindo em direção às suas fuças em velocidade... ;)
Instanciação estranha. Cadê o =? Java acabou indo pelo mesmo caminho de C++, ficando com uma sintaxe barroca e carregada porque pra cada coisa nova, criam sintaxe diferente ao invés de sobrecarregar a anterior...
Por falar nisso, link interessante que recebi agora:
E se linguagens de programação fossem religiões? :)
Tenho que concordar que ficou bem estranho.
Mais bizarro que isso é esse monte de chaves e colchetes aninhados do JavaFX.
——————————————
Se todo fim tem um início, um deles já começou.
Já vistes um código usando algum framework javascript orientado a objetos, tipo o Mootools?
blabla=new Class{
bla:function(){
var bla=new Bla({
bla:{
bla({bla:1,blabla:2,bla:function(){
bla++
}})
}
})
},
blabla:[1,2,3,4,5]
}
Não :)
——————————————
Se todo fim tem um início, um deles já começou.
Pode ser questão de preferência, mas eu prefiro a abordagem da Adobe e da Microsoft em usar uma meta-linguagem baseada em XML.
O Flex usa o MXML e o Silverlight, XAML, que também é usado pelo Windows Presentation Foundation.
Andei lendo muitas, mas muitas críticas ao JavaFX e a linguagem script dele. Mas o povo precisa pelo menos dar uma chance para a Sun.
O único problema desta linguagem, seria a camada a mais entre o código e a máquina.
Flex é flash, basicamente. Ele faz via MXML o que dá pra fazer pelo Flash via AS3. Logo, gasta-se processamento a toa, penso eu. Economiza tempo, mas torna a aplicação mais pesada. Num mundo desktop isso não faz diferença nenhuma, mas num navegador...
Logo logo vem IDE pra JavaFX, suponho.
Eu nem critico o script, eu estou acostumado a fazer tudo via DOM em javascript mesmo...
Bem da verdade: hoje quem desenvolve RIA ou mexe com flex, ou silverlight, ou usa algumas soluções puramente JS que temos por aí.
JavaFX vai ser o Opera RIA.
Mas isso não é código Java... é JavaFX ;)
Java continua igual :)
____________________________
"Better to understand a little than to misunderstand a lot"
Hmm, então é um pre-processador?
É um compilador. Você pode compilar classes javafx para bytecode, e ter toda o desempenho do JIT ou então você pode usar a implementação da JSR-223 e interpretar javafx dinâmicamente em tempo de execução.
Sobre o tamanho do java, a Sun já se antecipou sobre isso e lançou o java kernel que é um download minimalista da plataforma(~2mb).
Há, eu sempre disse que a plataforma Java era um SO redundante rodando em cima de outro e agora esse kernel vem provar isso. ;)
Você está equivocado. Java kernel não é "enxuto", é "lazy".
Python linguagem esotérica...
Na verdade ele tenta ser bem simples e transparente, com código praticamente sem magia negra.
lista_de_pares_ate_20 = [x*2 for x in range(10)]
Não é magia, é tecnologia. (fraca hein)
[]s
"Toda tecnologia suficientemente avançada é indistinguível de mágica."
-- Arthur C. Clarke
;)
Na aRIA. ;)
ok, podre... :sick:
RIA q.
Atirem a primeira pedra, mas no meio dessa briga de cachorro, eu
ainda prefiro Javascript. Com os browsers acelerados como estão,
e os frameworks que temos, canvas, hoje é possível fazer MUITA
coisa com JS.
Enquando a Adobe tem a faca e o queijo na mão, mas dorme no ponto,
já temos até projetos de sistemas operacionais com interface criada
em JS.
Esse lance de mudar a plataforma de acesso aos recursos de Internet
para plataformas proprietárias me arrepia.
Ilustrando o que eu disse acima:
http://www.rebelideas.co.uk/games/invamars/
http://www.harryguillermo.com/Pacman.aspx
http://www.nihilogic.dk/labs/mario/mario_large_mus...
http://www.nihilogic.dk/labs/wolf/
http://www.nihilogic.dk/labs/chess/
Tudo sem instalar nada
recursos de Internet lol
O que vc gostaria que eu colocasse Bigode? (Hehehe)
WEB. Aka "NÃO É A INTERNET". Sieg.
RIA. Rich INTERNET Applications.
Acorda maluco!
Internet é uma rede de computadores, não html rodando sobre http, vulgo web.
Também rodam na internet torrents, feeds RSS, nntp, ftp, fdp e vários outros que mesmo eu nunca ouvi falar...
Blz! E seu quiser fazer um torrent usando JavaFX?
Rodando inclusive fora de browsers no seu SO.
Ainda é WEB? Sim ou não?
É web. O fato de estar rodando com cara de aplicação desktop não muda isso.
Não tem nada a ver com cara de desktop chuvisco. Esses RIAs não se restringem apenas a web. Podem ser usados para qualquer coisa aplicação que seja, não?
Oi senhor não maluco. Desenvolva sua argumentação. E responda.
para plataformas proprietárias me arrepia.
O lance de mudar a plataforma de acesso aos recursos de qual internets te arrepia?
De acordo com você, sim. Lol. MAS NÃO PODEM SER USADOS PARA A INFORMÁTICA 3D NEM PRA WEB 11.0 ENTÃO PORQUE SUA AVÓ SE IMPORTA?
Srsly. Lol RIA. Rich Internet Applications. Aplicações que podem ser usadas para qualquer coisa.
...
...
...
Aplicações que podem ser usadas para qualquer coisa. Aplicações. Applications. A.
Velin, Internet é uma rede como o chuvisco falou. Até ai blz (dã).
Web é um recurso da Internet. Algo que pode ser feito com ela. Sacou?
Existem N outras aplicações para a Internet. Cada aplicação é um "recurso", no meu vocabulário, para quem precisa dela. Sacou o que eu to querendo falar?
Agora repara você como a discução sobre o assunto está boa. E larga de ficar discutindo só se Web é Internet.
Aproveita seus posts e manda um beijo pro chuvisco (Hehehe).
Sim, de certa forma. A web é um serviço, que por algum acaso roda em cima da ARMA.
Pesquei. Você se arrepia com clientes de tais serviços (plataforma de acesso q) proprietários. Se a especificação de como tal serviço roda é liberada de maneira transparente, tal problema inexiste.
Eu não sou velin. Sou ansião. Não vou mandar beijo porque você não sabe responder à perguntas. Na ordem.
Qual a sua opinião sobre o termo RIA, Rich Internet Applications? Você acredita na existência de OVNIs?
Na minha época, a Web era "documentos que possuiam ligações entre eles (links) rodando sobre um browser". Se mudou, não fiquei sabendo. Alguém poderia me explicar (sem ironia)? Até Torrent é web hoje?? Achei que era outra aplicação que rodava sobre a rede Internet.
Sim.
Sim. Bem vindo à Informática 3D.
A Web é um serviço de distribuição de hipertexto. O Bittorrent é um serviço de distribuição de arquivos.
Esquece, Bigode. Web é A INTERNET da mesma forma que Windows é O SISTEMA OPERACIONAL na visão dos bovinos.
Também sou old-school nesse ponto... páginas web com cara de programa desktop é tão estranho qnto programas desktop simulando uma interface WEB.
Acho melhor fazer uma aplicação desktop de vez, ao invés de uma RIA
Cassio R Eskelsen
Antigamente eu achava mais estranho do que hoje.
Meu ponto de vista nao tem a ver com interface não.
Achei até muito doido ver abrir "desktop" pela net.
Meu negócio são as camadas.
JS aqui, aplicação no(s) servidor(es) ali, layout acolá, e por ai vai.
E sem ter que baixar plugin nenhum é outro ponto tb.
Você é o dono de uma revenda de peças de automóvel. Possui 60 vendedores espalhados pelo estado. Possui um programa de gerenciamento de estoque e tudo mais que deve ter.
O vendedor vive parando em lan houses.
Vais usar o que?
Vale pra MUITAS empresas hoje. RIA é o que eles precisam.
Isso pensando na sua idéia de Rich Internet Application. Não necessariamente uma RIA necessita simular uma aplicação desktop. Pode ser completamente diferente.
Bom, um sistema desses dificilmente iria poder ser rodado em uma lan house por uma questão de segurança.
A priori, uma aplicação web "tradicional", com bastante ajax resolveria.
Para os casos mais complicados a prática diz que as empresas preferem usar WTS.
Cassio R Eskelsen
Aplicação web "tradicional" com bastante ajax é RIA.
É um novo contexto. No que antes era obrigatório usar Terminal Services, hoje talvez não exija tal coisa.
Tocador MP3, estilo ITunes, em JS:
http://www.thecloudplayer.com/
Como já foi bem dito, esta tecnologia chegou
tarde, difícil pegar.
Mas a Adobe também perdeu uma boa chance, se
tivesse feito algo mais consistente para
aplicações mais 'gui' com RIA, teria faturado
muito. Hoje em dia o Ajax é de longe a melhor
alternativa (sem mencionar que na prática não
precisa instalar nada) e RIA só para aplicações
específicas (youtube pex).
Não consigo pensar numa aplicação que precise
de uma solução intermediária entre as
interfaces do google maps e youtube pex.
Engraçado neste onda de RIA é a história do XUL da mozilla.
Linguagem XML para interface da Mozilla usada em todos os seus plugins e que parece que não tem hype para os desenvolvedores.
Só para lembrar(funciona só em firefox):
http://www.faser.net/mab/chrome/content/mab.xul
____________________________________________________
O homem está condenado a ser livre - Jean Paul Sarte
Fantástico essas coisas Daniel.
O maior inimigo do Windows é o Firefox rs
É muito boa mesmo, e ainda usa javascript e DOM como em qualquer desenvolvimento WEB.
Mas sei lá , é uma linguagem que não se pegou..., só é usada para os plugins de Firefox e afins.
____________________________________________________
O homem está condenado a ser livre - Jean Paul Sarte
O dia que tiver XUL pra IE, ai ele tem alguma chance.
Ou para o Safari.
Bem, vamos sentar e esperar :)
He he he , XUL para internet explorer e safari ia ser um bicho muito esquisito.
Mas tem firefox para windows e mac , so ...
____________________________________________________
O homem está condenado a ser livre - Jean Paul Sarte
XUL é de onde a Microsoft pegou, digamos, "inspiração" para seu XAML. Um tradutor de um para outro não seria tão problemático, o maior problema é que imagino que a linguagem de eventos do XAML não seja javascript, como em XUL, mas algo como C# compilado ou coisa do gênero.
Por outro lado, XUL nunca deu certo fora do projeto Mozilla. Eles bem que tentaram submeter o padrão para a W3C, mas não deu certo. Esse Mab é antigo e o único demo que já vi em XUL que presta. Foi feito por um brasileiro, se não me engano...
Já tentaram programar interfaces em XUL? Não tão fácil quanto fazem parecer, ainda mais porque a documentação é(ra) confusa e defasada...
Já. E nem acho a documentação tão ruim não... Dá pra se encontrar legal lá. Também nunca fiz nada extremamente complexo, porém.
A questão aqui é só o fator "roda em qualquer biboca em qualquer lugar". O cara tá desesperado pra acessar o sistema de controle de estoque da empresa dele lá em Cataguazes do Norte numa lan house de periferia:
Usando RIA puramente Javascript, ele acessa imediatamente.
Usando Flex, ele provavelmente acessa, devido a ter plugin do flash em qualquer coisa.
Usando Silverlight, fica mais complicado. Porém, deve vir com o Windows Seven, aí resolve-se. (Povo vai chiar bastante)
Usando JavaFX... bom. As vezes tem java na máquina. As vezes não.
Usando XUL, o cara fica obrigatóriamente preso ao Firefox... sem condições. Por isso digo que se o troço rodasse no IE, poderia ser uma alternativa. E antes que alguém me crucifique, ActiveX também é a mesma coisa: O cara fica preso ao IE e hoje em dia não dá. Cai numa Lan-House daqueles psicóticos que a montaram com Linux, tá perdido.
Note que eu acho RIA um negócio legal, mas quanto mais "zero footprint" o troço for, melhor.
Essa linha de raciocínio me parece contraditória. Sim, RIA puro roda em qualquer lugar, exceto Lynx. Mas Firefox também roda em qualquer lugar, certamente mais do que IE ou Flash.
No fim das contas, sempre há alguma dependência, mas se essa for flexível e estiver disponível em qualquer situação, não vejo problema.
Firefox não roda em qualquer lugar. Nem sempre você pode instalar coisas, e nem sempre um cara vai andar com firefox portable num pen drive.
Dependências sempre há, mas as chances de você ir a algum lugar e rodar um programa em Flex é bem maior do que poder rodar um programa em XUL.
E nem em sonho que firefox roda em mais locais do que Flash. Flash tem plugin pra IE, Opera, Firefox, Safari e todos os demais browsers. A chance dele já estar instalado é enorme.
Eu conheço N ambientes em que há IE e Flash, mas não há Firefox e nem há condições de se instalar um.
Se uma plataforma roda Firefox, roda XUL. Tirando o fato de não vir instalado e não deixarem instalar -- nem mesmo copiar o diretório de instalação para a pasta do usuário? -- está tão disponível quanto Flash.
Flash roda no Firefox, no IE, no Opera, no Chrome, no Safari, no Konqueror, no PSP, no (insira aqui seu dispositivo preferido que não seja o iPhone).
Javascript puro então, roda até no iPhone.
Usar XUL, e ficar limitado ao Firefox, browser com 30% do mercado (até menos aqui no brasil) não é uma coisa exatamente 'supimpa'.
-----------------------------------------------------
La Votación: Vote no filme do Zé do Caixão, "Encarnação do Demônio" como melhor filme nacional de 2008 !
Flash não rodava em plataformas 64-bits até bem pouco tempo. Javascript puro é bom, exceto por todas os ifdefs a la C que vc tinha que fazer para suportar browsers que não seguiam padrões, tipo IE. Isso está mudando, claro...
Com XUL vc depende de Firefox, que roda em tudo que é canto. Não tá instalado, mas nada impede de andar com ele no bolso, oferecer a clientes downloads ou links e, em último caso, um zip com diretório de instalação para mera cópia de arquivos ao invés de instalação no sistema.
Flash sempre rodou em plataformas 64 bits. Só que rodava em 32 bits.
Eu uso o Vista 64 faz teeeeeeeeempo, e meus browsers tem suporte pleno a flash.
É uma insanidade defender XUL com Firefox como alternativa viável pra RIA: Mandar alguém levar pen drive no bolso ou baixar um programa pra copiar e colar no PC é a defesa mais chewbacca que eu já ví... Qual a diferença entre isso e uma aplicação sem necessidade de instalação que você baixa direto da internet?
Tem que rodar em todo lugar que você for, ou pelo menos em quantos mais deles, melhor. A base instalada de plugin do Flash é imensamente maior do que a do Firefox...
O que funciona em qualquer lugar é javascript. Que não é uma boa plataforma de desenvolvimento porque a linguagem não é aquelas coisas, e os browsers tem containers de segurança hediondos.
Não sei como até hoje não existe um parametro Javasript que informe ao browser para entrar em "modo seguro" e não permita ver o código fonte e os processos envolvidos no script.
Daí eu pego o source do Fx, coloco um // na linha que faz a verificação, recompilo... como fica?
Nada - repito, nada! - que manipula informações vitais para o negócio pode ser rodado no cliente: nem em JS, nem em JavaFX, nem em applets, nem em Flash, nem em Silverlight (sem nem entrar no campo das aplicações cliente/servidor desktop)... qualquer cálculo que envolva a lógica do negócio (e seja suficientemente importante) tem que rodar no servidor. Infelizmente, muitas empresas ignoram isso... e você vê páginas web gerando SQL por javascript e mandando para executar direto... :?
____________________________
"Better to understand a little than to misunderstand a lot"
Samuel e nwolf, isso somente é um problema se você distribui software proprietário. Assim como em certos negócios, certas coisas são responsabilidade exclusiva do servidor, em outros, ou até nos mesmos, certas outras coisas são responsabilidade exclusiva do cliente.
Em javascript não há meios razoavelmente simples de carregar scripts de terceiros, verificar a assinatura deles, e rodá-los em uma sandbox. Nem de fazer requests pra domínios de terceiros.
Não acredito que a MS consiga uma hegemonia desse mercado de RIA.
Depender do silverlight pode acabar limitando muito. Ok, a maioria do mundo é Windows. Mas como a tendência é que os smartphones virem lugar comum, não dá pra contar que todo mundo vai ser burro de comprar telefone com WinMob. Vão comprar muito Nokia, Blackberry e até Android(se "pegar").
Maioria dos mortais compra celular pela capacidade de músicas que pode carregar, qualidade da câmera e "boniteza" do aparelho. Pouca gente pensa o que roda por baixo, se é que sabe que algo "roda".
Não dá pra esquecer que o telefone da modinha, o iphone, acho que não roda Java (flash sim?). Pra ter silverlight, não deve ser tão fácil de convencer o jobs a deixar.