- Vala é uma linguagem de programação que tem como objetivo oferecer recursos modernos de linguagem para desenvolvedores do GNOME
- Não impõe requisitos adicionais de runtime nem usa uma ABI diferente em comparação com aplicações e bibliotecas escritas em C
- Recursos modernos de linguagem suportados: interfaces, propriedades, sinais,
foreach, expressões lambda, inferência de tipos para variáveis locais, genéricos, tipos non-null, gerenciamento de memória, tratamento de exceções
- Permite escrever código com conforto usando abstrações de alto nível em um estilo orientado a objetos, além de ser profundamente integrada a tecnologias do GNOME como GObject e GTK
- Compila o código em binários nativos muito rápidos. É possível reutilizar código C existente em programas Vala ou gerar código C a partir de Vala
Compatibilidade com bibliotecas C existentes
- Vala foi projetada para permitir acesso a bibliotecas C existentes, especialmente bibliotecas baseadas em GObject, sem bindings em runtime
- Basta ter arquivos de API contendo declarações de classes e métodos na sintaxe de Vala para usar a biblioteca com Vala
- Atualmente, Vala já vem com bindings para GLib e GTK+
O compilador Vala valac
valac é um compilador self-hosted que transforma código-fonte Vala em código-fonte C e arquivos de cabeçalho
- Usa o sistema de tipos do GObject para gerar as classes e interfaces declaradas no código-fonte Vala
- A sintaxe de Vala é semelhante à de C#, mas foi ajustada para se encaixar melhor no sistema de tipos do GObject
Usando classes e métodos escritos em Vala a partir de C
- Basta instalar os arquivos de cabeçalho gerados por uma biblioteca Vala para que aplicações C possam acessar, da forma usual, a API baseada em GObject dessa biblioteca
- Como o parser de Vala foi escrito como biblioteca e todas as informações de tempo de compilação podem ser usadas na geração de bindings, também deve ser fácil escrever geradores de bindings para acessar bibliotecas Vala a partir de aplicações escritas em C# e outras linguagens
Opiniões do GN⁺
- Vala tem a vantagem de ser uma linguagem orientada a objetos com sintaxe semelhante à de C e boa integração com tecnologias do GNOME. Em especial, é otimizada para o desenvolvimento de aplicações GUI e pode ser facilmente integrada com GTK, Granite e outros
- Vala é uma linguagem especializada no desenvolvimento do ambiente desktop GNOME, e parece ter utilidade limitada em outras áreas
- Com uma sintaxe semelhante à de C#, Vala pode ajudar desenvolvedores familiarizados com C# a participar do desenvolvimento no GNOME
- O objetivo do Vala de valorizar a compatibilidade com bibliotecas C existentes ao mesmo tempo em que oferece recursos modernos de linguagem é interessante, mas isso pode acabar reduzindo a originalidade da própria linguagem
- Ao observar projetos em Vala, há muitos aplicativos desktop voltados para GNOME ou elementary OS, mas a linguagem também pode ser usada em programação de servidores. Ainda assim, nesse campo o ecossistema continua relativamente carente
- Ainda é incerto o quanto Vala será amplamente adotada, mas dentro do ecossistema GNOME faz sentido esperar ganhos de produtividade ao usar Vala no lugar de C
- Existe também uma linguagem chamada Genie, com sintaxe semelhante à de Vala e capaz de usar tecnologias do GNOME. Sua característica é separar blocos de código por indentação, como em Python. Vale considerá-la como alternativa ao Vala
1 comentários
Comentários do Hacker News
valac).valadoc.org), também facilita o desenvolvimento.gtk-rs.org).