Vala: Vale a pena aprender uma nova linguagem de programação?

Vala é uma linguagem moderna proposta pelo pessoal do Gnome. Sua sintaxe é baseada no C#. Trata-se de um compilador, sendo, assim, uma alternativa a linguagens interpretadas que possuem menor desempenho. Este artigo apresenta a linguagem e instrui o leitor a instalá-la em seu sistema, independente de qual distribuição.

[ Hits: 26.131 ]

Por: Francisco Souza em 14/04/2009 | Blog: http://www.franciscosouza.net


Introdução



A linguagem Vala foi criada pelo pessoal do Gnome Live! com o objetivo de trazer recursos avançados aos desenvolvedores Gnome, sem a imposição de requisitos adicionais e sem reinventar a roda. Isto quer dizer que você pode trabalhar com a API do C e pode brincar com interfaces gráficas Gtk.

Também é possível compilar/programar Vala para o Windows, assim como acontece com C e C++.

Na verdade, Vala é um compilador para o sistemas de tipo GObject, desenvolvido e utilizado no GIMP, GTK e, consequentemente, no Gnome.

Neste artigo tentarei demonstrar a instalação e o uso do compilador, para abrir o apetite do leitor para a linguagem.

Hora de instalar o Vala

Requisitos:

O Vala, apesar do que muitos podem pensar, não depende do Gnome. Pode ser instalado perfeitamente em um Slackware Linux com KDE ou WindowMaker. A única dependência do Vala é que você tenha um compilador C devidamente configurado, o Gtk2.x (com GLib 2.12 ou superior) e o Bison.

Isso significa que você pode instalar o compilador Vala sem muitos problemas no Windows, no FreeBSD, no NetBSD, ou qualquer outro BSD, assim como qualquer distribuição Linux.

Compilando e instalando:

O primeiro passo é baixar e descompactar o Vala:

wget -c http://ftp.gnome.org/pub/GNOME/sources/vala/0.7/vala-0.7.0.tar.gz
tar -xvf vala-0.7.0.tar.gz

Após baixar o compilador, vamos compilá-lo e instalá-lo. Para compilar o Vala é bem simples. Três comandos famosos:

cd vala-0.7.0/
$ ./configure
$ make
# make install


Agora estamos prontos para os testes e as brincadeiras com a linguagem.

    Próxima página

Páginas do artigo
   1. Introdução
   2. Usando o compilador Vala
   3. Conclusão e referências
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Servidor LAMP com PHP7 no Linux Mint 18 e no Ubuntu 16.04

Outro método (rápido/fácil) de instalação e configuração do gdesklets no Slackware 10

Ogle: O player de DVD

Gerando imagens com o mkcdrec

Autorando DVDs com Qdvdauthor usando menus animados

  
Comentários
[1] Comentário enviado por removido em 14/04/2009 - 15:37h

Acredito que conhecimento nunca é demais.

[2] Comentário enviado por evaldoavelar em 14/04/2009 - 15:56h

Por acaso exite alguma IDE ou projeto de IDE?

[3] Comentário enviado por franciscosouza em 14/04/2009 - 16:00h

Ola evaldo! :)

Existe sim, tem um plugin para o Monodevelop, um plugin para o Eclipse, uma IDE independente.

Confere no site oficial: http://live.gnome.org/Vala#head-6c397c4077ef096e78ea90d62f6d511a82e1e9ea

Abraços! ;)

[4] Comentário enviado por f_Candido em 14/04/2009 - 20:11h

Legal, muito interessante o artigo.
Você afirmou que o desempenho e semelhante ao do Java e C#, correto?
Existe algum benchamark comparando as linguagens??
Interessante notar é a sintaxe simples. Isso é bom.

Abraços e mais uma vez parabéns...

[5] Comentário enviado por franciscosouza em 14/04/2009 - 20:39h

Olá f_candido, na verdade não existe nenhum benchmark ainda. Mas de repente eu faço um...

Quanto ao desempenho, na TEORIA, Vala tende a ser mais rápida, por ser compilada. Mas vale lembrar que as máquinas virtuais possuem diversos recursos que possibilitam ganho de desempenho.

[6] Comentário enviado por removido em 14/04/2009 - 22:48h

Parabéns!

Flw

[7] Comentário enviado por mslomp em 14/04/2009 - 23:40h

não conhecia o vala, e pelo que li no site oficial não se trata de um compilador rigorosamente falando, e sim de um tradutor vala->c. ou seja, o código vala será transformado em c, e então compilado/montado/ligado de fato por um compilador externo - no caso, o gcc. desse modo, eventuais benchmarks não serão aplicados à eficiência do compilador vala, e sim ao quão enxuto e otimizado está o código c gerado por ele, o que é muito interessante de se observar à medida que novas versões surjam.

parabéns pelo artigo, realmente uma novidade bem abordada.

[8] Comentário enviado por franciscosouza em 15/04/2009 - 00:43h

Olá mslomp. Vale atentar que o número de compiladores que geram código Assembly é quase nulo.

Hoje em dia, praticamente todos os compiladores para binários passam pelo C, pra depois passarem pelo Assembly e por fim chegarem no código de máquina.

Um abraço.

[9] Comentário enviado por remontti em 15/04/2009 - 01:45h

Aprender sempre é bom!

[10] Comentário enviado por mslomp em 15/04/2009 - 09:39h

para o caso do gcc, o código assembly é gerado no back-end do compilador (cc1), e então montado pelo gnu assembler (as), e finalmente ligado pelo realocador (collect2) e pelo gnu linker (ld). no fundo no fundo, o que determinará uma boa saída assembly é o tratamento das linguagens intermediárias. no gcc, para o exemplo de um código em c, a ordem de linguagens intermediárias até o código assembly final é:
c -> generic -> gimple -> rtl -> assembly
a mágica acontece especialmente nas fases gimple (otimizações ssa) e no rtl (otimizações rtl), que é um 'pseudo baixo nível' para uma máquina hipotética com infinitos registradores.
como implícito no comentário do colega chicoBento, a partir daí o compilador nada mais tem a ver com o processo, então também é preciso levar isso em conta ao interpretar benchmarks.

[11] Comentário enviado por andre_asn em 16/04/2009 - 23:13h

Boa noite chicobento tive o seguinte problema no final da instalação :

checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for flex... no
checking for lex... no
configure: error: flex not found but required
download@Matrix:~/vala-0.7.0$ make
make: *** Nenhum alvo indicado e nenhum arquivo make encontrado. Pare.
download@Matrix:~/vala-0.7.0$ make install
make: *** Sem regra para processar o alvo `install'. Pare.
download@Matrix:~/vala-0.7.0$

pode me dar uma ajuda estou começando a faculdade e la usam o C# com Windows mas em casa meu micro e o note rodam Debian 5


[12] Comentário enviado por franciscosouza em 16/04/2009 - 23:48h

Olá andre_asn, tudo bem?

O Vala não é 100% compatível com o C#, logo para a questão do código C#, te aconselho usar Mono.

Quanto ao problema do Vala, está dizendo que o flex não foi encontrado. Basta você dar um

# apt-get install flex

Que resolve. Vale lembrar que no Debian tu também pode dar um:

# apt-get install valac

Pra instalar o Vala mais facilmente.

Abraços,
Francisco

[13] Comentário enviado por andre_asn em 18/04/2009 - 15:30h

Obrigado Francisco agora deu certo aqui .. já estou usando o mono apenas gostei da dica de mais uma opção para trabalhar com essa linguagem

[14] Comentário enviado por jntesteves em 21/07/2009 - 01:31h

A documentação tem crescido exponencialmente à medida que aumenta o número de usuários da linguagem. Confira o último "draft" e muitos exemplos (em inglês) no site oficial. http://live.gnome.org/Vala http://live.gnome.org/Genie
.
Para os que ainda procuram por um benchmark, tem no site http://code.google.com/p/vala-benchmarks/ Inclusive existe uma página lá com alguns resultados. Como era de se esperar, programas escritos em Vala (ou Genie) rodam quase tão rápido quanto C puro, ganhando até de C++ em vários testes, com a grande vantagem de ser escrita num dialeto muito mais simples e moderno que C e C++.
.
C#, é claro, é muito mais lenta que essas linguagens na hora da execução.
.
Resumindo, Vala e Genie são simples e limpas como C# e Python na hora de escrever o código, mas rápidas como C na hora de executar!
.
A versão final estável de Vala está prevista para ser lançada junto com o Gnome 2.8, ainda este ano. Quem quiser já pode ir migrando para Vala (ou Genie) em todas as plataformas que suportam C + GObject.
.
Vala é o futuro! Abraços e bom aprendizado.

[15] Comentário enviado por Azraelm em 15/08/2016 - 10:21h

Muito bom.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts