Feeds:
Posts
Comments

Archive for the ‘JavaScript’ Category

E aê, quem já andou brincando com o QML por aqui? Eu lembro que quando fui o forum do KDE no último EPSL/ENSL eu olhei para o QML sem entender nada tão pouco sem entender porque os caras do KDE falavam como drogados ecstasy. Eles diziam que o KDE novo vinha por ai e vinha com novidades que estavam revolucionando tudo, que o uso do QML (linguagem declarativa do Qt) iria mudar os paradigmas, que não existiria mais programação para desktop como antes. E eu ouvia tudo isso perplexo, com medo dos caras também, e com preconceito, afinal gosto do Gnome e os caras tiraram moh sarro com o bichinho.   Mas então, o tempo vai e o tempo volta, eis que resolvo brincar com esse novo brinquedo que o pessoal do KDE falou tanto. Olhei, olhei e olhei, vi que era possível escrever coisas com python usando o qt e qml , vi que era possível usar C++, por fim, vi o que eu talvez quisesse e não sábia que queria, que era possível usar apenas QML + JavaScript.

Se você olhar para um código QML a primeira vista você vai, talvez, achar estranho, ou dizer, ué isso é JSON? É JavaScript? Que bicho é esse? Depois de um tempo você vai entender tudo, vai entender que o QML é fortemente baseado em JavaScript e para quem gosta de JavaScript isso é magavilhoso (como diria o cara dos melhores do mundo).

Deixando de enrolar vamos ao assunto tema do post. Brincando pra lá e para cá com o QML resolvi criar um joguinho da memória bem simples. Eu não vou descrever o jogo aqui no post nem mostrar códigos porque já tem tudo isso no meu github =]. Vou só postar aqui a imagem desse joguinho bobo, mas que me deu muito prazer de fazer, pois foi leve e fácil. Como se não bastasse ainda uso o python para servir de lançador ou de ponte pra lançar o jogo. Vejam com os seus olhos e se a curiosidade for atiçada dêem um olhada no github .

Kanji Memo Game - QML + JavaScript

Read Full Post »

Hoje em dia não é  mais novidade que o futuro dos desktop sejam a web, a computação nas nuvens anda mudando tudo de lugar cada vez mais,  e você descobre, vasculhando por ai, que quase tudo tem um pé na web. Um bom exemplo é o Qt com seu QML, mas calma, não quer dizer que você usa QML pra criar sites, quer dizer que você usa um pé da web no QML. A linguagem (se é que posso chamar assim) declarativa do Qt (QML) é baseada na sintaxe dos objetos em  JavaScript (lembram do JSON?) . Além disso, é possível, por exemplo, usar o QtWebKit e criar uma aplicação com JavaScript +  HTML e QML (além de Python e C++). Mas vamos deixar o Qt de lado, afinal o assunto aqui é o Gtk, mais precisamente Gtk  + JavaScript.

Vasculhando pela web por uma forma de criar aplicações em JavaScript no linux, e lançá-las no desktop, esbarrei com o Seed. Seed, é um binding (wrapper) do JavaScript usando WebKit e GObject para rodar aplicações no linux, mas precisamente no gnome, já que o projeto é mantido por um cara de lá. Mas, por que raios você iria usar JavaScript aquela linguagem tosca que usam em sites para criar aplicações Desktop; e como raios é esse bicho, JavaScript + Gtk?  Pelo que li a grande vantagem de se usar esse binding do JavaScript é o de poder integrar com as diversas libs do projeto gnome, quando falo diversas me refiro a; GLib, GTK, GIO, Gstreamer, Clutter, GObject, etc. Logo de cara você percebe que a integração é larga, mas não bastasse isso criar aplicações em Seed (JavaScript) + Gtk, por exemplo, é muito mais barato (computacionalmente falando) do que criar aplicações em PyGtk, e menos complicado do que criar com C puro (ansi C) e Gtk.
Para vocês não dizerem que estou inventando coisas aqui vai um código exemplo de como criar uma aplicação ‘Hello World’  com Seed + Gtk.

CODE

#!/usr/bin/env seed

Gtk = imports.gi.Gtk;
Gtk.init(null, null);

var window = new Gtk.Window({title:"Core Code Teste"});
window.signal.hide.connect(Gtk.main_quit);
var button = new Gtk.Button({label: "click me"});

button.signal.clicked.connect(function(w) {
        Seed.print("Hello World =D");
});
window.add(button);
window.show_all();

Gtk.main();

Viu, fácil né?! Agora observe bem e lembre-se, qual é uma das melhores características que o JavaScript possui? Se você não lembra eu vou te ajudar, aquela coisa de função anônima dentro de função, lembrou? É isso mesmo, os closures. Essa é uma das vantagens, também, de se usar Seed para construir suas aplicações, você vai poder abusar dos closures, e claro, da sua prática em JavaScript. Pra você que achava que ia morrer programando JQuery e JavaScript pra web, que tal se aventurar no mundo do desktop com Gtk, clutter,Gio, Glib…etc. Afinal, segundo os criadores desse binding esse foi um dos propósitos do projeto, atrair desenvolvedores web/JavaScript par ao ambiente Gnome.
Finalizando, para instalar o seed no ubuntu basta usar a força: sudo apt-get install seed =P.
Que a força esteja com vocês padawans!!

Referências

[1] http://developer.gnome.org/seed/stable/

[2] http://live.gnome.org/Seed/Tutorial

Read Full Post »