Gambas, um Basic Visual para Linux

"A fenomenal quantidade de bugs e inconsistências que tornam o Visual Basic tão adorável levaram-me a iniciar este projeto". É assim que Benoit Minisini, um francês de 30 anos vivendo nos subúrbios de Paris, começa a descrever seu projeto, denominado Gambas.

Gambas é um substituto do VB para Linux. Não um clone, uma vez que Benoit nunca gostou da implementação do software da Microsoft: "Parece que a própria Microsoft está ciente da má qualidade de sua linguagem, uma vez que o VB.Net não é compatível com versões anteriores do Visual Basic. Eu acho que eles jogaram fora o interpretador do Visual Basic, e que o VB.Net é apenas um compilador .Net cuja sintaxe se parece com a do Visual Basic".

O objetivo de Gambas é ser um Visual Basic melhor que o original.

Benoit tomou emprestado do VB o que ele achava útil: a linguagem BASIC e a interface de desenvolvimento fácil de usar. Ele também tirou algumas idéias da linguagem Java, resultando em uma linguagem não apenas simples, mas também poderosa. Quão poderosa? A interface de desenvolvimento completa foi criada em Gambas, um indicador do nível de sofisticação, antes mesmo da versão 1.0.

screenshot-2003-07-11.jpg

screenshot-2004-07-11b.jpg

Neste artigo tentaremos descrever o status atual da linguagem, e como ela se compara com VB. Nós veremos alguns screenshots e código fonte, para que você possa ter uma visão geral sobre a linguagem.

Contexto

Gambas não é a primeira tentativa de se criar um substituto do VB para Linux, mas certamente é um dos projetos mais maduros.

Na verdade, existem muitas outras tentativas incompletas de se criar um clone do VB em Linux: RapidQ foi adquirido pela RealBASIC, que somente agora está lançando uma biblioteca runtime para Linux, porém sem IDE; Phoenix BASIC está paralizado por 3 anos; KBasic está parado, GNOME Basic mudou seu foco para oferecer suporte a VBA para aplicações do GNOME; entre os projetos mais promissores estão o XBasic e o HBasic, mas o primeiro é menos avançado e o segundo ainda bastante instável.

Além desses, existem muitas outras linguagens BASIC sem interfaces de desenvolvimento integradas, e outras IDEs sem a linguagem BASIC.

Gambas oferece um conjunto único de características que possibilitará a milhares de programadores em VB migrar do Windows para Linux, trazendo muito mais aplicações para o desktop livre.

O Básico do BASIC

Um dos primeiros programas que você certamente encontrará, em qualquer linguagem de programação, é o clássico "Hello World".

Hello VB World

  1. Inicie com um formulário em branco
  2. Adicione um botão (Command1) e um label (Label1)
  3. Escreva o código:
Sub Command1_Click()
  Form1.Caption = "Hello World!"
End Sub

Hello Gambas World

O exemplo mais simples possível, em Gambas, seria um projeto sem formulário:

SUB main()
  PRINT "Hello World!"
END

Mas você também pode usar um formulário, como no VB:

  1. Inicie com um formulário em branco
  2. Adicione um botão (Button1) e um label (Label1)
  3. Escreva o código:
SUB Button1_Click()
  Label1.Text = "Hello World!"
END

O primeiro exemplo do Gambas é trivial, e ainda assim, mostra algo que o Visual Basic não consegue fazer! No VB existe um comando Print, mas apenas para o objeto Debug e outros objetos gráficos, como Printer, Form ou Picture. Aparentemente a Microsoft, que havia decidido que programadores não deveriam escrever diretamente para a saída padrão, voltou atrás recentemente, com o lançamento do NET.

Diferenças

Embora o Gambas não tenha o objetivo de ser um clone do VB, ele ainda é BASIC, e portanto existem muitas similaridades entre as duas linguagens, e muitas relações um-para-um entre suas características.

Existem mais similaridades do que diferenças, mas você não pode simplesmente copiar seu antigos projetos e esperar que eles compilem no Gambas.

Entre as principais diferenças, podemos destacar:


VB Gambas Type of file
.vbp .project (just .project, one per directory) Project definition file
.bas .module Module
.cls .class Class file
.frm .form Form definition file
.frx (whatever you want) Binary resource files

O que o VB tem, que Gambas não tem

O que Gambas tem, que o VB não tem

Aproveitando o poder do Unix

"This is the Unix philosophy: Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface." -- Doug McIlroy

Uma das grandes vantagens do Gambas com relação ao VB é que o Gambas foi construído segundo a filosofia Unix. Isto significa que você pode alavancar o poder do sistema operacional e de milhares de ferramentas, ao invés de escrever código.

Vejamos as possibilidades.

Existem, no Linux, ferramentas gráficas e de linha de comando para queimar CDs, tocar arquivos MP3 e baixar arquivos da internet.

Ao reconhecer este fato, você pode unificar todos estes recursos sob uma única interface, sabendo que os demais programas são especializados em fazer uma coisa, e bem.

Você não precisa depender de um fornecedor de componentes especializados. Conte com os recursos que vêm sendo desenvolvidos pela comunidade de desenvolvedores de software livre. Torne-se parte desta comunidade, contribuindo com sua experiência e conhecimentos.

Se você alguma vez já programou em BASIC, você terá de volta aquele sentimento de familiaridade assim que começar a usar o Gambas.

Programadores acostumados com o VB se sentirão em casa desde o início.

Certamente, Gambas não é VB, e portanto os desenvolvedores acostumados com a linguagem da Microsoft precisarão estar preparados para algumas mudanças. O lado bom é que a maioria destas mudanças estão lá por alguma razão específica: para fazer uma linguagem melhor. Como já dissemos no início, Gambas procurou aproveitar boas idéias de Java e outras linguagens.

Convertendo seu código legado

Então você é um programador de VB, e possui quase uma década de código fonte em uma plataforma proprietária, que muda a cada dois ou três anos.

Você certamente conhece o problema de ter que adaptar-se às mudanças. No caso do VB, porém, muitas dessas mudanças foram criadas por questões mercadológicas, de forma a impulsionar as vendas. Problemas antigos são perpetuados, e os programadores sempre buscam o santo Graal.

Talvez você esteja considerando mudar para uma plataforma livre, que não se coloque no seu caminho; mais do que isso, que não cobre altos tributos sobre o seu trabalho. Mas a necessidade de lidar com o código legado continua.

Felizmente os desenvolvedores de Gambas já começaram a trabalhar no sentido de facilitar esta transição.

Com o lançamento do script VB2Gb, a interface de projetos inteiros em VB pode ser rapidamente convertida para Gambas. O programa encontra-se na versão 0.1, e portanto existe muito espaço para melhorias. Como na maioria dos softwares livres, as melhorias dependem basicamente do feedback de seus usuários, que também podem se envolver no projeto.

Conclusão

Gambas é a solução mais próxima ao Visual Basic no universo do software livre. Ele não foi criado com o objetivo de imitar o VB, nem mesmo rodar código nativo do VB, mas oferece uma interface rápida de desenvolvimento baseada na linguagem BASIC.

Gambas encontra-se em progresso contínuo. Sua versão atual (0.72) é considerada uma versão alfa, sujeita a mudanças. Ainda assim, Gambas já está sendo usado em aplicações complexas, como a própria IDE. Não existe pressa para lançar a versão 1.0, pois o objetivo é fazer as coisas certas desde a primeira vez.

Gambas possui uma estratégia para o futuro. Entre as características que podemos esperar para os próximos meses, podemos citar:

Com Gambas, qualquer um pode começar a programar aplicações gráficas em questão de minutos, o que poderá trazer muito mais programadores e aplicações para o GNU/Linux. Por isso, podemos dizer que, assim como o OpenOffice e o Mozilla, o Gambas pode será uma ferramenta essencial para o fortalecimento do GNU/Linux no desktop.

Como você pode colaborar? Comece a aprender, usar e divulgar este projeto!