Olá Pessoal,
Aproveitando a deixa da palestra, vou falar hoje um pouco dessa pequena grande promessa: JavaFX.
O que é JavaFX?
Uma linguagem de programação. Apenas isso. Quer dizer, não é bem “apenas” por inúmeros motivos, mas o que faz ela não ser “apenas mais uma linguagem” acredito ser uma coisa principal: ABSTRAÇÃO. E por abstração, entenda como o fato de podermos fazer coisas realmente complexas de maneira simples. JavaFX, com sua linguagem e APIs, abstrai toda a parte de GUI e multimidia de uma app de maneira bem interessante.
Pra que mais uma linguagem se já temos tantas, como Java?
Java, como linguagem, atende um propósito geral. Geral no sentido de que ela nos permite construir aplicações para TUDO (celular, tv, blu-ray, desktop, microcontroladores), sem precisarmos recorrer a outra tecnologia (exceto em casos que precisamos de recursos nativos). Mas ainda assim, ela nos atende muito bem. Daí vem a pergunta: por que mais uma linguagem? A resposta é: ESPECIALIZAÇÃO. Você pode cortar carne com um canivete, mas acredito ser bem mais apropriado (por facilitar o corte) utilizar uma faca bem amolada para tal atividade. Da mesma forma, o Java se vira bem em interfaces gráficas, mas JavaFX por ser mais especializado, proporcionaria uma facilidade maior no desenvolvimento de GUIs mais amigáveis.
RIA e a evolução da Web
O termo RIA (Rich Internet Applications) veio para definir um novo conceito de mãos dadas com a evolução da Web e toda essa participação do usuário na geração de conteudo da rede. Hoje em dia, podemos observar que o conteúdo da internet quase que em sua totalidade é feito pelos próprios usuários através de blogs, foruns, microblogs, fotologs, redes sociais, etc. Essa “valorização” do usuário , elevando-o de mero observador a um administrador e editor, fez com que as antigas páginas web se transformassem em verdadeiras aplicações. Aplicações Web (Web Applications), por assim dizer. Pois além de simplesmente exibir conteúdo, agora elas tem que se preocupar também com controle de autenticação de usuários, gerenciamento de conteúdo, regras de negócio e tudo mais que uma aplicação precisa suportar.
O browser em si só entende HTML, CSS e Javascript. Então percebeu-se que era necessário estender essas funcionalidades do browser para a adoção de novas tecnologias. Java já tinha algo desse tipo com os queridos Applets, ao qual você instalava uma Java Virtual Machine e então seu browser adquiria a capacidade de executar aplicações Java, fazendo com que a interface fique mais “rica” em detalhes e em experiência.
Essa abordagem tinha alguns contras pois deixava o carregamento do site meio lento. Assim, a empresa francesa Macromedia veio com uma tecnologia muito inovadora: o Flash Player. Ele, como uma tecnologia baseada em desenho vetorial e animações, era muito mais rapido, além de possuir uma gama de componentes bem desenhados e agradaveis visualmente. Acredito que essa foi a primeira grande revolução no desenvolvimento de interfaces para Web, o que provocou toda essa nova onda de tecnologias.
E onde o JavaFX entra nisso tudo?
Ela é a linguagem que a SUN Microsystems desenvolveu para entrar no mercado de tecnologias RIA. Ela ainda continua utilizando a Virtual Machine, como os antigos Applets, mas a partir da versão 1.6_10 a JVM sofreu diversas melhorias e entre elas houve uma grande preocupação com seu desempenho na nos browsers. Uma das coisas mais interessantes é a interação entre a JVM do browser e do desktop, que permite entre outras coisas, que se arraste uma aplicação do browser para o desktop e, se fecharmos o browser, a aplicação continua rodando normalmente.
A linguagem é também OO assim como Java. Sua grande característica é sua sintaxe, totalmente inovadora. Um exemplo de código:
public class Fly extends CustomNode {
// Have the invoker set these to be the maximum width and height
// that they would like the fly to travel (basically the screen borders)
public-init var width : Number;
public-init var height: Number;
// Create the utility that lights our fly up
var flyLighter = Lighter { }
// Create a fly
var fly = Circle
{
// Bind the color of the fly to the ligher
fill: bind flyLighter.flyColor;
// Set up the standard characteristics
stroke: Color.AQUAMARINE;
strokeWidth: 2;
radius: 6;
}
// Override the base node creation
override function create():Node {
// Start the lighter immediately
flyLighter.startLighter();
// Create the flight path and start the animation of that path up
Flight{ fly:fly
height:height
width: width}.createAndPlayAnimation();
// Return our fly as the node
return fly
}
}
Links, links e mais links…
http://www.javafx.com/
http://www.javafree.uol.com.br/f-68-JavaFX.html
http://jfxstudio.wordpress.com/
http://www.javafxgame.com/
E um tópico bem legal, feito pelo meu amigo William Antônio no JavaFree
http://javafree.uol.com.br/topic-874710-Quer-aprender-JavaFX.html







