Aqui há tempos disse que “as minhas skills chegam aos três principais SO’s de desktop”. Quem conhece o meu percurso, as minhas linguagens de eleição, e aquilo que eu penso sobre soluções-fita-cola só pode ter estranhado. Apesar de estar arredado, profissionalmente, do desenvolvimento desktop, sempre foi onde voltei para resolver problemas rápidos, ferramentas que precisava do pé para a mão, e para projectos meus. Tenho as minhas reservas sobre a famigerada cloud, pelo que prefiro que aplicações, na acepção corrente do termo, corram (maioritariamente) nos clientes, e não em servidores algures na ‘Net.

Durante muitos e bons anos, a linguagem C# (depois de alguns anos de Java) foi a minha eleita. Mas a plataforma .Net tem algumas limitações, sobretudo estar limitada a sistemas Windows (não me lixem, o Mono é uma solução-fita-cola que levanta mais problemas que os que resolve). O Java colmata essa grande limitação, mas a máquina virtual tem um desempenho medonho, precisamente, em Windows. O C/C++ seria a única linguagem consistente nos três SO’s, pelo menos desde que nos mantivéssemos por aplicações de consola, e com as bibliotecas padrão. Assim que tentássemos usar GUI’s, havia toda uma miríade de nós que teríamos de desatar (GTK, GDI) de SO para SO.

A cada par de anos, mais coisa, menos coisa, faço uma pesquisa pouco esperançada por linguagens ou ferramentas que me permitam chegar, de forma consistente e linear, aos três SO’s. Como é bom de ver, as pesquisas têm sido infrutíferas; até este ano.

Este ano descobri a framework Qt, cuja linguagem de base é o C++. Aparentemente, já cá andava há uns anos, abaixo do meu limite de radar. O controlo da mesma pela Nokia, em 2008, deve ter contribuído para uma maior divulgação, que a fez aparecer à minha frente.

Para além dos requisitos que eu impunha (Windows + Linux + Mac OS, sem máquina virtual, GUI consistente), tinha outras muito interessantes, como um conjunto de ferramentas de interface bastante completo, compilação também para alguns dispositivos móveis (Symbian e Windows CE), costumização da interface via CSS (algo que gosto bastante no Flex e que o C# nunca teve em termos), suporte a OpenGL e, nas últimas versões, classes de animação muito simples de usar, gestos e multi-touch. Para além do indispensável, claro: multimédia, redes, SQL, e por aí fora. Parecia demasiado bom para ser verdade.

Na realidade, ainda tem um pequeno catch que me incomoda, mas não o suficiente para a descartar: na sua versão livre (a licença é LGPL), não é possível empacotar todas as classes da framework necessárias a um programa no próprio executável, pelo que é necessário redistribuir sempre algumas dessas classes. A versão licenciada não sofre desta limitação.

Escusado será dizer que, neste momento, I’m a really happy coder. A má notícia é que, metódico como sou (há quem diga “obstinado”), estou a converter todos os meus projectos pessoais (desktop, entenda-se) para C++/Qt. E esta como desculpa, hein?

Aqui fica um teste que fiz nas três plataformas dum amontoado de componentes de interface, só para ver como saíam (não esquecer que, usando estilos por CSS, pode-se forçar uma interface coerente nas três plataformas):

Qt, Teste multi-plataforma: Linux Qt, Teste multi-plataforma: Mac OS X Qt, Teste multi-plataforma: Windows

Partilhar no Sapo Links Partilhar no del.icio.us Partilhar no Digg Partilhar no Twitter Partilhar no StumbleUpon Partilhar no MySpace Partilhar no Facebook

Comentários Deixar um comentário

 Categorias
 Arquivo
 Projectos em Destaque
 Últimas Postas no Blog
 Últimos Comentários do Blog