Executando verificação de segurança...
15

("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:

Workbench
Workbench

Monitor
Monitor

Timeshift
Timeshift

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?

Carregando publicação patrocinada...
2

Realmente parece ser algo bem interessante, eu pessoalmente amo esse visual que aplicativos construído em GTK usam eles trazem uma vibe algo moderno mas antigo ao mesmo tempo, eu sempre quis criar uns appzinhos em C com GTK mas fazer isso em C puro parecia ser um inferno, mas com essa linguagem eu vou dar mais uma chance.

4

recomendo amigo, eu achei que pela comunidade ser pequena eu teria de ler uma documentação rasa e difícil, mas não, a documentação é boa e a linguagem tem muita coisa a se aprender e funcionalidades interessantes como signals e async/await. Os devs do ElementaryOS só usam ela pela que percebi.

1
1