("Vala" minha nossa senhora) Minha primeira experiência com Vala para ambientes Gnome.
Como vão, devs?
Hoje quero compartilhar com vocês como têm sido essas últimas semanas tentando aprender a linguagem Vala.
Como surgiu essa ideia
Tudo começou quando decidi aproveitar o recesso de Natal e Ano Novo para trocar de sistema operacional. Antes, eu usava o CachyOS com KDE. Testei várias distros e cheguei à conclusão de que queria algo sólido, simples e sem distrações, só para focar no trabalho.
Fiquei entre ZorinOS, Pop!_OS e ElementaryOS. No fim, escolhi o ElementaryOS. E o motivo foi basicamente este:
- Sempre admirei a estética do macOS, mas não queria voltar para o Hackintosh.
- O Elementary tem uma estética bem próxima disso graças ao
Pantheon, além de ser simples e agradável de usar. - Percebi que é um sistema com menos atualizações e com falta de alguns apps que já são comuns em outras distribuições. Ao mesmo tempo, ele possui um sistema de incentivo onde você pode pagar o quanto quiser para apoiar o desenvolvedor de um app.
Foi aí que pensei:
“E se eu der mais um passo na carreira e começar a desenvolver meus próprios apps para esse sistema operacional?”
Primeiras impressões
Com o sistema já instalado e configurado, comecei anotando aplicativos que senti falta e possíveis melhorias para os apps já existentes. Logo depois, fui direto para a documentação.
E foi aí que veio a surpresa: me deparei com um tutorial ensinando uma linguagem que eu nunca tinha visto ninguém comentar a tal da Vala. Segundo a própria documentação, ela foca muito em produtividade:
Comfortably write your code in an object-oriented way with high level abstractions, while having access to deep integrations with GNOME technologies such as: GObject, GTK and more!
E também em desempenho:
Vala compiles code down to blazingly fast, fully native binaries. You're also able to reuse existing C Code in your Vala programs as well as generate C Code from Vala.
Resumindo: o Vala foi criado especificamente para o ecossistema GNOME. Ele permite escrever código com uma sintaxe moderna (bem parecida com C# ou Java), mas que no final é compilado para C.
Pessoalmente, eu gostei bastante da proposta. Em pouco tempo já consegui criar minha primeira janela:
public class MyApp : Gtk.Application {
public MyApp () {
Object (
application_id: "io.github.yourusername.yourrepositoryname",
flags: ApplicationFlags.DEFAULT_FLAGS
);
}
protected override void activate () {
var main_window = new Gtk.ApplicationWindow (this) {
default_height = 300,
default_width = 300,
title = "Hello World"
};
main_window.present ();
}
public static int main (string[] args) {
return new MyApp ().run (args);
}
}
Onde o Vala é usado
Muitos aplicativos do GNOME como GNOME Maps, GNOME Photos e Geary além de componentes do próprio sistema, são escritos em Vala.
A grande vantagem é que ele facilita muito o uso de bibliotecas escritas em C, sem todo o “peso visual” e a complexidade do C puro.
Alguns aplicativos feitos em Vala que talvez você já use:
Concluindo
Minha experiência com Vala tem sido bem agradável. O único ponto negativo, na minha visão, é perceber que a comunidade BR quase não utiliza a linguagem o que é até compreensível.
Com o Flatpak, muitos devs acabam preferindo usar sua linguagem favorita e apenas empacotar o app, o que torna o ecossistema de Vala mais nichado.
Agora me conta:
Você usa Vala? Já usou? Ou conhece alguma outra linguagem que te trouxe essa mesma sensação de produtividade e integração com o sistema?


